Преглед на файлове

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

guohui преди 2 години
родител
ревизия
ea5612725e
променени са 2 файла, в които са добавени 179 реда и са изтрити 72 реда
  1. 39 3
      pro/src/appweb_handle.c
  2. 140 69
      pro/src/json_handle.c

+ 39 - 3
pro/src/appweb_handle.c

@@ -1808,6 +1808,9 @@ static void channelStatusMonitoring(void* conn)
             pCHlist = strtok_r(NULL, ",", &pCHListSave);
             usleep(30000);//延时50ms,等待控制板串口写完
         }
+        char log_buff[256];
+        sprintf(log_buff, "Reset power consumption!");
+        dev_insert_alarm_ctrl(__globalDeviceManage.db, __globalDeviceManage._globalDevInfo.product_id, ALARM_TYPE_OPRATION, log_buff);
     }
 quit:
     cJSON_Delete(cjson);
@@ -1914,6 +1917,11 @@ static void sensorStatusMonitoring(void* conn)
                 {
 
                 }break; 
+                case 7://双头温度传感器 2个值
+                {
+                    _overSensorBackInfoTemp->temperatureValue = _globalSensorManagerTemp->Cur_sensor_info.val1;
+                    _overSensorBackInfoTemp->temperatureValue2 =_globalSensorManagerTemp->Cur_sensor_info.val2;
+                }break; 
             }
             //入队
             list_add_tail(&_overSensorBackInfoTemp->list,&_over_all_sensor_back_info.list);
@@ -2075,6 +2083,9 @@ static void sensorStatusMonitoring(void* conn)
             case 6:
                 _globalSensorMangerTemp->sensor_val_count = 0;
                 break; // 空调遥控器 没有值
+            case 7:
+                _globalSensorMangerTemp->sensor_val_count = 2;
+                break; // 双头温度传感器 2个值
             }
 
             // 插入数据库
@@ -2190,6 +2201,8 @@ static void sensorStatusMonitoring(void* conn)
             case 4:_globalSensorMangerTemp->sensor_val_count = 1 ;break; //气体传感器 1个值
             case 5:_globalSensorMangerTemp->sensor_val_count = 2 ;break; //气压气流传感器 2个值
             case 6:_globalSensorMangerTemp->sensor_val_count = 0 ;break; //空调遥控器 没有值
+            case 7:_globalSensorMangerTemp->sensor_val_count = 2 ;break; //双头温度传感器 2个值
+            default:break;
         }
         //插入数据库
         if(dev_insert_sensor_genera_manage(__globalDeviceManage.db,_globalSensorMangerTemp)!=0)
@@ -2329,7 +2342,7 @@ static void sensorStatusMonitoring(void* conn)
                 case SENSOR_TYPE_TEMPERATURE: // 温湿度传感器 2个值
                 {
                     _overSensorBackInfoTemp->temp_humi_sensor.ydata[0][_TempCount] = _globalSensorInfoTemp->val1;
-                    _overSensorBackInfoTemp->temp_humi_sensor.ydata[1][_TempCount]  = _globalSensorInfoTemp->val2;
+                    _overSensorBackInfoTemp->temp_humi_sensor.ydata[1][_TempCount] = _globalSensorInfoTemp->val2;
                     strcpy(_overSensorBackInfoTemp->temp_humi_sensor.xAxis[_TempCount], _globalSensorInfoTemp->samp_time);
                 }
                 break;
@@ -2350,14 +2363,14 @@ static void sensorStatusMonitoring(void* conn)
                 break;
                 case SENSOR_TYPE_GAS: // 气体传感器 1个值
                 {
-                    _overSensorBackInfoTemp->gas_sensor.ydata[_TempCount] = _globalSensorInfoTemp->val1;// 气体浓度
+                    _overSensorBackInfoTemp->gas_sensor.ydata[_TempCount] = _globalSensorInfoTemp->val1; // 气体浓度
                     strcpy(_overSensorBackInfoTemp->gas_sensor.xAxis[_TempCount], _globalSensorInfoTemp->samp_time);
                 }
                 break;
                 case SENSOR_TYPE_AIR_PRESS:
                 {
                     _overSensorBackInfoTemp->air_press_sensor.ydata[0][_TempCount] = _globalSensorInfoTemp->val1;
-                    _overSensorBackInfoTemp->air_press_sensor.ydata[1][_TempCount]  = _globalSensorInfoTemp->val2;
+                    _overSensorBackInfoTemp->air_press_sensor.ydata[1][_TempCount] = _globalSensorInfoTemp->val2;
                     strcpy(_overSensorBackInfoTemp->air_press_sensor.xAxis[_TempCount], _globalSensorInfoTemp->samp_time);
                 }
                 break;
