Ver código fonte

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

guohui 2 anos atrás
pai
commit
fc37d0836b
3 arquivos alterados com 151 adições e 11 exclusões
  1. 43 0
      pro/src/appweb_handle.c
  2. 98 0
      pro/src/json_handle.c
  3. 10 11
      pro/src/sqlite_handle.c

+ 43 - 0
pro/src/appweb_handle.c

@@ -3327,6 +3327,49 @@ static void alarmProtect(void *conn)
         case SENSOR_TYPE_DOOR:
             break;
         case SENSOR_TYPE_GAS:
+            {
+                char strName1[100] = {0};
+                char strName2[100] = {0};
+                sprintf(strName1, "%s%d", language_atmosphere_gas[__globalDeviceManage._globalDevInfo.product.language], 1);
+                sprintf(strName2, "%s%d", language_atmosphere_gas[__globalDeviceManage._globalDevInfo.product.language], 2);
+                if (strcmp(_alarm_request_info._sensor_info.thresholdType, language_atmosphere_gas[__globalDeviceManage._globalDevInfo.product.language]) == 0 || strcmp(_alarm_request_info._sensor_info.thresholdType, strName1) == 0)
+                {
+                    _globalSensorMangerSaveTemp->over_manager->sensor_val1_upper_threshold = atof(_alarm_request_info._sensor_info.thresholdUpperValue);
+                    _globalSensorMangerSaveTemp->over_manager->sensor_val1_lower_threshold = atof(_alarm_request_info._sensor_info.thresholdDownValue);
+                    if (_globalSensorMangerSaveTemp->over_manager->sensor_val1_upper_threshold <= 0.05 && _globalSensorMangerSaveTemp->over_manager->sensor_val1_upper_threshold >= -0.05)
+                    {
+                        _globalSensorMangerSaveTemp->over_manager->sensor_val1_upper_enabled = 0;
+                    }
+                    else
+                        _globalSensorMangerSaveTemp->over_manager->sensor_val1_upper_enabled = 1;
+
+                    if (_globalSensorMangerSaveTemp->over_manager->sensor_val1_lower_threshold <= 0.05 && _globalSensorMangerSaveTemp->over_manager->sensor_val1_lower_threshold >= -0.05)
+                    {
+                        _globalSensorMangerSaveTemp->over_manager->sensor_val1_lower_enabled = 0;
+                    }
+                    else
+                        _globalSensorMangerSaveTemp->over_manager->sensor_val1_lower_enabled = 1;
+
+                    if (_alarm_request_info._sensor_info.thresholdUpperAction && strcmp(_alarm_request_info._sensor_info.thresholdUpperAction, Alarm_Ctrl_type) == 0)
+                    {
+                        _globalSensorMangerSaveTemp->over_manager->sensor_val1_upper_threshold_ctrl = ALARM_CTRL_CLOSE_CH;
+                        if (_alarm_request_info._sensor_info.thresholdUpperChanel)
+                            strcpy(_globalSensorMangerSaveTemp->over_manager->sensor_val1_upper_threshold_ctrl_para, _alarm_request_info._sensor_info.thresholdUpperChanel);
+                    }
+                    else
+                        _globalSensorMangerSaveTemp->over_manager->sensor_val1_upper_threshold_ctrl = ALARM_CTRL_ALARM_ONLY;
+
+                    if (_alarm_request_info._sensor_info.thresholdDownAction && strcmp(_alarm_request_info._sensor_info.thresholdDownAction, Alarm_Ctrl_type) == 0)
+                    {
+                        _globalSensorMangerSaveTemp->over_manager->sensor_val1_lower_threshold_ctrl = ALARM_CTRL_CLOSE_CH;
+                        if (_alarm_request_info._sensor_info.thresholdDownChanel)
+                            strcpy(_globalSensorMangerSaveTemp->over_manager->sensor_val1_lower_threshold_ctrl_para, _alarm_request_info._sensor_info.thresholdDownChanel);
+                    }
+                    else
+                        _globalSensorMangerSaveTemp->over_manager->sensor_val1_lower_threshold_ctrl = ALARM_CTRL_ALARM_ONLY;
+                }
+            }
+            break;
         case SENSOR_TYPE_AIR_PRESS:
         default:
             break;

+ 98 - 0
pro/src/json_handle.c

@@ -3436,6 +3436,7 @@ char* alarm_sensor_threshold_to_json(GlobalSensorManger* _globalSensorManger)
         {
         case SENSOR_TYPE_TEMPERATURE:
         case SENSOR_TYPE_DoubleT:
+        {
             data_filed = cJSON_CreateObject();
             sprintf(temp, "%d", _globalSensorMangerTemp->sensor_status);
             cJSON_AddStringToObject(data_filed, "connectionStatus", temp);
@@ -3643,6 +3644,7 @@ char* alarm_sensor_threshold_to_json(GlobalSensorManger* _globalSensorManger)
             }
 
             cJSON_AddItemToObject(data_root_array, "data", data_filed);
+        }
             break;
         case SENSOR_TYPE_SMOKE:
         case SENSOR_TYPE_WATER:
