Procházet zdrojové kódy

Merge branch 'master' of http://jiecheng2024.tpddns.cn:3000/liyuezong/SmartPDCode

guohui před 1 rokem
rodič
revize
fc42a8eb2d

+ 62 - 64
ip/src/app.c

@@ -560,11 +560,11 @@ void* power_thread(void* arg)
             {
                 _sensor_temp->Cur_sensor_info.product_log_time = now;
                 // 插入数据库
-                 ret = dev_insert_sensor_info(_globalDeviceManager->db, &_sensor_temp->Cur_sensor_info, &sensor_nSaveIndex);
-                 if (ret != 0)
-                 {
-                     log_e("sensor_temp_write database error.");
-                 }
+                ret = dev_insert_sensor_info(_globalDeviceManager->db, &_sensor_temp->Cur_sensor_info, &sensor_nSaveIndex);
+                if (ret != 0)
+                {
+                    log_e("sensor_temp_write database error.");
+                }
             }
             if (_sensor_temp->sensor_status == 0)
             {
@@ -573,83 +573,78 @@ void* power_thread(void* arg)
                 sensor_alarm(_sensor_temp, SENSOR_VAL2_UPPER);
                 sensor_alarm(_sensor_temp, SENSOR_VAL2_LOWER);
             }
-            
         }
         pthread_mutex_unlock(&__globalDeviceManage._sensor_update);
-        
-
 
-
-        bool SaveDBFlag=false; //数据库存储记录,只要有通道存,就存一次总通道数据  
+        bool SaveDBFlag = false; // 数据库存储记录,只要有通道存,就存一次总通道数据
         int _chn = 0;
-        memset(Vavg,0.0,sizeof(Vavg));
-        memset(VavgTimes,0,sizeof(VavgTimes));
-        //数据刷新
+        memset(Vavg, 0.0, sizeof(Vavg));
+        memset(VavgTimes, 0, sizeof(VavgTimes));
+        // 数据刷新
         pthread_mutex_lock(&__globalDeviceManage._power_update);
