Bläddra i källkod

1、调整总电源数据记录方式,修复单周期内可能存储多条问题

liyuezong 1 år sedan
förälder
incheckning
2603f83dda
1 ändrade filer med 16 tillägg och 15 borttagningar
  1. 16 15
      pro/src/app.c

+ 16 - 15
pro/src/app.c

@@ -260,7 +260,7 @@ static void* power_thread(void* arg)
             }            
             //usleep(usleepTime);
         }
-        bool SaveDBFlag=false; //数据库存储记录,只要有通道存,就存一次总通道数据  
+
         int _chn = 0;
         memset(Vavg,0.0,sizeof(Vavg));
         memset(VavgTimes,0,sizeof(VavgTimes));
@@ -358,7 +358,6 @@ static void* power_thread(void* arg)
                     if (difftime(now,_globalPowerMangerTemp->product_log_time)>(sSaveTime/1000))
                     {
                         _globalPowerMangerTemp->product_log_time=now;
-                        SaveDBFlag=true;
                         /* code */
                         //插入数据库
                         if(dev_insert_power_info(_globalDeviceManager->db,&_globalPowerInfo,&lastIndex)!=0)
@@ -580,7 +579,6 @@ static void* power_thread(void* arg)
                     if (difftime(now,_globalPowerMangerTemp->product_log_time)>(sSaveTime/1000))
                     {
                         _globalPowerMangerTemp->product_log_time=now;
-                        SaveDBFlag=true;
                         /* code */
                         //插入数据库
                         if(dev_insert_power_info(_globalDeviceManager->db,&_globalPowerInfo,&lastIndex)!=0)
@@ -972,8 +970,7 @@ static void* power_thread(void* arg)
                     
                     if (difftime(now,_globalPowerMangerTemp->product_log_time)>(sSaveTime/1000))
                     {
-                        _globalPowerMangerTemp->product_log_time=now;
-                        SaveDBFlag=true;                       
+                        _globalPowerMangerTemp->product_log_time=now;            
                         /* code */
                         //插入数据库
                         if(dev_insert_power_info(_globalDeviceManager->db,&_globalPowerInfo,&lastIndex)!=0)
@@ -1339,20 +1336,24 @@ static void* power_thread(void* arg)
             }
         }
 
-        //插入总电源信息
+        // 插入总电源信息
         gettimeofday(&tv, &tz);
         t = localtime(&tv.tv_sec);
-        sprintf(_globalTotalPowerInfo.samp_time,"%04d-%02d-%02d %02d:%02d:%02d.%03ld",
-        t->tm_year+1900,t->tm_mon+1,t->tm_mday,t->tm_hour,t->tm_min,t->tm_sec,tv.tv_usec/1000);
-        //更新总电源信息
-      //  if (__globalDeviceManage._globalDevInfo.product.pwr_type == SmartPDU_AC 
-     //   || __globalDeviceManage._globalDevInfo.product.pwr_type == SmartPDU_DC)
-       // {
-            _globalDeviceManager->_globalPowerManger._PowerInfo = _globalTotalPowerInfo._power_info;
+        sprintf(_globalTotalPowerInfo.samp_time, "%04d-%02d-%02d %02d:%02d:%02d.%03ld",
+                t->tm_year + 1900, t->tm_mon + 1, t->tm_mday, t->tm_hour, t->tm_min, t->tm_sec, tv.tv_usec / 1000);
+        // 更新总电源信息
+        //  if (__globalDeviceManage._globalDevInfo.product.pwr_type == SmartPDU_AC
+        //   || __globalDeviceManage._globalDevInfo.product.pwr_type == SmartPDU_DC)
+        // {
+        _globalDeviceManager->_globalPowerManger._PowerInfo = _globalTotalPowerInfo._power_info;
         //}
-        //总电源信息插入数据库
-        if (SaveDBFlag)
+        // 总电源信息插入数据库
+        time_t totalnow;
+        time(&totalnow);
+        if (difftime(totalnow, _globalDeviceManager->_globalPowerManger.product_log_time) > (sSaveTime / 1000))
         {
+            _globalDeviceManager->_globalPowerManger.product_log_time = totalnow;
+
             if (dev_insert_power_info(_globalDeviceManager->db, &_globalTotalPowerInfo, &lastIndex) != 0)
             {
                 log_d("ch%d insert data error.\n", _globalTotalPowerInfo.product_ch_id);