Просмотр исходного кода

1、增加干接点类型传感器的历史记录图表呈现。

liyuezong 1 год назад
Родитель
Сommit
50a98d8b51
5 измененных файлов с 216 добавлено и 157 удалено
  1. 11 24
      pro/src/appweb_handle.c
  2. 183 132
      pro/src/json_handle.c
  3. 9 0
      pro/src/json_handle.h
  4. 12 1
      pro/src/language_common.c
  5. 1 0
      pro/src/language_common.h

+ 11 - 24
pro/src/appweb_handle.c

@@ -2914,17 +2914,20 @@ static void sensorStatusMonitoring(void* conn)
                     break;
                     case SENSOR_TYPE_SMOKE: // 烟雾传感器 1个值
                     {
-                        _overSensorBackInfoTemp->alarmStatus =! (bool)_globalSensorInfoTemp->val1; // 1/0 报警未报警
+                        _overSensorBackInfoTemp->Fire_sensor.ydata[_TempCount] = !(bool)_globalSensorInfoTemp->val1; // 1/0 报警未报警
+                        strcpy(_overSensorBackInfoTemp->Fire_sensor.xAxis[_TempCount], _globalSensorInfoTemp->samp_time);
                     }
                     break;
                     case SENSOR_TYPE_WATER: // 水浸传感器
                     {
-                        _overSensorBackInfoTemp->waterImmersionState =! (bool)_globalSensorInfoTemp->val1; // 1/0 报警未报警
+                        _overSensorBackInfoTemp->waterImmersion_sensor.ydata[_TempCount] = !(bool)_globalSensorInfoTemp->val1; // 1/0 报警未报警
+                        strcpy(_overSensorBackInfoTemp->waterImmersion_sensor.xAxis[_TempCount], _globalSensorInfoTemp->samp_time);
                     }
                     break;
                     case SENSOR_TYPE_ACCESS: // 门禁传感器 没有值
                     {
-                        _overSensorBackInfoTemp->accessControlStatus =! (bool)_globalSensorInfoTemp->val1; // 1/0 报警未报警
+                        _overSensorBackInfoTemp->accessControl_sensor.ydata[_TempCount] = !(bool)_globalSensorInfoTemp->val1; // 1/0 报警未报警
+                        strcpy(_overSensorBackInfoTemp->accessControl_sensor.xAxis[_TempCount], _globalSensorInfoTemp->samp_time);
                     }
                     break;
                     case SENSOR_TYPE_GAS: // 气体传感器 1个值
@@ -2961,7 +2964,8 @@ static void sensorStatusMonitoring(void* conn)
 
                     case SENSOR_TYPE_LEAK:
                     {
-                        _overSensorBackInfoTemp->leakStatus = !(bool)_globalSensorInfoTemp->val1;
+                        _overSensorBackInfoTemp->leak_sensor.ydata[_TempCount] = !(bool)_globalSensorInfoTemp->val1; // 1/0 报警未报警
+                        strcpy(_overSensorBackInfoTemp->leak_sensor.xAxis[_TempCount], _globalSensorInfoTemp->samp_time);
                     }
                     break;
                 }
@@ -2980,27 +2984,10 @@ static void sensorStatusMonitoring(void* conn)
         }
         lock_s_release(LOCK_ID_SENSOR);
 
