Parcourir la source

修改报警相关bug 更新传感器选中问题

chenyuanjie il y a 2 ans
Parent
commit
0cc2564757
5 fichiers modifiés avec 255 ajouts et 98 suppressions
  1. 2 2
      pro/src/app.c
  2. 27 8
      pro/src/appweb_handle.c
  3. 153 82
      pro/src/json_handle.c
  4. 71 6
      pro/src/sqlite_handle.c
  5. 2 0
      pro/src/sqlite_handle.h

+ 2 - 2
pro/src/app.c

@@ -1137,7 +1137,7 @@ void sensor_alarm(GlobalSensorManger *_globalSensorMangerTemp, int nAlarmType)
             if (!*pSave)
             {
                 *pSave = true;
-                log_d("Sensor_Alarm CtrlType=%d,value=%d",*nCtrlType,*nCtrlValue);
+                log_d("Sensor_Alarm CtrlType=%d,value=%s",*nCtrlType,*nCtrlValue);
                 dev_sensor_Alarm_send_message(&__globalDeviceManage, _globalSensorMangerTemp, nAlarmType);
                 if (*nCtrlType == ALARM_CTRL_CLOSE_CH)
                 {
@@ -1169,7 +1169,7 @@ void sensor_alarm(GlobalSensorManger *_globalSensorMangerTemp, int nAlarmType)
             if (!*pSave)
             {
                 *pSave = true;
-                log_d("Sensor_Alarm CtrlType=%d,value=%d",*nCtrlType,*nCtrlValue);
+                log_d("Sensor_Alarm CtrlType=%d,value=%s",*nCtrlType,*nCtrlValue);
                 dev_sensor_Alarm_send_message(&__globalDeviceManage, _globalSensorMangerTemp, nAlarmType);
                 if (*nCtrlType == ALARM_CTRL_CLOSE_CH)
                 {

+ 27 - 8
pro/src/appweb_handle.c

@@ -2575,6 +2575,7 @@ static void alarmProtect(void *conn)
             GlobalTreeACManager* _pTreeACPowerMangerTemp = NULL ;     
             list_for_each_entry(_pTreeACPowerMangerTemp, &_globalPowerMangerSaveTemp->list_Tree_AC, list_Tree_AC)
             {
+                memcpy(_pTreeACPowerMangerTemp->global_over_manager,_globalPowerMangerSaveTemp->global_over_manager,sizeof(GlobalOverManager));
                 ret = g_switch_set_all_single_threshold(&__globalDeviceManage._globalRelaySampManger,
                                                         _globalPowerMangerSaveTemp->product_ch_type,
                                                         _pTreeACPowerMangerTemp->product_saddr,
@@ -2596,14 +2597,32 @@ static void alarmProtect(void *conn)
             log_e("power threshold update error.ret:%d,%s",ret,modbus_strerror(errno));
             /* code */
         }
-        
-        //写入数据库
-        ret = dev_update_power_manage_over_info(__globalDeviceManage.db,
-        __globalDeviceManage._globalDevInfo.product_id,
-        _globalPowerMangerSaveTemp->product_ch_id,
-        _globalPowerMangerSaveTemp);
-        if(ret!=0)
-            log_e("power threshold update error.");
+        if (__globalDeviceManage._globalDevInfo.product_pwr_type == SmartPDU_Tree_AC_Tree || __globalDeviceManage._globalDevInfo.product_pwr_type == SmartPDU_Tree_AC_One)
+        {
+            // 写入数据库
+            ret = dev_update_power_manage_over_info(__globalDeviceManage.db,
+                                                    __globalDeviceManage._globalDevInfo.product_id,
+                                                    _globalPowerMangerSaveTemp->product_ch_id,
+                                                    _globalPowerMangerSaveTemp);
+            if (ret != 0)
+                log_e("power threshold update error.");
+            GlobalTreeACManager *_pTreeACPowerMangerTemp = NULL;
+            list_for_each_entry(_pTreeACPowerMangerTemp, &_globalPowerMangerSaveTemp->list_Tree_AC, list_Tree_AC)
+            {
+                memcpy(_pTreeACPowerMangerTemp->global_over_manager, _globalPowerMangerSaveTemp->global_over_manager, sizeof(GlobalOverManager));
+                ret = dev_update_t_ac_power_manage_over_info(__globalDeviceManage.db,_pTreeACPowerMangerTemp);
+            }            
+        }
+        else
+        {
+            // 写入数据库
+            ret = dev_update_power_manage_over_info(__globalDeviceManage.db,
+                                                    __globalDeviceManage._globalDevInfo.product_id,
+                                                    _globalPowerMangerSaveTemp->product_ch_id,
+                                                    _globalPowerMangerSaveTemp);
+            if (ret != 0)
+                log_e("power threshold update error.");
+        }
         //返回数据
         ack_str = ctrl_sts_ack_to_json();
     }

+ 153 - 82
pro/src/json_handle.c

@@ -1507,7 +1507,7 @@ cJSON* json_to_chn_pwr_status_monitor(const char* str,_OverChnPwrRequest* _over_
     cJSON* cjson_chn_id = cJSON_GetObjectItem(cjson,"productChId");
     if(cjson_chn_id!=NULL)    //通道
     {
-        _over_chn_pwr_request->productChId = cjson_chn_id->valueint;
+        _over_chn_pwr_request->productChId = atoi(cjson_chn_id->valuestring);
     }   
 
     cJSON* cjson_lType = cJSON_GetObjectItem(cjson,"lType");
@@ -1666,7 +1666,8 @@ char* over_channel_power_history_to_json(GlobalPowerInfo* _globalPowerInfo,Globa
         cJSON_AddStringToObject(data_filed,"productNumber",_globalDeviceInfo->product_number);
         cJSON_AddNumberToObject(data_filed,"productId",_globalDeviceInfo->product_id);
         cJSON_AddStringToObject(data_filed,"productChName",chn_name);
-        cJSON_AddNumberToObject(data_filed,"productChId",chn);        
+        sprintf(temp,"%d",__globalPowerInfoTemp->product_ch_id);
+        cJSON_AddStringToObject(data_filed,"productChId",temp);        
         sprintf(temp,"%0.3f", __globalPowerInfoTemp->_power_info.voltage);
         cJSON_AddStringToObject(data_filed,"productVoltage",temp);
         sprintf(temp,"%0.3f", __globalPowerInfoTemp->_power_info.current);
@@ -2356,7 +2357,8 @@ char* over_chn_pwr_monitor_to_json(_OverChnPwrAckInfo* _over_chn_pwr_back_info)
         sprintf(temp,"%d",_chnPwrTemp->product_id);
         cJSON_AddStringToObject(data_filed,"productId",temp);
         cJSON_AddStringToObject(data_filed,"productChName",_chnPwrTemp->productChName);
-        cJSON_AddNumberToObject(data_filed,"productChId",_chnPwrTemp->productChId);
+        sprintf(temp,"%d",_chnPwrTemp->productChId);
+        cJSON_AddStringToObject(data_filed,"productChId",temp);      
         sprintf(temp,"%0.3f",_chnPwrTemp->voltage);
         cJSON_AddStringToObject(data_filed,"productChVoltage",temp);
         sprintf(temp,"%0.3f",_chnPwrTemp->current);
@@ -2533,7 +2535,8 @@ char* over_all_breaker_chn_info_to_json(_OverBreakerChnInfo* _over_all_breaker_b
         cJSON_AddNumberToObject(data_filed,"productId",_temp->product_id);
         cJSON_AddStringToObject(data_filed, "productNumber",_temp->product_name);
         cJSON_AddStringToObject(data_filed, "productChName",_temp->product_ch_name);
-        cJSON_AddNumberToObject(data_filed,"productChId",_temp->product_ch_id);
+        sprintf(temp,"%d",_temp->product_ch_id);
+        cJSON_AddStringToObject(data_filed,"productChId",temp);      
         cJSON_AddItemToObject(data_root_array, "data", data_filed);
     }
     if (nWSType)
@@ -3258,7 +3261,8 @@ char* alarm_power_threshold_to_json(GlobalPowerManger* _globalPowerManger)
 
         cJSON* data_filed = cJSON_CreateObject();
         cJSON_AddStringToObject(data_filed,"productChName",_globalPowerMangerTemp->product_ch_name);
-        cJSON_AddNumberToObject(data_filed,"productChId",_globalPowerMangerTemp->product_ch_id);
+        sprintf(temp,"%d",_globalPowerMangerTemp->product_ch_id);
+        cJSON_AddStringToObject(data_filed,"productChId",temp);     
         //cJSON_AddNumberToObject(data_filed,"dyType",_globalPowerMangerTemp->product_ch_id);
         cJSON_AddNumberToObject(data_filed,"dyType",1);
         sprintf(temp, "%d", _globalPowerMangerTemp->_PowerInfo.status);
@@ -3314,7 +3318,8 @@ char* alarm_power_threshold_to_json(GlobalPowerManger* _globalPowerManger)
 
         cJSON* data_filed = cJSON_CreateObject();
         cJSON_AddStringToObject(data_filed,"productChName",_globalPowerManger->product_ch_name);
-        cJSON_AddNumberToObject(data_filed,"productChId",_globalPowerManger->product_ch_id);
+        sprintf(temp,"%d",_globalPowerMangerTemp->product_ch_id);
+        cJSON_AddStringToObject(data_filed,"productChId",temp);   
         cJSON_AddNumberToObject(data_filed,"dyType",_globalPowerManger->product_ch_id);
         cJSON_AddStringToObject(data_filed,"productChStatus","1");
         sprintf(temp,"%0.2f",_globalPowerManger->global_over_manager->product_cur_upper_threshold);
@@ -3384,7 +3389,8 @@ char* alarm_sensor_threshold_to_json(GlobalSensorManger* _globalSensorManger)
 {
     char* str = NULL;
     GlobalSensorManger* _globalSensorMangerTemp = NULL ;
-    char temp[32] = {0};
+    char temp[64] = {0};
+    char subTemp[1024] = {0};
     // 创建 JSON 对象
     cJSON* root = cJSON_CreateObject();   
     cJSON *data_filed = NULL;
@@ -3441,8 +3447,70 @@ char* alarm_sensor_threshold_to_json(GlobalSensorManger* _globalSensorManger)
             else
                 cJSON_AddStringToObject(data_filed, "thresholdDownAction", Alarmtemp);
             
-            cJSON_AddStringToObject(data_filed, "thresholdUpperChanel", _globalSensorMangerTemp->over_manager->sensor_val1_upper_threshold_ctrl_para);
-            cJSON_AddStringToObject(data_filed, "thresholdDownChanel",  _globalSensorMangerTemp->over_manager->sensor_val1_lower_threshold_ctrl_para);
+            char *pCHlist;
+            char *pCHListSave;
+            if (strlen(_globalSensorMangerTemp->over_manager->sensor_val1_upper_threshold_ctrl_para) > 0)
+            {
+                cJSON_AddStringToObject(data_filed, "thresholdUpperChanel", _globalSensorMangerTemp->over_manager->sensor_val1_upper_threshold_ctrl_para);
+                pCHlist = strtok_r(_globalSensorMangerTemp->over_manager->sensor_val1_upper_threshold_ctrl_para, ",", &pCHListSave);
+                // 其他版本功能
+                while (pCHlist != NULL)
+                {
+                    GlobalPowerManger *_globalPowerMangerTemp = NULL;
+                    list_for_each_entry(_globalPowerMangerTemp, &__globalDeviceManage._globalPowerManger.list, list)
+                    {
+                        if (_globalPowerMangerTemp == NULL)
+                            break;
+                        if (atoi(pCHlist) == _globalPowerMangerTemp->product_ch_id)
+                        {
+                            if (strlen(subTemp) <= 0)
+                            {
+                                sprintf(temp, "%s", _globalPowerMangerTemp->product_ch_name);
+                            }
+                            else
+                            {
+                                sprintf(temp, ",%s", _globalPowerMangerTemp->product_ch_name);
+                            }
+                            strcat(subTemp, temp);
+                            break;
+                        }
+                    }
+                    pCHlist = strtok_r(NULL, ",", &pCHListSave);
+                }
+                cJSON_AddStringToObject(data_filed, "thresholdUpperChanelName", subTemp);
+            }
+            if (strlen(_globalSensorMangerTemp->over_manager->sensor_val1_lower_threshold_ctrl_para) > 0)
+            {
+                cJSON_AddStringToObject(data_filed, "thresholdDownChanel", _globalSensorMangerTemp->over_manager->sensor_val1_lower_threshold_ctrl_para);
+                memset(subTemp, 0, sizeof(subTemp));
+                pCHlist = strtok_r(_globalSensorMangerTemp->over_manager->sensor_val1_lower_threshold_ctrl_para, ",", &pCHListSave);
+                // 其他版本功能
+                while (pCHlist != NULL)
+                {
+                    GlobalPowerManger *_globalPowerMangerTemp = NULL;
+                    list_for_each_entry(_globalPowerMangerTemp, &__globalDeviceManage._globalPowerManger.list, list)
+                    {
+                        if (_globalPowerMangerTemp == NULL)
+                            break;
+                        if (atoi(pCHlist) == _globalPowerMangerTemp->product_ch_id)
+                        {
+                            if (strlen(subTemp) <= 0)
+                            {
+                                sprintf(temp, "%s", _globalPowerMangerTemp->product_ch_name);
+                            }
+                            else
+                            {
+                                sprintf(temp, ",%s", _globalPowerMangerTemp->product_ch_name);
+                            }
+                            strcat(subTemp, temp);
+                            break;
+                        }
+                    }
+                    pCHlist = strtok_r(NULL, ",", &pCHListSave);
+                }
+                cJSON_AddStringToObject(data_filed, "thresholdDownChanelName", subTemp);
+            }
+
             cJSON_AddItemToObject(data_root_array, "data", data_filed);
             data_filed = cJSON_CreateObject();
             sprintf(temp, "%d", _globalSensorMangerTemp->sensor_status);
@@ -3455,74 +3523,74 @@ char* alarm_sensor_threshold_to_json(GlobalSensorManger* _globalSensorManger)
             {
                 sprintf(temp, "%s%d",language_temperature[__globalDeviceManage._globalDevInfo.product_language],2);
                 cJSON_AddStringToObject(data_filed, "thresholdType", temp);
-            }else{
-                cJSON_AddStringToObject(data_filed, "thresholdType", language_humidity[__globalDeviceManage._globalDevInfo.product_language]);
-            }
-            
-            
-            sprintf(temp, "%0.2f", _globalSensorMangerTemp->over_manager->sensor_val2_upper_threshold);
-            cJSON_AddStringToObject(data_filed, "thresholdUpperValue", temp);
-            sprintf(temp, "%0.2f", _globalSensorMangerTemp->over_manager->sensor_val2_lower_threshold);
-            cJSON_AddStringToObject(data_filed, "thresholdDownValue", temp);
-            if (_globalSensorMangerTemp->over_manager->sensor_val2_upper_threshold_ctrl == ALARM_CTRL_CLOSE_CH)
-            {
-                cJSON_AddStringToObject(data_filed, "thresholdUpperAction",Closetemp);
-            }
-            else
-                cJSON_AddStringToObject(data_filed, "thresholdUpperAction", Alarmtemp);
-            if (_globalSensorMangerTemp->over_manager->sensor_val2_lower_threshold_ctrl == ALARM_CTRL_CLOSE_CH)
-            {
-                cJSON_AddStringToObject(data_filed, "thresholdDownAction", Closetemp);
-            }
-            else
-                cJSON_AddStringToObject(data_filed, "thresholdDownAction", Alarmtemp);
-            cJSON_AddItemToObject(data_root_array, "data", data_filed);
-            break;
-        case SENSOR_TYPE_SMOKE:
-        case SENSOR_TYPE_WATER:
-        case SENSOR_TYPE_DOOR:
-            data_filed = cJSON_CreateObject();
-            cJSON_AddStringToObject(data_filed, "connectionStatus", "");
-            cJSON_AddStringToObject(data_filed, "sensorName", _globalSensorMangerTemp->sensor_name);
-            sprintf(temp, "%d", _globalSensorMangerTemp->sensor_id);
-            cJSON_AddStringToObject(data_filed, "sensorId", temp);
-            cJSON_AddNumberToObject(data_filed, "sensorType", _globalSensorMangerTemp->sensor_type);
-            cJSON_AddStringToObject(data_filed, "thresholdType", "");
-            cJSON_AddStringToObject(data_filed, "thresholdUpperValue", "");
-            cJSON_AddStringToObject(data_filed, "thresholdDownValue", "");
-            cJSON_AddItemToObject(data_root_array, "data", data_filed);
-            break;
-        case SENSOR_TYPE_GAS:
-        case SENSOR_TYPE_AIR_PRESS:
-        default:
-            data_filed = cJSON_CreateObject();
-            cJSON_AddNumberToObject(data_filed, "connectionStatus", _globalSensorMangerTemp->sensor_status);
-            // cJSON_AddNumberToObject(data_filed,"connectionStatus",_globalSensorMangerTemp->sensor_status);
-            cJSON_AddStringToObject(data_filed, "sensorName", _globalSensorMangerTemp->sensor_name);
-            sprintf(temp, "%d", _globalSensorMangerTemp->sensor_id);
-            cJSON_AddStringToObject(data_filed, "sensorId", temp);
-            cJSON_AddNumberToObject(data_filed, "sensorType", _globalSensorMangerTemp->sensor_type);
-            cJSON_AddStringToObject(data_filed, "thresholdType", "");
-            sprintf(temp, "%0.2f", _globalSensorMangerTemp->over_manager->sensor_val1_upper_threshold);
-            cJSON_AddStringToObject(data_filed, "thresholdUpperValue", temp);
-            sprintf(temp, "%0.2f", _globalSensorMangerTemp->over_manager->sensor_val1_lower_threshold);
-            cJSON_AddStringToObject(data_filed, "thresholdDownValue", temp);
-            if (_globalSensorMangerTemp->over_manager->sensor_val1_upper_threshold_ctrl == ALARM_CTRL_CLOSE_CH)
-            {
-                cJSON_AddStringToObject(data_filed, "thresholdUpperAction", Closetemp);
-            }
-            else
-                cJSON_AddStringToObject(data_filed, "thresholdUpperAction",Alarmtemp);
-            if (_globalSensorMangerTemp->over_manager->sensor_val1_lower_threshold_ctrl == ALARM_CTRL_CLOSE_CH)
-            {
-                cJSON_AddStringToObject(data_filed, "thresholdDownAction", Closetemp);
-            }
-            else
-                cJSON_AddStringToObject(data_filed, "thresholdDownAction", Alarmtemp);
-            cJSON_AddItemToObject(data_root_array, "data", data_filed);
-            break;
-        }
+                }
+                else
+                {
+                    cJSON_AddStringToObject(data_filed, "thresholdType", language_humidity[__globalDeviceManage._globalDevInfo.product_language]);
+                }
 
+                sprintf(temp, "%0.2f", _globalSensorMangerTemp->over_manager->sensor_val2_upper_threshold);
+                cJSON_AddStringToObject(data_filed, "thresholdUpperValue", temp);
+                sprintf(temp, "%0.2f", _globalSensorMangerTemp->over_manager->sensor_val2_lower_threshold);
+                cJSON_AddStringToObject(data_filed, "thresholdDownValue", temp);
+                if (_globalSensorMangerTemp->over_manager->sensor_val2_upper_threshold_ctrl == ALARM_CTRL_CLOSE_CH)
+                {
+                    cJSON_AddStringToObject(data_filed, "thresholdUpperAction", Closetemp);
+                }
+                else
+                    cJSON_AddStringToObject(data_filed, "thresholdUpperAction", Alarmtemp);
+                if (_globalSensorMangerTemp->over_manager->sensor_val2_lower_threshold_ctrl == ALARM_CTRL_CLOSE_CH)
+                {
+                    cJSON_AddStringToObject(data_filed, "thresholdDownAction", Closetemp);
+                }
+                else
+                    cJSON_AddStringToObject(data_filed, "thresholdDownAction", Alarmtemp);
+                cJSON_AddItemToObject(data_root_array, "data", data_filed);
+                break;
+            case SENSOR_TYPE_SMOKE:
+            case SENSOR_TYPE_WATER:
+            case SENSOR_TYPE_DOOR:
+                data_filed = cJSON_CreateObject();
+                cJSON_AddStringToObject(data_filed, "connectionStatus", "");
+                cJSON_AddStringToObject(data_filed, "sensorName", _globalSensorMangerTemp->sensor_name);
+                sprintf(temp, "%d", _globalSensorMangerTemp->sensor_id);
+                cJSON_AddStringToObject(data_filed, "sensorId", temp);
+                cJSON_AddNumberToObject(data_filed, "sensorType", _globalSensorMangerTemp->sensor_type);
+                cJSON_AddStringToObject(data_filed, "thresholdType", "");
+                cJSON_AddStringToObject(data_filed, "thresholdUpperValue", "");
+                cJSON_AddStringToObject(data_filed, "thresholdDownValue", "");
+                cJSON_AddItemToObject(data_root_array, "data", data_filed);
+                break;
+            case SENSOR_TYPE_GAS:
+            case SENSOR_TYPE_AIR_PRESS:
+            default:
+                data_filed = cJSON_CreateObject();
+                cJSON_AddNumberToObject(data_filed, "connectionStatus", _globalSensorMangerTemp->sensor_status);
+                // cJSON_AddNumberToObject(data_filed,"connectionStatus",_globalSensorMangerTemp->sensor_status);
+                cJSON_AddStringToObject(data_filed, "sensorName", _globalSensorMangerTemp->sensor_name);
+                sprintf(temp, "%d", _globalSensorMangerTemp->sensor_id);
+                cJSON_AddStringToObject(data_filed, "sensorId", temp);
+                cJSON_AddNumberToObject(data_filed, "sensorType", _globalSensorMangerTemp->sensor_type);
+                cJSON_AddStringToObject(data_filed, "thresholdType", "");
+                sprintf(temp, "%0.2f", _globalSensorMangerTemp->over_manager->sensor_val1_upper_threshold);
+                cJSON_AddStringToObject(data_filed, "thresholdUpperValue", temp);
+                sprintf(temp, "%0.2f", _globalSensorMangerTemp->over_manager->sensor_val1_lower_threshold);
+                cJSON_AddStringToObject(data_filed, "thresholdDownValue", temp);
+                if (_globalSensorMangerTemp->over_manager->sensor_val1_upper_threshold_ctrl == ALARM_CTRL_CLOSE_CH)
+                {
+                    cJSON_AddStringToObject(data_filed, "thresholdUpperAction", Closetemp);
+                }
+                else
+                    cJSON_AddStringToObject(data_filed, "thresholdUpperAction", Alarmtemp);
+                if (_globalSensorMangerTemp->over_manager->sensor_val1_lower_threshold_ctrl == ALARM_CTRL_CLOSE_CH)
+                {
+                    cJSON_AddStringToObject(data_filed, "thresholdDownAction", Closetemp);
+                }
+                else
+                    cJSON_AddStringToObject(data_filed, "thresholdDownAction", Alarmtemp);
+                cJSON_AddItemToObject(data_root_array, "data", data_filed);
+                break;
+            }
     }
     //添加汇总
     cJSON_AddItemToObject(root, "data", data_root_array);
@@ -3643,7 +3711,8 @@ char* ws_chn_status_ack_to_json(int type,_OverChnPwrAckInfo* _over_chn_pwr_back_
         sprintf(temp,"%d",_chnPwrTemp->product_id);
         cJSON_AddStringToObject(data_filed,"productId",temp);
         cJSON_AddStringToObject(data_filed,"productChName",_chnPwrTemp->productChName);
-        cJSON_AddNumberToObject(data_filed,"productChId",_chnPwrTemp->productChId);
+        sprintf(temp, "%d", _chnPwrTemp->productChId);
+        cJSON_AddStringToObject(data_filed, "productChId", temp);
         sprintf(temp,"%0.3f",_chnPwrTemp->voltage);
         cJSON_AddStringToObject(data_filed,"productChVoltage",temp);
         sprintf(temp,"%0.3f",_chnPwrTemp->current);
@@ -3983,7 +4052,7 @@ cJSON* json_to_alarm_manage(const char* str,_AlarmRequestInfo* _alarm_request_in
 
     cJSON* cjson_productChId = cJSON_GetObjectItem(cjson,"productChId");
     if(cjson_productChId!=NULL)
-        _alarm_request_info->_pwr_info.productChId = cjson_productChId->valueint ;
+        _alarm_request_info->_pwr_info.productChId = atoi(cjson_productChId->valuestring) ;
 
     cJSON* cjson_productChName = cJSON_GetObjectItem(cjson,"productChName");
     if(cjson_productChName!=NULL)
@@ -4397,7 +4466,7 @@ cJSON* json_to_service_manage(const char* str,_ServiceManageRequestInfo* _servic
             int nIndex =0;
             for (cJSON* cjson_ds_ch_id_child = cjson_ds_ch_id->child; cjson_ds_ch_id_child != NULL; cjson_ds_ch_id_child = cjson_ds_ch_id_child->next,nIndex++)
             {               
-                _serviceManageRequestInfo->_ds_info.productChIds[nIndex]=cjson_ds_ch_id_child->valueint;
+                _serviceManageRequestInfo->_ds_info.productChIds[nIndex]=atoi(cjson_ds_ch_id_child->valuestring);
             }
         }
         if (cjson_ds_dateS != NULL)
@@ -4437,7 +4506,7 @@ cJSON* json_to_service_manage(const char* str,_ServiceManageRequestInfo* _servic
             if (cjson_sx_ch_id->type == cJSON_Number)
             {
                 _serviceManageRequestInfo->_posix_info.productChId = malloc(10);
-                sprintf(_serviceManageRequestInfo->_posix_info.productChId, "%d", cjson_sx_ch_id->valueint);
+                sprintf(_serviceManageRequestInfo->_posix_info.productChId, "%s", cjson_sx_ch_id->valuestring);
             }
         }
         if(cjson_sx_product_id != NULL)
@@ -4599,7 +4668,7 @@ char* service_sx_ack_to_json(int product_id, GlobalPowerManger * __PowerManage_t
     cJSON_AddNumberToObject(root, "code", 200); 
     //创建数据
     cJSON* data_root_array = cJSON_CreateArray();   
-
+    char temp[64]={0};
     //循环添加数据
     list_for_each_entry(_powerSxManagerTemp, &__PowerManage_t->list, list)
     {
@@ -4609,7 +4678,9 @@ char* service_sx_ack_to_json(int product_id, GlobalPowerManger * __PowerManage_t
             cJSON_AddStringToObject(data_filed,"productName", __globalDeviceManage._globalDevInfo.product_name);
             cJSON_AddNumberToObject(data_filed,"productId", __globalDeviceManage._globalDevInfo.product_id);
             cJSON_AddStringToObject(data_filed,"productChName", _powerSxManagerTemp->product_ch_name);
-            cJSON_AddNumberToObject(data_filed,"productChId",_powerSxManagerTemp->product_ch_id);
+            sprintf(temp, "%d", _powerSxManagerTemp->product_ch_id);
+            cJSON_AddStringToObject(data_filed, "productChId", temp);
+        
             if (_powerSxManagerTemp->_PowerSXManage)
             {
                 cJSON_AddNumberToObject(data_filed,"firingSortno", _powerSxManagerTemp->_PowerSXManage->firingSortno);

+ 71 - 6
pro/src/sqlite_handle.c

@@ -907,7 +907,7 @@ int dev_get_system_total_info(sqlite3 *db,int product_id,int product_ch_id, Syst
 	__SystemTotalInfo->warn_total=0;
 
     //查询告警总数
-    snprintf(select_sql,sizeof(select_sql),"SELECT count (*) FROM Table_AlarmManage where (alarmType=%d) and (alarmDate BETWEEN '%s' AND '%s');",0,start_time,end_time);
+    snprintf(select_sql,sizeof(select_sql),"SELECT count (*) FROM Table_AlarmManage where (alarmType=%d OR alarmType=%d OR alarmType=%d  ) and (alarmDate BETWEEN '%s' AND '%s');",0,1,2,start_time,end_time);
     res = sqlite3_get_table(db, select_sql, &pResult, &nrow, &ncolumn, &err_msg);
     if(res != SQLITE_OK)
     {
@@ -924,7 +924,7 @@ int dev_get_system_total_info(sqlite3 *db,int product_id,int product_ch_id, Syst
     sqlite3_free_table(pResult);
 
     //查询日志总数
-    snprintf(select_sql,sizeof(select_sql),"SELECT count (*) FROM Table_AlarmManage where (alarmType=%d) and (alarmDate BETWEEN '%s' AND '%s');",2,start_time,end_time);
+    snprintf(select_sql,sizeof(select_sql),"SELECT count (*) FROM Table_AlarmManage where (alarmType=%d) and (alarmDate BETWEEN '%s' AND '%s');",4,start_time,end_time);
     res = sqlite3_get_table(db, select_sql, &pResult, &nrow, &ncolumn, &err_msg);
     if(res != SQLITE_OK)
     {
@@ -1588,7 +1588,72 @@ int dev_update_t_ac_power_manage_info(sqlite3 *db,GlobalTreeACManager* _globalPo
     sqlite3_free_table(pResult);
     return 0;
 }
+//超限报警信息更新
+int dev_update_t_ac_power_manage_over_info(sqlite3 *db,GlobalTreeACManager* _globalPowerChnManger)
+{
+    int res;
+    char select_sql[2048] = {0};
+    char *errorMsg = NULL;
+    int nrow = 0;          // 满足条件的记录数目
+    int ncolumn = 0;       // 每条记录包含的字段数据
+    char **pResult = NULL; // 用来指向sql执行结果的指针
+    char *err_msg = NULL;
 
+    sprintf(select_sql, "UPDATE Table_PhasePowerManage SET \
+            product_ph_vol_upper_enable = %d,\
+            product_ph_vol_upper_threshold = %.2f,\
+            product_ph_vol_over_upper_threshold_ctrl =  %d,\
+            product_ph_vol_over_upper_threshold_ctrl_para =  %d,\
+            product_ph_vol_lower_enable =  %d,\
+            product_ph_vol_lower_threshold = %.2f,\
+            product_ph_vol_over_lower_threshold_ctrl =  %d,\
+            product_ph_vol_over_lower_threshold_ctrl_para = %d,\
+            product_ph_cur_upper_enable = %d,\
+            product_ph_cur_upper_threshold = %.2f,\
+            product_ph_cur_over_upper_threshold_ctrl = %d,\
+            product_ph_cur_over_upper_threshold_ctrl_para = %d,\
+            product_ph_pwr_upper_enable = %d,\
+            product_ph_pwr_upper_threshold = %.2f,\
+            product_ph_pwr_over_upper_threshold_ctrl = %d,\
+            product_ph_pwr_over_upper_threshold_ctrl_para = %d,\
+            product_ph_pwrcon_upper_enable = %d,\
+            product_ph_pwrcon_upper_threshold =%.2f,\
+            product_ph_pwrcon_over_upper_threshold = %d,\
+            product_ph_pwrcon_over_upper_threshold_para = %d\
+            where product_ph_outputType=%d and product_ph_outputStatus=%d;",
+              _globalPowerChnManger->global_over_manager->product_vol_upper_enable,
+              _globalPowerChnManger->global_over_manager->product_vol_upper_threshold,
+              _globalPowerChnManger->global_over_manager->product_vol_over_upper_threshold_ctrl,
+              _globalPowerChnManger->global_over_manager->product_vol_over_upper_threshold_ctrl_para,
+              _globalPowerChnManger->global_over_manager->product_vol_lower_enable,
+              _globalPowerChnManger->global_over_manager->product_vol_lower_threshold,
+              _globalPowerChnManger->global_over_manager->product_vol_over_lower_threshold_ctrl,
+              _globalPowerChnManger->global_over_manager->product_vol_over_lower_threshold_ctrl_para,
+              _globalPowerChnManger->global_over_manager->product_cur_upper_enable,
+              _globalPowerChnManger->global_over_manager->product_cur_upper_threshold,
+              _globalPowerChnManger->global_over_manager->product_cur_over_upper_threshold_ctrl,
+              _globalPowerChnManger->global_over_manager->product_cur_over_upper_threshold_ctrl_para,
+              _globalPowerChnManger->global_over_manager->product_pwr_upper_enable,
+              _globalPowerChnManger->global_over_manager->product_pwr_upper_threshold,
+              _globalPowerChnManger->global_over_manager->product_pwr_over_upper_threshold_ctrl,
+              _globalPowerChnManger->global_over_manager->product_pwr_over_upper_threshold_ctrl_para,
+              _globalPowerChnManger->global_over_manager->product_pwrcon_upper_enable,
+              _globalPowerChnManger->global_over_manager->product_pwrcon_upper_threshold,
+              _globalPowerChnManger->global_over_manager->product_pwrcon_over_upper_threshold_ctrl,
+              _globalPowerChnManger->global_over_manager->product_pwrcon_over_upper_threshold_ctrl_para,
+              _globalPowerChnManger->product_ph_outputType,
+              _globalPowerChnManger->product_ph_outputStatus);
+    printf("select_sql:%s\n", select_sql);
+    res = sqlite_SQL_RUN(db, select_sql, &pResult, &nrow, &ncolumn, &err_msg);
+    if (res != SQLITE_OK)
+    {
+        log_e("sqlite handle error: %s\n%s\n", err_msg, select_sql);
+        sqlite3_free(err_msg);
+        return -1;
+    }
+    sqlite3_free_table(pResult);
+    return 0;
+}
 /// @brief 插入三项通子通道记录
 /// @param db 
 /// @param product_id 
@@ -3577,16 +3642,16 @@ int dev_sensor_Alarm_send_message(GlobalDeviceManager* globalDeviceManger,Global
         switch (_AlarmType)
         {
         case SENSOR_VAL1_UPPER:
-            sprintf(AlarmText, "%s |$温度$|$%s$", __globalPowerTemp->sensor_name, language_alarm_Up[languagesID]);
+            sprintf(AlarmText, "%s |$温度$|1|$%s$", __globalPowerTemp->sensor_name, language_alarm_Up[languagesID]);
             break;
         case SENSOR_VAL1_LOWER:
-            sprintf(AlarmText, "%s |$温度$|$%s$", __globalPowerTemp->sensor_name, language_alarm_Down[languagesID]);
+            sprintf(AlarmText, "%s |$温度$|1|$%s$", __globalPowerTemp->sensor_name, language_alarm_Down[languagesID]);
             break;
         case SENSOR_VAL2_UPPER:
-            sprintf(AlarmText, "%s |$温度$|$%s$", __globalPowerTemp->sensor_name, language_alarm_Up[languagesID]);
+            sprintf(AlarmText, "%s |$温度$|2|$%s$", __globalPowerTemp->sensor_name, language_alarm_Up[languagesID]);
             break;
         case SENSOR_VAL2_LOWER:
-            sprintf(AlarmText, "%s |$温度$|$%s$", __globalPowerTemp->sensor_name, language_alarm_Down[languagesID]);
+            sprintf(AlarmText, "%s |$温度$|2|$%s$", __globalPowerTemp->sensor_name, language_alarm_Down[languagesID]);
             break;
         default:
             sprintf(AlarmText, "%s |$%s$", __globalPowerTemp->sensor_name, language_alarm_NULL_ERROR[languagesID]);

+ 2 - 0
pro/src/sqlite_handle.h

@@ -50,6 +50,8 @@ int dev_get_t_ac_power_manage_info(sqlite3 *db,int product_id,int product_addr,i
 int dev_insert_t_ac_power_manage_info(sqlite3 *db,int product_id,int product_ch_id,GlobalTreeACManager* _globalPowerChnManger);
 int dev_insert_t_ac_power_info(sqlite3 *db,GlobalTreeACManager* _globalPowerChnInfo,int* nIndex,char* pTimeData);
 int dev_update_t_ac_power_manage_info(sqlite3 *db,GlobalTreeACManager* _globalPowerChnInfo);
+int dev_update_t_ac_power_manage_over_info(sqlite3 *db,GlobalTreeACManager* _globalPowerChnManger);
+
 
 int dev_update_power_manage_genera_info(sqlite3 *db,int product_id,int product_ch_id,GlobalPowerManger* _globalPowerChnManger);
 int dev_update_power_manage_genera_info_addr(sqlite3 *db,int product_id,int addr,int addr_ch_id,GlobalPowerManger* _globalPowerChnManger);