-        list_for_each_entry(_globalPowerMangerTemp, &_globalDeviceManager->_globalPowerManger.list, list) 
+        list_for_each_entry(_globalPowerMangerTemp, &_globalDeviceManager->_globalPowerManger.list, list)
         {
-            memcpy(&_globalPowerInfo._power_info,&_globalDeviceManager->_all_ctrl_board[(int)_globalPowerMangerTemp->product_saddr]._PowerInfo[0],sizeof(PowerInfo));
-                   
+            memcpy(&_globalPowerInfo._power_info, &_globalDeviceManager->_all_ctrl_board[(int)_globalPowerMangerTemp->product_saddr]._PowerInfo[0], sizeof(PowerInfo));
+
             _globalTotalPowerInfo.product_id = _globalDeviceManager->_globalDevInfo.product_id;
-            _globalTotalPowerInfo.product_ch_id = 0 ; //总电源通道信息为0
-            _globalTotalPowerInfo.product_status = 0 ;
-            _globalTotalPowerInfo._power_info.voltage =  _globalTotalPowerInfo._power_info.voltage > _globalPowerInfo._power_info.voltage ? _globalTotalPowerInfo._power_info.voltage : _globalPowerInfo._power_info.voltage;
-            _globalTotalPowerInfo._power_info.current += _globalPowerInfo._power_info.current ;
-            _globalTotalPowerInfo._power_info.power += _globalPowerInfo._power_info.power ;
-            _globalTotalPowerInfo._power_info.freq =  _globalTotalPowerInfo._power_info.freq > _globalPowerInfo._power_info.freq ? _globalTotalPowerInfo._power_info.freq : _globalPowerInfo._power_info.freq;
-            _globalTotalPowerInfo._power_info.consumption += _globalPowerInfo._power_info.consumption ;
+            _globalTotalPowerInfo.product_ch_id = 0; // 总电源通道信息为0
+            _globalTotalPowerInfo.product_status = 0;
+            _globalTotalPowerInfo._power_info.voltage = _globalTotalPowerInfo._power_info.voltage > _globalPowerInfo._power_info.voltage ? _globalTotalPowerInfo._power_info.voltage : _globalPowerInfo._power_info.voltage;
+            _globalTotalPowerInfo._power_info.current += _globalPowerInfo._power_info.current;
+            _globalTotalPowerInfo._power_info.power += _globalPowerInfo._power_info.power;
+            _globalTotalPowerInfo._power_info.freq = _globalTotalPowerInfo._power_info.freq > _globalPowerInfo._power_info.freq ? _globalTotalPowerInfo._power_info.freq : _globalPowerInfo._power_info.freq;
+            _globalTotalPowerInfo._power_info.consumption += _globalPowerInfo._power_info.consumption;
             _globalTotalPowerInfo._power_info.factor = _globalTotalPowerInfo._power_info.factor > _globalPowerInfo._power_info.factor ? _globalTotalPowerInfo._power_info.factor : _globalPowerInfo._power_info.factor;
             _globalTotalPowerInfo._power_info.status = _globalPowerInfo._power_info.status;
-            //补全信息
+            // 补全信息
             _globalPowerInfo.product_id = _globalPowerMangerTemp->product_id;
-            _globalPowerInfo.product_ch_id = _globalPowerMangerTemp->product_ch_id ;
-            _globalPowerInfo.product_status = _globalPowerInfo._power_info.status ;
+            _globalPowerInfo.product_ch_id = _globalPowerMangerTemp->product_ch_id;
+            _globalPowerInfo.product_status = _globalPowerInfo._power_info.status;
 
-                    //voltage
-        if(_globalPowerMangerTemp->global_over_manager->product_vol_upper_enable)
-        {
-            if(_globalDeviceManager->_all_ctrl_board[(int)_globalPowerMangerTemp->product_saddr]._PowerInfo[0].voltage > 
-                                _globalPowerMangerTemp->global_over_manager->product_vol_upper_threshold)
+            // voltage
+            if (_globalPowerMangerTemp->global_over_manager->product_vol_upper_enable)
             {
-                 _globalDeviceManager->_all_ctrl_board[(int)_globalPowerMangerTemp->product_saddr]._PowerWarninginfo[0].w_voltage_up = 1;
+                if (_globalDeviceManager->_all_ctrl_board[(int)_globalPowerMangerTemp->product_saddr]._PowerInfo[0].voltage >
+                    _globalPowerMangerTemp->global_over_manager->product_vol_upper_threshold)
+                {
+                    _globalDeviceManager->_all_ctrl_board[(int)_globalPowerMangerTemp->product_saddr]._PowerWarninginfo[0].w_voltage_up = 1;
+                }
             }
-        }
-        if(_globalPowerMangerTemp->global_over_manager->product_vol_lower_enable)
-        {
-            if(_globalDeviceManager->_all_ctrl_board[(int)_globalPowerMangerTemp->product_saddr]._PowerInfo[0].voltage < 
-                                _globalPowerMangerTemp->global_over_manager->product_vol_lower_threshold)
+            if (_globalPowerMangerTemp->global_over_manager->product_vol_lower_enable)
             {
-                 _globalDeviceManager->_all_ctrl_board[(int)_globalPowerMangerTemp->product_saddr]._PowerWarninginfo[0].w_voltage_down = 1;
+                if (_globalDeviceManager->_all_ctrl_board[(int)_globalPowerMangerTemp->product_saddr]._PowerInfo[0].voltage <
+                    _globalPowerMangerTemp->global_over_manager->product_vol_lower_threshold)
+                {
+                    _globalDeviceManager->_all_ctrl_board[(int)_globalPowerMangerTemp->product_saddr]._PowerWarninginfo[0].w_voltage_down = 1;
+                }
             }
-        }
-        //current
-        if(_globalPowerMangerTemp->global_over_manager->product_cur_upper_enable)
-        {
-            if(_globalDeviceManager->_all_ctrl_board[(int)_globalPowerMangerTemp->product_saddr]._PowerInfo[0].current >
-                                _globalPowerMangerTemp->global_over_manager->product_cur_upper_threshold)
+            // current
+            if (_globalPowerMangerTemp->global_over_manager->product_cur_upper_enable)
             {
-                _globalDeviceManager->_all_ctrl_board[(int)_globalPowerMangerTemp->product_saddr]._PowerWarninginfo[0].w_current = 1;
+                if (_globalDeviceManager->_all_ctrl_board[(int)_globalPowerMangerTemp->product_saddr]._PowerInfo[0].current >
+                    _globalPowerMangerTemp->global_over_manager->product_cur_upper_threshold)
+                {
+                    _globalDeviceManager->_all_ctrl_board[(int)_globalPowerMangerTemp->product_saddr]._PowerWarninginfo[0].w_current = 1;
+                }
             }
-               
-        }
-        //power
-        if(_globalPowerMangerTemp->global_over_manager->product_pwr_upper_enable)
-        {
-            if(_globalDeviceManager->_all_ctrl_board[(int)_globalPowerMangerTemp->product_saddr]._PowerInfo[0].power >
-                                _globalPowerMangerTemp->global_over_manager->product_pwr_upper_threshold)
+            // power
+            if (_globalPowerMangerTemp->global_over_manager->product_pwr_upper_enable)
             {
-                _globalDeviceManager->_all_ctrl_board[(int)_globalPowerMangerTemp->product_saddr]._PowerWarninginfo[0].w_power = 1;
+                if (_globalDeviceManager->_all_ctrl_board[(int)_globalPowerMangerTemp->product_saddr]._PowerInfo[0].power >
+                    _globalPowerMangerTemp->global_over_manager->product_pwr_upper_threshold)
+                {
+                    _globalDeviceManager->_all_ctrl_board[(int)_globalPowerMangerTemp->product_saddr]._PowerWarninginfo[0].w_power = 1;
+                }
             }
-        }
-        //constmer
-        if(_globalPowerMangerTemp->global_over_manager->product_pwrcon_upper_enable)
-        {
-            if(_globalDeviceManager->_all_ctrl_board[(int)_globalPowerMangerTemp->product_saddr]._PowerInfo[0].consumption >
-                                _globalPowerMangerTemp->global_over_manager->product_pwrcon_upper_threshold)
+            // constmer
+            if (_globalPowerMangerTemp->global_over_manager->product_pwrcon_upper_enable)
             {
-                _globalDeviceManager->_all_ctrl_board[(int)_globalPowerMangerTemp->product_saddr]._PowerWarninginfo[0].w_consumption = 1;
+                if (_globalDeviceManager->_all_ctrl_board[(int)_globalPowerMangerTemp->product_saddr]._PowerInfo[0].consumption >
+                    _globalPowerMangerTemp->global_over_manager->product_pwrcon_upper_threshold)
+                {
+                    _globalDeviceManager->_all_ctrl_board[(int)_globalPowerMangerTemp->product_saddr]._PowerWarninginfo[0].w_consumption = 1;
+                }
             }
-        }
 
             memcpy(&_globalPowerWarningInfo,
             &_globalDeviceManager->_all_ctrl_board[(int)_globalPowerMangerTemp->product_saddr]._PowerWarninginfo[0],
@@ -737,16 +732,19 @@ void* power_thread(void* arg)
 
         //更新总电源信息
 
-        _globalDeviceManager->_globalPowerManger._PowerInfo  = _globalTotalPowerInfo._power_info;
-
+        //_globalDeviceManager->_globalPowerManger._PowerInfo  = _globalTotalPowerInfo._power_info;
+        _globalDeviceManager->_globalPowerManger._PowerInfo=_globalDeviceManager->_all_ctrl_board[0]._PowerInfo[0];
+ 
         //插入数据库
+        /*
         if (SaveDBFlag)
         {
             if (dev_insert_power_info(_globalDeviceManager->db, &_globalTotalPowerInfo, &nSaveIndex) != 0)
             {
-                log_d("ch%d insert data error.\n", _globalTotalPowerInfo.product_ch_id);
+                log_d("ch%d insert data error.\n", _globalTotalPowerInfoTemp.product_ch_id);
             }
         }
+        */
         pthread_mutex_unlock(&__globalDeviceManage._power_update);
 
         

+ 33 - 18
ip/src/appweb_handle.c

@@ -682,11 +682,12 @@ static void overallStatusMonitoring(void* conn)
             }
             
             // 查询数据库总电源信息 传给所申请的参数结构体
-            if (dev_search_time_t_ac_power_info(__globalDeviceManage.db, __globalDeviceManage._globalDevInfo.product_id, 0, ph_id, TOTAL_VOLTAGE_TYPE, &__globalPowerInfo, _over_all_sts_monitor.start_time, _over_all_sts_monitor.end_time) != 0)
+            if (dev_search_time_t_ac_power_info(__globalDeviceManage.db, _over_all_sts_monitor.product_id, 0, ph_id, TOTAL_VOLTAGE_TYPE, &__globalPowerInfo, _over_all_sts_monitor.start_time, _over_all_sts_monitor.end_time) != 0)
             {
                 log_e("serach total voltage err.");
             }
-            else {
+            //else 
+            {
                         // 传值给总管理结构体
                 for (int i = 0; i < TOTAL_COUNT; i++)
                 {
@@ -701,11 +702,12 @@ static void overallStatusMonitoring(void* conn)
         else
         {
             // 查询数据库总电源信息 传给所申请的参数结构体
-            if (dev_search_time_power_info(__globalDeviceManage.db, __globalDeviceManage._globalDevInfo.product_id, 0, TOTAL_VOLTAGE_TYPE, &__globalPowerInfo, _over_all_sts_monitor.start_time, _over_all_sts_monitor.end_time) != 0)
+            if (dev_search_time_power_info(__globalDeviceManage.db, _over_all_sts_monitor.product_id, 0, TOTAL_VOLTAGE_TYPE, &__globalPowerInfo, _over_all_sts_monitor.start_time, _over_all_sts_monitor.end_time) != 0)
             {
                 log_e("serach total voltage err.");
             }
-            else {
+            //else 
+            {
                 // 传值给总管理结构体
                 for (int i = 0; i < TOTAL_COUNT; i++)
                 {
@@ -751,7 +753,7 @@ static void overallStatusMonitoring(void* conn)
             }
 
             // 查询数据库总电源信息 传给所申请的参数结构体
-            if (dev_search_time_t_ac_power_info(__globalDeviceManage.db, __globalDeviceManage._globalDevInfo.product_id, 0, ph_id, TOTAL_CURRENT_TYPE, &__globalPowerInfo, _over_all_sts_monitor.start_time, _over_all_sts_monitor.end_time) != 0)
+            if (dev_search_time_t_ac_power_info(__globalDeviceManage.db, _over_all_sts_monitor.product_id, 0, ph_id, TOTAL_CURRENT_TYPE, &__globalPowerInfo, _over_all_sts_monitor.start_time, _over_all_sts_monitor.end_time) != 0)
             {
                 log_e("serach total current err.");
             }
@@ -768,7 +770,7 @@ static void overallStatusMonitoring(void* conn)
         else
         {
             // 查询数据库总电源信息 传给所申请的参数结构体
-            if (dev_search_time_power_info(__globalDeviceManage.db, __globalDeviceManage._globalDevInfo.product_id, 0, TOTAL_CURRENT_TYPE, &__globalPowerInfo, _over_all_sts_monitor.start_time, _over_all_sts_monitor.end_time) != 0)
+            if (dev_search_time_power_info(__globalDeviceManage.db, _over_all_sts_monitor.product_id, 0, TOTAL_CURRENT_TYPE, &__globalPowerInfo, _over_all_sts_monitor.start_time, _over_all_sts_monitor.end_time) != 0)
             {
                 log_e("serach total current err.");
             }
@@ -833,7 +835,7 @@ static void overallStatusMonitoring(void* conn)
         else
         {
             // 查询数据库总电源信息 传给所申请的参数结构体
-            if (dev_search_time_power_info(__globalDeviceManage.db, __globalDeviceManage._globalDevInfo.product_id, 0, TOTAL_POWER_TYPE, &__globalPowerInfo, _over_all_sts_monitor.start_time, _over_all_sts_monitor.end_time) != 0)
+            if (dev_search_time_power_info(__globalDeviceManage.db, _over_all_sts_monitor.product_id, 0, TOTAL_POWER_TYPE, &__globalPowerInfo, _over_all_sts_monitor.start_time, _over_all_sts_monitor.end_time) != 0)
             {
                 log_e("serach total power err.");
             }
@@ -898,7 +900,7 @@ static void overallStatusMonitoring(void* conn)
         else
         {
             // 查询数据库总电源信息 传给所申请的参数结构体
-            if (dev_search_time_power_info(__globalDeviceManage.db, __globalDeviceManage._globalDevInfo.product_id, 0, TOTAL_POWER_CONS_TYPE, &__globalPowerInfo, _over_all_sts_monitor.start_time, _over_all_sts_monitor.end_time) != 0)
+            if (dev_search_time_power_info(__globalDeviceManage.db, _over_all_sts_monitor.product_id, 0, TOTAL_POWER_CONS_TYPE, &__globalPowerInfo, _over_all_sts_monitor.start_time, _over_all_sts_monitor.end_time) != 0)
             {
                 log_e("serach total power consumption err.");
             }
@@ -937,7 +939,7 @@ static void overallStatusMonitoring(void* conn)
         //sprintf(stop_time, "%04d-%02d-%02d %02d:%02d:%02d", 1970, 1, 1, 23,59, 59);
         log_d(stop_time);
         //从数据库获取参数信息
-        if(dev_get_system_total_info(__globalDeviceManage.db,__globalDeviceManage._globalDevInfo.product_id,0,&__system_total_info,start_time,stop_time)!=0)
+        if(dev_get_system_total_info(__globalDeviceManage.db,_over_all_sts_monitor.product_id,0,&__system_total_info,start_time,stop_time)!=0)
         {
             log_e("serach total System total err.");
         }
@@ -997,7 +999,7 @@ static void overallStatusMonitoring(void* conn)
         // else
         {
             // 查询数据库总电源信息 传给所申请的参数结构体
-            if (dev_search_power_trend_info(__globalDeviceManage.db, __globalDeviceManage._globalDevInfo.product_id, 0, &__PowerTrendInfo, _over_all_sts_monitor.start_time, _over_all_sts_monitor.end_time) != 0)
+            if (dev_search_power_trend_info(__globalDeviceManage.db, _over_all_sts_monitor.product_id, 0, &__PowerTrendInfo, _over_all_sts_monitor.start_time, _over_all_sts_monitor.end_time) != 0)
             {
                 log_e("serach total power consumption err.");
             }
@@ -1056,6 +1058,19 @@ static void channelStatusMonitoring(void* conn)
         return;     
     }
 
+    if (_over_chn_pwr_request.productChId > 0)
+    {
+        GlobalPowerManger *_globalPowerMangerTemp = NULL;
+        list_for_each_entry(_globalPowerMangerTemp, &__globalDeviceManage._globalPowerManger.list, list)
+        {
+            if (_over_chn_pwr_request.productChId == _globalPowerMangerTemp->product_ch_id)
+            {
+                _over_chn_pwr_request.product_id = _globalPowerMangerTemp->product_id;
+                break;
+            }
+        }
+    }
+
     if (_over_chn_pwr_request.Zerotype!=NULL)
     {
         if (strcmp(_over_chn_pwr_request.Zerotype, "open") == 0) // 零线开
@@ -1482,7 +1497,7 @@ static void channelStatusMonitoring(void* conn)
             }
 
             // 查询数据库总电源信息 传给所申请的参数结构体
-            if (dev_search_time_t_ac_power_info(__globalDeviceManage.db, __globalDeviceManage._globalDevInfo.product_id, product_chn_id, ph_id, TOTAL_VOLTAGE_TYPE, &__globalPowerInfo, _over_chn_pwr_request.start_time, _over_chn_pwr_request.end_time) != 0)
+            if (dev_search_time_t_ac_power_info(__globalDeviceManage.db, _over_chn_pwr_request.product_id, product_chn_id, ph_id, TOTAL_VOLTAGE_TYPE, &__globalPowerInfo, _over_chn_pwr_request.start_time, _over_chn_pwr_request.end_time) != 0)
             {
                 log_e("serach total power voltage err.");
             }
@@ -1500,7 +1515,7 @@ static void channelStatusMonitoring(void* conn)
         }
         else
         {
-            if (dev_search_time_power_info(__globalDeviceManage.db, __globalDeviceManage._globalDevInfo.product_id, product_chn_id, TOTAL_VOLTAGE_TYPE, &__globalPowerInfo, _over_chn_pwr_request.start_time, _over_chn_pwr_request.end_time) != 0)
+            if (dev_search_time_power_info(__globalDeviceManage.db, _over_chn_pwr_request.product_id, product_chn_id, TOTAL_VOLTAGE_TYPE, &__globalPowerInfo, _over_chn_pwr_request.start_time, _over_chn_pwr_request.end_time) != 0)
             {
                 log_e("serach total voltage err.");
             }
@@ -1552,7 +1567,7 @@ static void channelStatusMonitoring(void* conn)
             }
 
             // 查询数据库总电源信息 传给所申请的参数结构体
-            if (dev_search_time_t_ac_power_info(__globalDeviceManage.db, __globalDeviceManage._globalDevInfo.product_id, product_chn_id, ph_id, TOTAL_CURRENT_TYPE, &__globalPowerInfo, _over_chn_pwr_request.start_time, _over_chn_pwr_request.end_time) != 0)
+            if (dev_search_time_t_ac_power_info(__globalDeviceManage.db, _over_chn_pwr_request.product_id, product_chn_id, ph_id, TOTAL_CURRENT_TYPE, &__globalPowerInfo, _over_chn_pwr_request.start_time, _over_chn_pwr_request.end_time) != 0)
             {
                 log_e("serach total power current err.");
             }
@@ -1572,7 +1587,7 @@ static void channelStatusMonitoring(void* conn)
         else
         {
             // 查询数据库总电源信息 传给所申请的参数结构体
-            if (dev_search_time_power_info(__globalDeviceManage.db, __globalDeviceManage._globalDevInfo.product_id, product_chn_id, TOTAL_CURRENT_TYPE, &__globalPowerInfo, _over_chn_pwr_request.start_time, _over_chn_pwr_request.end_time) != 0)
+            if (dev_search_time_power_info(__globalDeviceManage.db, _over_chn_pwr_request.product_id, product_chn_id, TOTAL_CURRENT_TYPE, &__globalPowerInfo, _over_chn_pwr_request.start_time, _over_chn_pwr_request.end_time) != 0)
             {
                 log_e("serach total current err.");
             }
@@ -1624,7 +1639,7 @@ static void channelStatusMonitoring(void* conn)
             }
 
             // 查询数据库总电源信息 传给所申请的参数结构体
-            if (dev_search_time_t_ac_power_info(__globalDeviceManage.db, __globalDeviceManage._globalDevInfo.product_id, product_chn_id, ph_id, TOTAL_POWER_TYPE, &__globalPowerInfo, _over_chn_pwr_request.start_time, _over_chn_pwr_request.end_time) != 0)
+            if (dev_search_time_t_ac_power_info(__globalDeviceManage.db, _over_chn_pwr_request.product_id, product_chn_id, ph_id, TOTAL_POWER_TYPE, &__globalPowerInfo, _over_chn_pwr_request.start_time, _over_chn_pwr_request.end_time) != 0)
             {
                 log_e("serach total power  err.");
             }
@@ -1644,7 +1659,7 @@ static void channelStatusMonitoring(void* conn)
         else
         {
             // 查询数据库总电源信息 传给所申请的参数结构体
-            if (dev_search_time_power_info(__globalDeviceManage.db, __globalDeviceManage._globalDevInfo.product_id, product_chn_id, TOTAL_POWER_TYPE, &__globalPowerInfo, _over_chn_pwr_request.start_time, _over_chn_pwr_request.end_time) != 0)
+            if (dev_search_time_power_info(__globalDeviceManage.db, _over_chn_pwr_request.product_id, product_chn_id, TOTAL_POWER_TYPE, &__globalPowerInfo, _over_chn_pwr_request.start_time, _over_chn_pwr_request.end_time) != 0)
             {
                 log_e("serach total power err.");
             }
@@ -1696,7 +1711,7 @@ static void channelStatusMonitoring(void* conn)
             }
 
             // 查询数据库总电源信息 传给所申请的参数结构体
-            if (dev_search_time_t_ac_power_info(__globalDeviceManage.db, __globalDeviceManage._globalDevInfo.product_id, product_chn_id, ph_id, TOTAL_POWER_CONS_TYPE, &__globalPowerInfo, _over_chn_pwr_request.start_time, _over_chn_pwr_request.end_time) != 0)
+            if (dev_search_time_t_ac_power_info(__globalDeviceManage.db, _over_chn_pwr_request.product_id, product_chn_id, ph_id, TOTAL_POWER_CONS_TYPE, &__globalPowerInfo, _over_chn_pwr_request.start_time, _over_chn_pwr_request.end_time) != 0)
             {
                 log_e("serach total power  err.");
             } 
@@ -1715,7 +1730,7 @@ static void channelStatusMonitoring(void* conn)
         else
         {
             // 查询数据库总电源信息 传给所申请的参数结构体
-            if (dev_search_time_power_info(__globalDeviceManage.db, __globalDeviceManage._globalDevInfo.product_id, product_chn_id, TOTAL_POWER_CONS_TYPE, &__globalPowerInfo, _over_chn_pwr_request.start_time, _over_chn_pwr_request.end_time) != 0)
+            if (dev_search_time_power_info(__globalDeviceManage.db, _over_chn_pwr_request.product_id, product_chn_id, TOTAL_POWER_CONS_TYPE, &__globalPowerInfo, _over_chn_pwr_request.start_time, _over_chn_pwr_request.end_time) != 0)
             {
                 log_e("serach total power consumption err.");
             }

+ 3 - 1
ip/src/json_handle.c

@@ -993,6 +993,7 @@ cJSON* json_to_overall_status_monitor(const char* str,_Over_All_Sts_Monitor* _ov
     cJSON *cjson_product_id = cJSON_GetObjectItem(cjson, "productId");
     if (cjson_product_id != NULL)
         _over_all_sts_monitor->product_id = atoi(cjson_product_id->valuestring);
+    else _over_all_sts_monitor->product_id=0;
 
     cJSON *cjson_productNumber = cJSON_GetObjectItem(cjson, "productNumber");
     if (cjson_productNumber != NULL)
@@ -1379,7 +1380,7 @@ char* over_product_list_info_to_json(GlobalDeviceManager *dm, _OverBackStsInfo*
 
                         if (dl.slave[i].addr == 0)
                         {
-                            sprintf(temp, "%d", _over_back_sts_info->product_RS485Addr);
+                            sprintf(temp, "%d", 0);
                             cJSON_AddStringToObject(data_filed, "RSadress", temp);
                         }
                         else
@@ -1527,6 +1528,7 @@ cJSON* json_to_chn_pwr_status_monitor(const char* str,_OverChnPwrRequest* _over_
         }
         else   _over_chn_pwr_request->product_id = cjson_product_id->valueint;
     }
+    else _over_chn_pwr_request->product_id=0;
 
     cJSON* cjson_chn_id = cJSON_GetObjectItem(cjson,"productChId");
     if(cjson_chn_id!=NULL)    //通道

+ 80 - 67
ip/src/sqlite_handle.c

@@ -751,7 +751,7 @@ int dev_delete_power_info_all(sqlite3 *db)
 /// @param db 
 /// @param _globalPowerManger 
 /// @return 
-int dev_search_latest_power_statistic_info(GlobalDeviceManager* globalDeviceManger, _OverAllPwrAckInfo *all)
+int dev_search_latest_power_statistic_info(GlobalDeviceManager* globalDeviceManger, _OverAllPwrAckInfo *all,bool curdev)
 {
     GlobalPowerManger* _globalPowerMangerTemp = NULL ;
     char* upgrade_msg = NULL ;
@@ -764,80 +764,94 @@ int dev_search_latest_power_statistic_info(GlobalDeviceManager* globalDeviceMang
     all->product_name = globalDeviceManger->_globalDevInfo.product_name;
     all->product_id = globalDeviceManger->_globalDevInfo.product_id;
     all->product_number = globalDeviceManger->_globalDevInfo.product_number;
-    int nTempSum=0;
 
-    if(list_empty(&globalDeviceManger->_globalPowerManger.list)) {
-        return -1;
-    }
-
-    list_for_each_entry(_globalPowerMangerTemp, &globalDeviceManger->_globalPowerManger.list, list)
+    if (curdev)
     {
-        //有通道电压不为0的才记录在内
-        if (_globalPowerMangerTemp->_PowerInfo.voltage > 0)
-        {
-            faverageVoltage += _globalPowerMangerTemp->_PowerInfo.voltage;
-            faverageFreq += _globalPowerMangerTemp->_PowerInfo.freq;
-            faverageFactor += _globalPowerMangerTemp->_PowerInfo.factor;
-            nTempSum++;
-        }
+        all->voltage = globalDeviceManger->_globalPowerManger._PowerInfo.voltage;
+        all->current = globalDeviceManger->_globalPowerManger._PowerInfo.current;
+        all->power = globalDeviceManger->_globalPowerManger._PowerInfo.power;
+        all->consumption = globalDeviceManger->_globalPowerManger._PowerInfo.consumption;
+        all->freq = globalDeviceManger->_globalPowerManger._PowerInfo.freq;
+        all->factor = globalDeviceManger->_globalPowerManger._PowerInfo.factor;
     }
-    if (nTempSum>0)
-    {
-        faverageVoltage /= nTempSum;
-        faverageFreq /= nTempSum;
-        faverageFactor /= nTempSum;
-    }
-    nTempSum=0;
-    list_for_each_entry(_globalPowerMangerTemp, &globalDeviceManger->_globalPowerManger.list, list)
+    else
     {
-        all->consumption += _globalPowerMangerTemp->_PowerInfo.consumption ;
+        int nTempSum = 0;
 
-        //有通道电压不为0的才记录在内
-        if (_globalPowerMangerTemp->_PowerInfo.voltage <= 0)
+        if (list_empty(&globalDeviceManger->_globalPowerManger.list))
         {
-            continue;
+            return -1;
         }
-        
-        if (nTempSum==0)
-        {   
-            fSaveVoltage=_globalPowerMangerTemp->_PowerInfo.voltage;
-            fSaveFreq=_globalPowerMangerTemp->_PowerInfo.freq;
-            fSaveFactor=_globalPowerMangerTemp->_PowerInfo.factor;
-            fDiffVoltage=abs(faverageVoltage-fSaveVoltage);
-            fDiffFreq=abs(faverageFreq-fSaveFreq);
-            fDiffFactor=abs(faverageFactor-fSaveFactor);            
-        }else
-        {   //其他位则计算偏差值
-            fNowVoltage=abs(faverageVoltage-_globalPowerMangerTemp->_PowerInfo.voltage);
-            fNowFreq=abs(faverageFreq-_globalPowerMangerTemp->_PowerInfo.freq);
-            fNowFactor=abs(faverageFactor-_globalPowerMangerTemp->_PowerInfo.factor);  
-            if (fNowVoltage<fDiffVoltage)
+
+        list_for_each_entry(_globalPowerMangerTemp, &globalDeviceManger->_globalPowerManger.list, list)
+        {
+            // 有通道电压不为0的才记录在内
+            if (_globalPowerMangerTemp->_PowerInfo.voltage > 0)
             {
-                fSaveVoltage=_globalPowerMangerTemp->_PowerInfo.voltage;
-                fDiffVoltage=fNowVoltage;
+                faverageVoltage += _globalPowerMangerTemp->_PowerInfo.voltage;
+                faverageFreq += _globalPowerMangerTemp->_PowerInfo.freq;
+                faverageFactor += _globalPowerMangerTemp->_PowerInfo.factor;
+                nTempSum++;
             }
-            if (fNowFreq<fDiffFreq)
+        }
+        if (nTempSum > 0)
+        {
+            faverageVoltage /= nTempSum;
+            faverageFreq /= nTempSum;
+            faverageFactor /= nTempSum;
+        }
+        nTempSum = 0;
+        list_for_each_entry(_globalPowerMangerTemp, &globalDeviceManger->_globalPowerManger.list, list)
+        {
+            all->consumption += _globalPowerMangerTemp->_PowerInfo.consumption;
+
+            // 有通道电压不为0的才记录在内
+            if (_globalPowerMangerTemp->_PowerInfo.voltage <= 0)
             {
-                fSaveFreq=_globalPowerMangerTemp->_PowerInfo.freq;
-                fDiffFreq=fNowFreq;
+                continue;
             }
-            if (fNowFactor<fDiffFactor)
+
+            if (nTempSum == 0)
             {
-                fSaveFactor=_globalPowerMangerTemp->_PowerInfo.voltage;
-                fDiffFactor=fNowFactor;
-            }            
-        }        
-        // 填数据     
-        all->current += _globalPowerMangerTemp->_PowerInfo.current ;
-        all->power +=  _globalPowerMangerTemp->_PowerInfo.power ;
-        all->consumption += _globalPowerMangerTemp->_PowerInfo.consumption ;
-        nTempSum++;
-    }
-    all->voltage = fSaveVoltage ; 
-    all->freq =  fSaveFreq ;
-    all->factor = fSaveFactor;      
-    all->power = all->power;
-    
+                fSaveVoltage = _globalPowerMangerTemp->_PowerInfo.voltage;
+                fSaveFreq = _globalPowerMangerTemp->_PowerInfo.freq;
+                fSaveFactor = _globalPowerMangerTemp->_PowerInfo.factor;
+                fDiffVoltage = abs(faverageVoltage - fSaveVoltage);
+                fDiffFreq = abs(faverageFreq - fSaveFreq);
+                fDiffFactor = abs(faverageFactor - fSaveFactor);
+            }
+            else
+            { // 其他位则计算偏差值
+                fNowVoltage = abs(faverageVoltage - _globalPowerMangerTemp->_PowerInfo.voltage);
+                fNowFreq = abs(faverageFreq - _globalPowerMangerTemp->_PowerInfo.freq);
+                fNowFactor = abs(faverageFactor - _globalPowerMangerTemp->_PowerInfo.factor);
+                if (fNowVoltage < fDiffVoltage)
+                {
+                    fSaveVoltage = _globalPowerMangerTemp->_PowerInfo.voltage;
+                    fDiffVoltage = fNowVoltage;
+                }
+                if (fNowFreq < fDiffFreq)
+                {
+                    fSaveFreq = _globalPowerMangerTemp->_PowerInfo.freq;
+                    fDiffFreq = fNowFreq;
+                }
+                if (fNowFactor < fDiffFactor)
+                {
+                    fSaveFactor = _globalPowerMangerTemp->_PowerInfo.voltage;
+                    fDiffFactor = fNowFactor;
+                }
+            }
+            // 填数据
+            all->current += _globalPowerMangerTemp->_PowerInfo.current;
+            all->power += _globalPowerMangerTemp->_PowerInfo.power;
+            nTempSum++;
+        }
+        all->voltage = fSaveVoltage;
+        all->freq = fSaveFreq;
+        all->factor = fSaveFactor;
+        all->power = all->power;
+    }
+
     return 0;
 }
 #define DEBUG_TEST 0
@@ -880,8 +894,8 @@ int dev_search_time_power_info(sqlite3 *db,int product_id,int product_ch_id,int
     //         start_time,
     //         end_time);
     
-    snprintf(select_sql, sizeof(select_sql), "SELECT * FROM Table_PowerInfo WHERE (product_ch_id=%d) AND (product_samp_time BETWEEN '%s' AND '%s') ORDER BY product_Index DESC LIMIT 60;",
-             product_ch_id,
+    snprintf(select_sql, sizeof(select_sql), "SELECT * FROM Table_PowerInfo WHERE (product_id=%d) AND (product_samp_time BETWEEN '%s' AND '%s') ORDER BY product_Index DESC LIMIT 60;",
+             product_id,
              start_time,
              end_time);
 
@@ -1180,9 +1194,8 @@ int dev_search_power_trend_info(sqlite3 *db,int product_id,int product_ch_id,Glo
     //                     product_ch_id);
 
     // 数据库查询 1MIN一个点
-    snprintf(select_sql, sizeof(select_sql), "SELECT * FROM Table_PowerInfo WHERE (product_id=%d) AND (product_ch_id=%d) AND (product_samp_time BETWEEN '%s' AND '%s') ORDER BY product_Index DESC LIMIT 60;",
+    snprintf(select_sql, sizeof(select_sql), "SELECT * FROM Table_PowerInfo WHERE (product_id=%d) AND (product_samp_time BETWEEN '%s' AND '%s') ORDER BY product_Index DESC LIMIT 60;",
              product_id,
-             product_ch_id,
              start_time,
              end_time);
 

+ 1 - 1
ip/src/sqlite_handle.h

@@ -24,7 +24,7 @@ int dev_search_latest_power_info(sqlite3 *db,int product_id,int product_ch_id,Gl
 int dev_search_latest_power_All_info(GlobalDeviceManager* globalDeviceManger,_OverChnPwrAckInfo* __overChnPwrAckInfo, int dev_addr);
 int dev_delete_power_info_all(sqlite3 *db);
 
-int dev_search_latest_power_statistic_info(GlobalDeviceManager* globalDeviceManger, _OverAllPwrAckInfo *all);
+int dev_search_latest_power_statistic_info(GlobalDeviceManager* globalDeviceManger, _OverAllPwrAckInfo *all,bool curdev);
 int dev_search_latest_t_ac_power_statistic_info(int nCh,int nType,_OverAllPwrAckInfo* __overChnPwrAckInfo,GlobalDeviceManager* globalDeviceManger);
 
 int dev_search_time_power_info(sqlite3 *db,int product_id,int product_ch_id,int total_type,GlobalPowerInfo* _globalPowerInfo,char* start_time,char* end_time);

+ 2 - 2
ip/src/websocket_handle.c

@@ -141,12 +141,12 @@ static void web_update(ws_handle_t *wh)
             int nRetTotal = -1;
             if(cur_dev_addr==0) {
                 pthread_mutex_lock(&gdm->_power_update); 
-                nRetTotal=dev_search_latest_power_statistic_info(gdm, &allInfo);
+                nRetTotal=dev_search_latest_power_statistic_info(gdm, &allInfo,true);
                 pthread_mutex_unlock(&gdm->_power_update);
             }
             else {
                 cascade_lock();
-                nRetTotal=dev_search_latest_power_statistic_info(gdm2, &allInfo);
+                nRetTotal=dev_search_latest_power_statistic_info(gdm2, &allInfo,false);
                 cascade_unlock();
             }
             if (0==nRetTotal)