@@ -3659,6 +3661,102 @@ char* alarm_sensor_threshold_to_json(GlobalSensorManger* _globalSensorManger)
             cJSON_AddItemToObject(data_root_array, "data", data_filed);
             break;
         case SENSOR_TYPE_GAS:
+        {
+            data_filed = cJSON_CreateObject();
+            sprintf(temp, "%d", _globalSensorMangerTemp->sensor_status);
+            cJSON_AddStringToObject(data_filed, "connectionStatus", temp);
+            cJSON_AddStringToObject(data_filed, "sensorName", language_sensor_name[langID][(int)_globalSensorMangerTemp->sensor_type]);
+            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", language_atmosphere_gas[__globalDeviceManage._globalDevInfo.product.language]);
+            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);
+
+            char *pCHlist;
+            char *pCHListSave;
+            char sensor_para[512];
+            if (strlen(_globalSensorMangerTemp->over_manager->sensor_val1_upper_threshold_ctrl_para) > 0)
+            {
+                strcpy(sensor_para, _globalSensorMangerTemp->over_manager->sensor_val1_upper_threshold_ctrl_para);
+                cJSON_AddStringToObject(data_filed, "thresholdUpperChanel", _globalSensorMangerTemp->over_manager->sensor_val1_upper_threshold_ctrl_para);
+                 memset(subTemp, 0, sizeof(subTemp));
+                pCHlist = strtok_r(sensor_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));
+                strcpy(sensor_para, _globalSensorMangerTemp->over_manager->sensor_val1_lower_threshold_ctrl_para);
+                pCHlist = strtok_r(sensor_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);
+        }
+            break;
         case SENSOR_TYPE_AIR_PRESS:
         default:
             data_filed = cJSON_CreateObject();

+ 10 - 11
pro/src/sqlite_handle.c

@@ -2778,7 +2778,7 @@ int dev_search_alarm_info(sqlite3* db,
     //查询告警总数
     if (alarm_type<0)//小于0加载所有的
     {
-        snprintf(select_sql,sizeof(select_sql),"SELECT count (*) FROM Table_AlarmManage where (alarmDate BETWEEN '%s' AND '%s');",start_time,end_time);
+        snprintf(select_sql,sizeof(select_sql),"SELECT count (*) FROM Table_AlarmManage where (alarmType=%d) or (alarmType=%d) or (alarmType=%d);",ALARM_TYPE_POWER,ALARM_TYPE_SENSOR,ALARM_TYPE_NETWORK);
     }else{
         snprintf(select_sql,sizeof(select_sql),"SELECT count (*) FROM Table_AlarmManage where (alarmType=%d) and (alarmDate BETWEEN '%s' AND '%s');",alarm_type,start_time,end_time);
     }
@@ -2805,25 +2805,24 @@ int dev_search_alarm_info(sqlite3* db,
     *nAlarmSum = cnt;
 #endif
     
-    if (!start_time||!start_time)
-    {
-        sprintf(select_sql, "SELECT* FROM Table_AlarmManage WHERE (product_id=%d) AND (alarmType=%d) order by alarmNumber LIMIT %d OFFSET %d;",
-                product_id,
-                alarm_type,
-                page_size,
-                page_num > 0 ? (page_num)*page_size : 0);
+    if (alarm_type<0)//小于0加载所有的
+    {   
+        sprintf(select_sql,"SELECT* FROM Table_AlarmManage WHERE (product_id=%d) and ((alarmType=%d) or (alarmType=%d) or (alarmType=%d)) order by alarmDate desc LIMIT %d OFFSET %d ;",
+                        product_id,
+                        ALARM_TYPE_POWER,ALARM_TYPE_SENSOR,ALARM_TYPE_NETWORK,
+                        page_size,
+                        page_num>0?(page_num-1)*page_size:0);
     }
     else
     {
-        sprintf(select_sql, "SELECT* FROM Table_AlarmManage WHERE (product_id=%d) AND (alarmType=%d) AND (alarmDate BETWEEN '%s' AND '%s') LIMIT %d OFFSET %d;",
+        sprintf(select_sql, "SELECT* FROM Table_AlarmManage WHERE (product_id=%d) AND (alarmType=%d) AND (alarmDate BETWEEN '%s' AND '%s')  LIMIT %d OFFSET %d ;",
                 product_id,
                 alarm_type,
                 start_time,
                 end_time,
                 page_size,
-                page_num > 0 ? (page_num)*page_size : 0);
+                page_num > 0 ? (page_num-1)*page_size : 0);
     }
-
     log_d(select_sql);
     res = sqlite3_get_table(db, select_sql, &pResult, &nrow, &ncolumn, &err_msg);
     if(res != SQLITE_OK) {