@@ -2365,6 +2378,13 @@ static void sensorStatusMonitoring(void* conn)
                 {
                 }
                 break;
+                case SENSOR_TYPE_DoubleT: // 温湿度传感器 2个值
+                {
+                    _overSensorBackInfoTemp->temp_humi_sensor.ydata[0][_TempCount] = _globalSensorInfoTemp->val1;
+                    _overSensorBackInfoTemp->temp_humi_sensor.ydata[1][_TempCount] = _globalSensorInfoTemp->val2;
+                    strcpy(_overSensorBackInfoTemp->temp_humi_sensor.xAxis[_TempCount], _globalSensorInfoTemp->samp_time);
+                }
+                break;
                 }
                 _TempCount++;
             }
@@ -2410,6 +2430,10 @@ static void sensorStatusMonitoring(void* conn)
         {
             ack_str = over_sensor_history_info_to_json(&_over_all_sensor_back_info, SENSOR_TYPE_LIST);
         }
+       else if(strcmp(_over_all_sensor_request.sensorType,"7")==0)
+        {
+            ack_str = over_sensor_history_info_to_json(&_over_all_sensor_back_info, SENSOR_TYPE_VALUE);
+        }
         else ack_str = ctrl_sts_ack_to_json();
 
                 // //参数转换json
@@ -2775,6 +2799,9 @@ static void alarmProtect(void *conn)
         // int g_pwr_ch_id = atoi(_alarm_request_info._pwr_info.productChId);
         int g_pwr_ch_id = _alarm_request_info._pwr_info.productChId;
         ack_str=setThresholdToCh(&_alarm_request_info,g_pwr_ch_id);