-        
-        if(strcmp(_over_all_sensor_request.sensorType,"0")==0 ||
-           strcmp(_over_all_sensor_request.sensorType,"4")==0 ||
-           strcmp(_over_all_sensor_request.sensorType,"5")==0 ||
-           strcmp(_over_all_sensor_request.sensorType,"8")==0 ||
-        strcmp(_over_all_sensor_request.sensorType,"9")==0)
-        {
-            ack_str = over_sensor_history_info_to_json(&_over_all_sensor_back_info, SENSOR_TYPE_VALUE);
-        }
-        else if(strcmp(_over_all_sensor_request.sensorType,"1")==0 ||
-                strcmp(_over_all_sensor_request.sensorType,"2")==0 ||
-                strcmp(_over_all_sensor_request.sensorType,"3")==0 ||
-                strcmp(_over_all_sensor_request.sensorType,"6")==0 ||
-            strcmp(_over_all_sensor_request.sensorType,"7")==0)
-        {
-            ack_str = over_sensor_history_info_to_json(&_over_all_sensor_back_info, SENSOR_TYPE_LIST);
-        }
-        else ack_str = ctrl_sts_ack_to_json();
+        ack_str = over_sensor_history_info_to_json(&_over_all_sensor_back_info, SENSOR_TYPE_VALUE);
 
-                // //参数转换json
-       //  ack_str = over_all_sensor_info_to_json(&_over_all_sensor_back_info);
+        // //参数转换json
+        //  ack_str = over_all_sensor_info_to_json(&_over_all_sensor_back_info);
         // 释放资源
         _OverSensorBackInfo *node;
         _OverSensorBackInfo *next;

+ 183 - 132
pro/src/json_handle.c