+        char log_buff[256];
+        sprintf(log_buff, "Update power threshold CH%d!",g_pwr_ch_id);
+        dev_insert_alarm_ctrl(__globalDeviceManage.db, __globalDeviceManage._globalDevInfo.product_id, ALARM_TYPE_OPRATION, log_buff);
         /*
         if (g_pwr_ch_id ==0)
         {
@@ -2943,6 +2970,9 @@ static void alarmProtect(void *conn)
             pCHlist = strtok_r(NULL, ",", &pCHListSave);
             usleep(30000);//延时30ms,等待控制板串口写完
         }
+        char log_buff[256];
+        sprintf(log_buff, "Batch setting power threshold!");
+        dev_insert_alarm_ctrl(__globalDeviceManage.db, __globalDeviceManage._globalDevInfo.product_id, ALARM_TYPE_OPRATION, log_buff);
     }
     else if(strcmp(_alarm_request_info.type,"sensorThresholdList")==0)//传感器阈值查询
     {
@@ -3037,6 +3067,9 @@ static void alarmProtect(void *conn)
                                     _globalSensorMangerSaveTemp);
         if(ret!=0)
             log_e("power threshold update error.");
+        char log_buff[256];
+        sprintf(log_buff, "Update sensor threshold ID%d!",g_sensor_id);
+        dev_insert_alarm_ctrl(__globalDeviceManage.db, __globalDeviceManage._globalDevInfo.product_id, ALARM_TYPE_OPRATION, log_buff);
         //拿到参数保存
         ack_str = ctrl_sts_ack_to_json();
     }    
@@ -4889,6 +4922,9 @@ static void equipmentMintenance(void *conn)
         lock_s_hold(LOCK_ID_POWER_UPDATE);
         ResetChmData(1);
         lock_s_release(LOCK_ID_POWER_UPDATE);
+        char log_buff[256];
+        sprintf(log_buff, "Rescan channel!");
+        dev_insert_alarm_ctrl(__globalDeviceManage.db, __globalDeviceManage._globalDevInfo.product_id, ALARM_TYPE_OPRATION, log_buff);
         //__globalDeviceManage._ReloadChm_flag=false;
     }
     else if (strcmp(_Over_equipment_mintenance.type,"cleanUp") == 0)

+ 140 - 69
pro/src/json_handle.c

@@ -3453,7 +3453,7 @@ char* alarm_sensor_threshold_to_json(GlobalSensorManger* _globalSensorManger)
             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);
+                cJSON_AddStringToObject(data_filed, "thresholdUpperAction", Closetemp);
             }
             else
                 cJSON_AddStringToObject(data_filed, "thresholdUpperAction", Alarmtemp);
@@ -3463,14 +3463,15 @@ char* alarm_sensor_threshold_to_json(GlobalSensorManger* _globalSensorManger)
             }
             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);
+                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)
@@ -3502,7 +3503,7 @@ char* alarm_sensor_threshold_to_json(GlobalSensorManger* _globalSensorManger)
             {
                 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);
+                strcpy(sensor_para, _globalSensorMangerTemp->over_manager->sensor_val1_lower_threshold_ctrl_para);
                 pCHlist = strtok_r(sensor_para, ",", &pCHListSave);
                 // 其他版本功能
                 while (pCHlist != NULL)
@@ -3530,8 +3531,9 @@ char* alarm_sensor_threshold_to_json(GlobalSensorManger* _globalSensorManger)
                 }
                 cJSON_AddStringToObject(data_filed, "thresholdDownChanelName", subTemp);
             }
-
             cJSON_AddItemToObject(data_root_array, "data", data_filed);
+
+            
             data_filed = cJSON_CreateObject();
             sprintf(temp, "%d", _globalSensorMangerTemp->sensor_status);
             cJSON_AddStringToObject(data_filed, "connectionStatus", temp);
@@ -3539,78 +3541,147 @@ char* alarm_sensor_threshold_to_json(GlobalSensorManger* _globalSensorManger)
             sprintf(temp, "%d", _globalSensorMangerTemp->sensor_id);
             cJSON_AddStringToObject(data_filed, "sensorId", temp);
             cJSON_AddNumberToObject(data_filed, "sensorType", _globalSensorMangerTemp->sensor_type);
-            if (SENSOR_TYPE_DoubleT==_globalSensorMangerTemp->sensor_type)
+            if (SENSOR_TYPE_DoubleT == _globalSensorMangerTemp->sensor_type)
             {
-                sprintf(temp, "%s%d",language_temperature[__globalDeviceManage._globalDevInfo.product_language],2);
+                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]);
-                }
+            }
+            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)
+            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);
+
+            char *pCHlist1;
+            char *pCHListSave1;
+            char sensor_para1[512];
+            if (strlen(_globalSensorMangerTemp->over_manager->sensor_val2_upper_threshold_ctrl_para) > 0)
+            {
+                strcpy(sensor_para1, _globalSensorMangerTemp->over_manager->sensor_val2_upper_threshold_ctrl_para);
+                cJSON_AddStringToObject(data_filed, "thresholdUpperChanel", _globalSensorMangerTemp->over_manager->sensor_val2_upper_threshold_ctrl_para);
+                memset(subTemp, 0, sizeof(subTemp));
+                pCHlist1 = strtok_r(sensor_para1, ",", &pCHListSave1);
+                // 其他版本功能
+                while (pCHlist1 != NULL)
                 {
-                    cJSON_AddStringToObject(data_filed, "thresholdUpperAction", Closetemp);
+                    GlobalPowerManger *_globalPowerMangerTemp = NULL;
+                    list_for_each_entry(_globalPowerMangerTemp, &__globalDeviceManage._globalPowerManger.list, list)
+                    {
+                        if (_globalPowerMangerTemp == NULL)
+                            break;
+                        if (atoi(pCHlist1) == _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;
+                        }
+                    }
+                    pCHlist1 = strtok_r(NULL, ",", &pCHListSave1);
                 }
-                else
-                    cJSON_AddStringToObject(data_filed, "thresholdUpperAction", Alarmtemp);
-                if (_globalSensorMangerTemp->over_manager->sensor_val1_lower_threshold_ctrl == ALARM_CTRL_CLOSE_CH)
+                cJSON_AddStringToObject(data_filed, "thresholdUpperChanelName", subTemp);
+            }
+            if (strlen(_globalSensorMangerTemp->over_manager->sensor_val2_lower_threshold_ctrl_para) > 0)
+            {
+                cJSON_AddStringToObject(data_filed, "thresholdDownChanel", _globalSensorMangerTemp->over_manager->sensor_val2_lower_threshold_ctrl_para);
+                memset(subTemp, 0, sizeof(subTemp));
+                strcpy(sensor_para1, _globalSensorMangerTemp->over_manager->sensor_val2_lower_threshold_ctrl_para);
+                pCHlist1 = strtok_r(sensor_para1, ",", &pCHListSave1);
+                // 其他版本功能
+                while (pCHlist1 != NULL)
                 {
-                    cJSON_AddStringToObject(data_filed, "thresholdDownAction", Closetemp);
+                    GlobalPowerManger *_globalPowerMangerTemp = NULL;
+                    list_for_each_entry(_globalPowerMangerTemp, &__globalDeviceManage._globalPowerManger.list, list)
+                    {
+                        if (_globalPowerMangerTemp == NULL)
+                            break;
+                        if (atoi(pCHlist1) == _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;
+                        }
+                    }
+                    pCHlist1 = strtok_r(NULL, ",", &pCHListSave1);
                 }
-                else
-                    cJSON_AddStringToObject(data_filed, "thresholdDownAction", Alarmtemp);
-                cJSON_AddItemToObject(data_root_array, "data", data_filed);
-                break;
+                cJSON_AddStringToObject(data_filed, "thresholdDownChanelName", subTemp);
+            }
+
+            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);