@@ -3559,152 +3559,203 @@ char* over_sensor_history_info_to_json(_OverSensorBackInfo* _over_all_sensor_bac
     _OverSensorBackInfo* _temp;
     char temp[32] = {0};
     // 创建 JSON 对象
-    cJSON* root = cJSON_CreateObject();   
-    if(sensor_type == SENSOR_TYPE_VALUE)
+    cJSON* root = cJSON_CreateObject();
+
+    cJSON_AddStringToObject(root, "msg", language_Operation_Success[__globalDeviceManage._globalDevInfo.product.language]);
+    cJSON_AddNumberToObject(root, "code", 200);
+    cJSON *data_root_array = cJSON_CreateArray();
+    list_for_each_entry(_temp, &_over_all_sensor_back_info->list, list)
     {
-        cJSON_AddStringToObject(root, "msg", language_Operation_Success[__globalDeviceManage._globalDevInfo.product.language]);
-        cJSON_AddNumberToObject(root, "code", 200);
-        cJSON* data_root_array = cJSON_CreateArray();
-        list_for_each_entry(_temp, &_over_all_sensor_back_info->list, list)
+        cJSON *data = cJSON_CreateObject();
+
+        if (_temp->sensorType == SENSOR_TYPE_TEMP_HUMI ||
+            _temp->sensorType == SENSOR_TYPE_TEMP_DOUBLE)
         {
-            cJSON* data = cJSON_CreateObject();
-            cJSON* date_time_xAxis_array = cJSON_CreateArray();
-            if(_temp->sensorType == SENSOR_TYPE_TEMP_HUMI||
-               _temp->sensorType == SENSOR_TYPE_TEMP_DOUBLE)
+            cJSON *date_time_xAxis_array = cJSON_CreateArray();
+            for (int i = 0; i < TOTAL_COUNT; i++)
             {
-                for(int i=0;i< TOTAL_COUNT;i++)
-                {  
-                    cJSON_AddStringToObject(date_time_xAxis_array,"",_temp->temp_humi_sensor.xAxis[i]);
-                }
-                cJSON_AddItemToObject(data,"xAxis",date_time_xAxis_array);
-                cJSON_AddStringToObject(data,"sensorName",_temp->sensorName);
-                cJSON_AddNumberToObject(data,"sensorType",_temp->sensorType);
-                cJSON* type_data_array = cJSON_CreateArray();
-                cJSON* type_data_temp = cJSON_CreateObject();
-                cJSON_AddStringToObject(type_data_temp,"typeName",language_temperature[__globalDeviceManage._globalDevInfo.product.language]);
-                cJSON* ydate_temp_array = cJSON_CreateFloatArray(_temp->temp_humi_sensor.ydata[0],TOTAL_COUNT);
-                cJSON_AddItemToObject(type_data_temp,"ydata",ydate_temp_array);
-                cJSON_AddStringToObject(type_data_temp,"type","0");
-                cJSON_AddItemToArray(type_data_array,type_data_temp);
-                cJSON* type_data_humi = cJSON_CreateObject();
-                if (_temp->sensorType == SENSOR_TYPE_TEMP_DOUBLE)
-                {
-                    cJSON_AddStringToObject(type_data_humi, "typeName", language_temperature[__globalDeviceManage._globalDevInfo.product.language]);
-                }
-                else
-                {
-                    cJSON_AddStringToObject(type_data_humi, "typeName", language_humidity[__globalDeviceManage._globalDevInfo.product.language]);
-                }
-                cJSON* ydate_humi_array = cJSON_CreateFloatArray(_temp->temp_humi_sensor.ydata[1],TOTAL_COUNT);
-                cJSON_AddItemToObject(type_data_humi,"ydata",ydate_humi_array);
-                cJSON_AddStringToObject(type_data_humi,"type","1");
-                cJSON_AddItemToArray(type_data_array,type_data_humi);
-                //cJSON_AddArrayToObject(data,type_data_array);
-                 cJSON_AddItemToObject(data,"typeData",type_data_array);
+                cJSON_AddStringToObject(date_time_xAxis_array, "", _temp->temp_humi_sensor.xAxis[i]);
             }
-            else if(_temp->sensorType == SENSOR_TYPE_GAS)
+            cJSON_AddItemToObject(data, "xAxis", date_time_xAxis_array);
+            cJSON_AddStringToObject(data, "sensorName", _temp->sensorName);
+            cJSON_AddNumberToObject(data, "sensorType", _temp->sensorType);
+            cJSON *type_data_array = cJSON_CreateArray();
+            cJSON *type_data_temp = cJSON_CreateObject();
+            cJSON_AddStringToObject(type_data_temp, "typeName", language_temperature[__globalDeviceManage._globalDevInfo.product.language]);
+            cJSON *ydate_temp_array = cJSON_CreateFloatArray(_temp->temp_humi_sensor.ydata[0], TOTAL_COUNT);
+            cJSON_AddItemToObject(type_data_temp, "ydata", ydate_temp_array);
+            cJSON_AddStringToObject(type_data_temp, "type", "0");
+            cJSON_AddItemToArray(type_data_array, type_data_temp);
+            cJSON *type_data_humi = cJSON_CreateObject();
+            if (_temp->sensorType == SENSOR_TYPE_TEMP_DOUBLE)
             {
-                for(int i=0;i< TOTAL_COUNT;i++)
-                {  
-                    cJSON_AddStringToObject(date_time_xAxis_array,"",_temp->gas_sensor.xAxis[i]);
-                }
-                cJSON_AddItemToObject(data,"xAxis",date_time_xAxis_array);
-                cJSON_AddStringToObject(data,"sensorName",_temp->sensorName);
-                cJSON_AddNumberToObject(data,"sensorType",_temp->sensorType);
-                cJSON* type_data_array = cJSON_CreateArray();
-                cJSON* type_data_gas = cJSON_CreateObject();
-                cJSON_AddStringToObject(type_data_gas,"typeName",language_atmosphere_gas[__globalDeviceManage._globalDevInfo.product.language]);
-                cJSON* ydate_gas_array = cJSON_CreateFloatArray(_temp->gas_sensor.ydata,TOTAL_COUNT);
-                cJSON_AddItemToObject(type_data_gas,"ydata",ydate_gas_array);
-                cJSON_AddStringToObject(type_data_gas,"type","0");
-                cJSON_AddItemToArray(type_data_array,type_data_gas);
-                //cJSON_AddArrayToObject(data,type_data_array);
-                 cJSON_AddItemToObject(data,"typeData",type_data_array);
+                cJSON_AddStringToObject(type_data_humi, "typeName", language_temperature[__globalDeviceManage._globalDevInfo.product.language]);
             }
-            else if(_temp->sensorType == SENSOR_TYPE_TEMP)
+            else
             {
-                for(int i=0;i< TOTAL_COUNT;i++)
-                {  
-                    cJSON_AddStringToObject(date_time_xAxis_array,"",_temp->temp_sensor.xAxis[i]);
-                }
-                cJSON_AddItemToObject(data,"xAxis",date_time_xAxis_array);
-                cJSON_AddStringToObject(data,"sensorName",_temp->sensorName);
-                cJSON_AddNumberToObject(data,"sensorType",_temp->sensorType);
-                cJSON* type_data_array = cJSON_CreateArray();
-                cJSON* type_data = cJSON_CreateObject();
-                cJSON_AddStringToObject(type_data,"typeName",language_temperature[__globalDeviceManage._globalDevInfo.product.language]);
-                cJSON* ydate_array = cJSON_CreateFloatArray(_temp->temp_sensor.ydata,TOTAL_COUNT);
-                cJSON_AddItemToObject(type_data,"ydata",ydate_array);
-                cJSON_AddStringToObject(type_data,"type","0");
-                cJSON_AddItemToArray(type_data_array,type_data);
-                //cJSON_AddArrayToObject(data,type_data_array);
-                 cJSON_AddItemToObject(data,"typeData",type_data_array);
+                cJSON_AddStringToObject(type_data_humi, "typeName", language_humidity[__globalDeviceManage._globalDevInfo.product.language]);
             }
-            else if(_temp->sensorType == SENSOR_TYPE_AIR_PRESS)
+            cJSON *ydate_humi_array = cJSON_CreateFloatArray(_temp->temp_humi_sensor.ydata[1], TOTAL_COUNT);
+            cJSON_AddItemToObject(type_data_humi, "ydata", ydate_humi_array);
+            cJSON_AddStringToObject(type_data_humi, "type", "1");
+            cJSON_AddItemToArray(type_data_array, type_data_humi);
+            // cJSON_AddArrayToObject(data,type_data_array);
+            cJSON_AddItemToObject(data, "typeData", type_data_array);
+        }
+        else if (_temp->sensorType == SENSOR_TYPE_GAS)
+        {
+            cJSON *date_time_xAxis_array = cJSON_CreateArray();
+            for (int i = 0; i < TOTAL_COUNT; i++)
             {
-                for(int i=0;i< TOTAL_COUNT;i++)
-                {  
-                    cJSON_AddStringToObject(date_time_xAxis_array,"",_temp->air_press_sensor.xAxis[i]);
-                }
-                cJSON_AddItemToObject(data,"xAxis",date_time_xAxis_array);
-                cJSON_AddStringToObject(data,"sensorName",_temp->sensorName);
-                cJSON_AddNumberToObject(data,"sensorType",_temp->sensorType);
-                cJSON* type_data_array = cJSON_CreateArray();
-                cJSON* type_data_air = cJSON_CreateObject();
-                cJSON_AddStringToObject(type_data_air,"typeName",language_atmosphere_airflow[__globalDeviceManage._globalDevInfo.product.language]);
-                cJSON* ydate_air_array = cJSON_CreateFloatArray(_temp->air_press_sensor.ydata[0],TOTAL_COUNT);
-                cJSON_AddItemToObject(type_data_air,"ydata",ydate_air_array);
-                cJSON_AddStringToObject(type_data_air,"type","0");
-                cJSON_AddItemToArray(type_data_array,type_data_air);
-                cJSON* type_data_press = cJSON_CreateObject();
-                cJSON_AddStringToObject(type_data_press,"typeName",language_atmosphere_pressure[__globalDeviceManage._globalDevInfo.product.language]);
-                cJSON* ydate_press_array = cJSON_CreateFloatArray(_temp->air_press_sensor.ydata[1],TOTAL_COUNT);
-                cJSON_AddItemToObject(type_data_press,"ydata",ydate_press_array);
-                cJSON_AddStringToObject(type_data_press,"type","1");
-                cJSON_AddItemToArray(type_data_array,type_data_press);
-                //cJSON_AddArrayToObject(data,type_data_array);
-                cJSON_AddItemToObject(data,"typeData",type_data_array);
+                cJSON_AddStringToObject(date_time_xAxis_array, "", _temp->gas_sensor.xAxis[i]);
             }
-            sprintf(temp, "%d", _temp->sensorId);
-            cJSON_AddStringToObject(data,"sensorId",(const char*)temp);
-            //cJSON_AddArrayToObject(data_root_array,data);
-            cJSON_AddItemToArray(data_root_array,data);
+            cJSON_AddItemToObject(data, "xAxis", date_time_xAxis_array);
+            cJSON_AddStringToObject(data, "sensorName", _temp->sensorName);
+            cJSON_AddNumberToObject(data, "sensorType", _temp->sensorType);
+            cJSON *type_data_array = cJSON_CreateArray();
+            cJSON *type_data_gas = cJSON_CreateObject();
+            cJSON_AddStringToObject(type_data_gas, "typeName", language_atmosphere_gas[__globalDeviceManage._globalDevInfo.product.language]);
+            cJSON *ydate_gas_array = cJSON_CreateFloatArray(_temp->gas_sensor.ydata, TOTAL_COUNT);
+            cJSON_AddItemToObject(type_data_gas, "ydata", ydate_gas_array);
+            cJSON_AddStringToObject(type_data_gas, "type", "0");
+            cJSON_AddItemToArray(type_data_array, type_data_gas);
+            // cJSON_AddArrayToObject(data,type_data_array);
+            cJSON_AddItemToObject(data, "typeData", type_data_array);
         }
-            //添加汇总
-        cJSON_AddItemToObject(root, "data", data_root_array);
-    }
-    else if(sensor_type == SENSOR_TYPE_LIST)
-    {
-        // 添加基本键值对
-        cJSON_AddNumberToObject(root, "code", 200); 
-        cJSON_AddNumberToObject(root, "total", 3); 
-        //创建数据
-        cJSON* data_root_array = cJSON_CreateArray();
-        //循环添加数据
-        list_for_each_entry(_temp, &_over_all_sensor_back_info->list, list)
+        else if (_temp->sensorType == SENSOR_TYPE_TEMP)
         {
-            log_d("sensor_name:%s", _temp->sensorName);
-            cJSON* data_filed = cJSON_CreateObject();
-            cJSON_AddNumberToObject(data_filed, "accessControlStatus",_temp->accessControlStatus);
-            cJSON_AddNumberToObject(data_filed,"sensorAddr",_temp->sensorAddr);
-            cJSON_AddStringToObject(data_filed,"productName",__globalDeviceManage._globalDevInfo.product.name);
-            cJSON_AddStringToObject(data_filed,"productNumber",__globalDeviceManage._globalDevInfo.product.number);
-            cJSON_AddNumberToObject(data_filed, "alarmStatus",_temp->alarmStatus);
-            cJSON_AddNumberToObject(data_filed,"sensorBaud",_temp->sensorBaud);
-            cJSON_AddStringToObject(data_filed,"comSlogan",_temp->comSlogan);
-            cJSON_AddNumberToObject(data_filed, "connectionStatus",_temp->connectionStatus);        
-            cJSON_AddStringToObject(data_filed,"sensorName",_temp->sensorName);
-            sprintf(temp, "%d", _temp->sensorId);
-            cJSON_AddStringToObject(data_filed,"sensorId",temp);
-            cJSON_AddNumberToObject(data_filed,"sensorType",_temp->sensorType);
-            cJSON_AddNumberToObject(data_filed, "waterImmersionState",_temp->waterImmersionState);
-            cJSON_AddItemToObject(data_root_array, "data", data_filed);
+            cJSON *date_time_xAxis_array = cJSON_CreateArray();
+            for (int i = 0; i < TOTAL_COUNT; i++)
+            {
+                cJSON_AddStringToObject(date_time_xAxis_array, "", _temp->temp_sensor.xAxis[i]);
+            }
+            cJSON_AddItemToObject(data, "xAxis", date_time_xAxis_array);
+            cJSON_AddStringToObject(data, "sensorName", _temp->sensorName);
+            cJSON_AddNumberToObject(data, "sensorType", _temp->sensorType);
+            cJSON *type_data_array = cJSON_CreateArray();
+            cJSON *type_data = cJSON_CreateObject();
+            cJSON_AddStringToObject(type_data, "typeName", language_temperature[__globalDeviceManage._globalDevInfo.product.language]);
+            cJSON *ydate_array = cJSON_CreateFloatArray(_temp->temp_sensor.ydata, TOTAL_COUNT);
+            cJSON_AddItemToObject(type_data, "ydata", ydate_array);
+            cJSON_AddStringToObject(type_data, "type", "0");
+            cJSON_AddItemToArray(type_data_array, type_data);
+            // cJSON_AddArrayToObject(data,type_data_array);
+            cJSON_AddItemToObject(data, "typeData", type_data_array);
         }
-        //添加汇总
-        cJSON_AddItemToObject(root, "data", data_root_array);
-        //添加结果
-        cJSON_AddStringToObject(root, "msg", language_Operation_Success[__globalDeviceManage._globalDevInfo.product.language]);
+        else if (_temp->sensorType == SENSOR_TYPE_AIR_PRESS)
+        {
+            cJSON *date_time_xAxis_array = cJSON_CreateArray();
+            for (int i = 0; i < TOTAL_COUNT; i++)
+            {
+                cJSON_AddStringToObject(date_time_xAxis_array, "", _temp->air_press_sensor.xAxis[i]);
+            }
+            cJSON_AddItemToObject(data, "xAxis", date_time_xAxis_array);
+            cJSON_AddStringToObject(data, "sensorName", _temp->sensorName);
+            cJSON_AddNumberToObject(data, "sensorType", _temp->sensorType);
+            cJSON *type_data_array = cJSON_CreateArray();
+            cJSON *type_data_air = cJSON_CreateObject();
+            cJSON_AddStringToObject(type_data_air, "typeName", language_atmosphere_airflow[__globalDeviceManage._globalDevInfo.product.language]);
+            cJSON *ydate_air_array = cJSON_CreateFloatArray(_temp->air_press_sensor.ydata[0], TOTAL_COUNT);
+            cJSON_AddItemToObject(type_data_air, "ydata", ydate_air_array);
+            cJSON_AddStringToObject(type_data_air, "type", "0");
+            cJSON_AddItemToArray(type_data_array, type_data_air);
+            cJSON *type_data_press = cJSON_CreateObject();
+            cJSON_AddStringToObject(type_data_press, "typeName", language_atmosphere_pressure[__globalDeviceManage._globalDevInfo.product.language]);
+            cJSON *ydate_press_array = cJSON_CreateFloatArray(_temp->air_press_sensor.ydata[1], TOTAL_COUNT);
+            cJSON_AddItemToObject(type_data_press, "ydata", ydate_press_array);
+            cJSON_AddStringToObject(type_data_press, "type", "1");
+            cJSON_AddItemToArray(type_data_array, type_data_press);
+            // cJSON_AddArrayToObject(data,type_data_array);
+            cJSON_AddItemToObject(data, "typeData", type_data_array);
+        }
+        else if (_temp->sensorType == SENSOR_TYPE_SMOKE)
+        {
+            cJSON *date_time_xAxis_array = cJSON_CreateArray();
+            for (int i = 0; i < TOTAL_COUNT; i++)
+            {
+                cJSON_AddStringToObject(date_time_xAxis_array, "", _temp->Fire_sensor.xAxis[i]);
+            }
+            cJSON_AddItemToObject(data, "xAxis", date_time_xAxis_array);
+            cJSON_AddStringToObject(data, "sensorName", _temp->sensorName);
+            cJSON_AddNumberToObject(data, "sensorType", _temp->sensorType);
+            cJSON *type_data_array = cJSON_CreateArray();
+            cJSON *type_data_fire = cJSON_CreateObject();
+            cJSON_AddStringToObject(type_data_fire, "typeName", language_sensor_smoke[__globalDeviceManage._globalDevInfo.product.language]);
+            cJSON *ydate_fire_array = cJSON_CreateFloatArray(_temp->Fire_sensor.ydata, TOTAL_COUNT);
+            cJSON_AddItemToObject(type_data_fire, "ydata", ydate_fire_array);
+            cJSON_AddStringToObject(type_data_fire, "type", "0");
+            cJSON_AddItemToArray(type_data_array, type_data_fire);
+            // cJSON_AddArrayToObject(data,type_data_array);
+            cJSON_AddItemToObject(data, "typeData", type_data_array);
+        }
+        else if (_temp->sensorType == SENSOR_TYPE_WATER)
+        {
+            cJSON *date_time_xAxis_array = cJSON_CreateArray();
+            for (int i = 0; i < TOTAL_COUNT; i++)
+            {
+                cJSON_AddStringToObject(date_time_xAxis_array, "", _temp->waterImmersion_sensor.xAxis[i]);
+            }
+            cJSON_AddItemToObject(data, "xAxis", date_time_xAxis_array);
+            cJSON_AddStringToObject(data, "sensorName", _temp->sensorName);
+            cJSON_AddNumberToObject(data, "sensorType", _temp->sensorType);
+            cJSON *type_data_array = cJSON_CreateArray();
+            cJSON *type_data_water = cJSON_CreateObject();
+            cJSON_AddStringToObject(type_data_water, "typeName", language_sensor_Water[__globalDeviceManage._globalDevInfo.product.language]);
+            cJSON *ydate_water_array = cJSON_CreateFloatArray(_temp->waterImmersion_sensor.ydata,TOTAL_COUNT);
+            cJSON_AddItemToObject(type_data_water, "ydata", ydate_water_array);
+            cJSON_AddStringToObject(type_data_water, "type", "0");
+            cJSON_AddItemToArray(type_data_array, type_data_water);
+            // cJSON_AddArrayToObject(data,type_data_array);
+            cJSON_AddItemToObject(data, "typeData", type_data_array);
+        }
+        else if (_temp->sensorType == SENSOR_TYPE_ACCESS)
+        {
+            cJSON *date_time_xAxis_array = cJSON_CreateArray();
+            for (int i = 0; i < TOTAL_COUNT; i++)
+            {
+                cJSON_AddStringToObject(date_time_xAxis_array, "", _temp->accessControl_sensor.xAxis[i]);
+            }
+            cJSON_AddItemToObject(data, "xAxis", date_time_xAxis_array);
+            cJSON_AddStringToObject(data, "sensorName", _temp->sensorName);
+            cJSON_AddNumberToObject(data, "sensorType", _temp->sensorType);
+            cJSON *type_data_array = cJSON_CreateArray();
+            cJSON *type_data_access = cJSON_CreateObject();
+            cJSON_AddStringToObject(type_data_access, "typeName", language_sensor_access[__globalDeviceManage._globalDevInfo.product.language]);
+            cJSON *ydate_access_array = cJSON_CreateFloatArray(_temp->accessControl_sensor.ydata, TOTAL_COUNT);
+            cJSON_AddItemToObject(type_data_access, "ydata", ydate_access_array);
+            cJSON_AddStringToObject(type_data_access, "type", "0");
+            cJSON_AddItemToArray(type_data_array, type_data_access);
+            // cJSON_AddArrayToObject(data,type_data_array);
+            cJSON_AddItemToObject(data, "typeData", type_data_array);
+        }
+        else if (_temp->sensorType == SENSOR_TYPE_LEAK)
+        {
+            cJSON *date_time_xAxis_array = cJSON_CreateArray();
+            for (int i = 0; i < TOTAL_COUNT; i++)
+            {
+                cJSON_AddStringToObject(date_time_xAxis_array, "", _temp->leak_sensor.xAxis[i]);
+            }
+            cJSON_AddItemToObject(data, "xAxis", date_time_xAxis_array);
+            cJSON_AddStringToObject(data, "sensorName", _temp->sensorName);
+            cJSON_AddNumberToObject(data, "sensorType", _temp->sensorType);
+            cJSON *type_data_array = cJSON_CreateArray();
+            cJSON *type_data_leak = cJSON_CreateObject();
+            cJSON_AddStringToObject(type_data_leak, "typeName", language_sensor_leak[__globalDeviceManage._globalDevInfo.product.language]);
+            cJSON *ydate_leak_array = cJSON_CreateFloatArray(_temp->leak_sensor.ydata, TOTAL_COUNT);
+            cJSON_AddItemToObject(type_data_leak, "ydata", ydate_leak_array);
+            cJSON_AddStringToObject(type_data_leak, "type", "0");
+            cJSON_AddItemToArray(type_data_array, type_data_leak);
+            // cJSON_AddArrayToObject(data,type_data_array);
+            cJSON_AddItemToObject(data, "typeData", type_data_array);
+        }
+        sprintf(temp, "%d", _temp->sensorId);
+        cJSON_AddStringToObject(data, "sensorId", (const char *)temp);
+        // cJSON_AddArrayToObject(data_root_array,data);
+        cJSON_AddItemToArray(data_root_array, data);
     }
+    // 添加汇总
+    cJSON_AddItemToObject(root, "data", data_root_array);
+
     //转换
     str = cJSON_Print(root);    
     //释放资源

+ 9 - 0
pro/src/json_handle.h

@@ -235,6 +235,11 @@ typedef struct
     char   xAxis[60][32]    ;//时间点
 }_Sensor_Air_Press_Icon;
 typedef struct
+{
+    float  ydata[60]        ;//干节点值
+    char   xAxis[60][32]    ;//时间点
+}_Sensor_GJD_Icon;
+typedef struct
 {
     char* user_token;
     char* type;
@@ -284,6 +289,10 @@ typedef struct
     _Sensor_Gas_Icon        gas_sensor;
     _Sensor_Air_Press_Icon  air_press_sensor;
     _Sensor_Temp_Icon       temp_sensor;
+    _Sensor_GJD_Icon Fire_sensor;
+    _Sensor_GJD_Icon waterImmersion_sensor;
+    _Sensor_GJD_Icon accessControl_sensor;
+    _Sensor_GJD_Icon leak_sensor;
     struct list_head list;
 }_OverSensorBackInfo;
 

+ 12 - 1
pro/src/language_common.c

@@ -1069,7 +1069,18 @@ const char* language_sensor_access[LANG_MAX] =
     "Controllo accessi",
     "ドアアクセス",
 } ;
-
+const char* language_sensor_Water[LANG_MAX] = 
+{
+    "水浸",
+    "Flooding",
+    "Затопление",
+    "Inondation",
+    "Überschwemmung",
+    "Inundación",
+    "Inundação",
+    "Alluvione",
+    "浸水",
+} ;
 const char* language_sensor_name[LANG_MAX][20] = 
 {
     {

+ 1 - 0
pro/src/language_common.h

@@ -91,6 +91,7 @@ extern const char* language_Role_User[LANG_MAX];
 extern const char* language_exceed[LANG_MAX];
 extern const char* language_sensor_smoke[LANG_MAX];
 extern const char* language_sensor_access[LANG_MAX];
+extern const char* language_sensor_Water[LANG_MAX];
 extern const char* language_sensor_name[LANG_MAX][20];
 extern const char* language_Operation_Success[LANG_MAX] ;
 extern const char* language_Operation_Failure[LANG_MAX] ;