소스 검색

解决级联从设备名字显示错误
解决级联数据异常导致崩溃

guohui 1 년 전
부모
커밋
47bd1ee2cc
3개의 변경된 파일과 29개의 추가작업 그리고 12개의 파일을 삭제
  1. 2 2
      pro/src/cascade.c
  2. 25 6
      pro/src/json_handle.c
  3. 2 4
      pro/src/mqtt.c

+ 2 - 2
pro/src/cascade.c

@@ -1418,7 +1418,7 @@ static int master_query(cascade_handle_t *cas)
         case CASCADE_CMD_QUERY_CH:
         {
             //LOGD("__00__ master query CASCADE_CMD_QUERY_CH, cnt: %d\n", cas->sInfo.cnt);
-            if(cas->sInfo.cnt==0) {
+            if(cas->sInfo.cnt==0 || cas->sInfo.cnt>CH_MAX) {
                 return -1;
             }
 
@@ -1445,7 +1445,7 @@ static int master_query(cascade_handle_t *cas)
             rdata.data = (uint8_t*)&cas->sBreaker;
             r = mb_write_read(cas, cur_dev_addr, &wdata, &rdata);
             LOGD("____ master query CASCADE_CMD_BREAKER_QUERY, cnt: %d\n", cas->sBreaker.cnt);
-            if(cas->sBreaker.cnt == 0)
+            if(cas->sBreaker.cnt==0 || cas->sBreaker.cnt>CH_MAX)
             {
                 breaker_clear(cas);
                 cmd->cmd = CASCADE_CMD_QUERY_CH;

+ 25 - 6
pro/src/json_handle.c

@@ -1725,7 +1725,7 @@ char* over_channel_power_history_to_json(GlobalPowerInfo* _globalPowerInfo,Globa
 char* over_all_pwr_monitor_Tree_AC_to_json(_OverAllPwrAckInfo* _over_all_pwr_back_info_L1,_OverAllPwrAckInfo* _over_all_pwr_back_info_L2,_OverAllPwrAckInfo* _over_all_pwr_back_info_L3)
 {
     char* str = NULL;
-    char temp[32] = {0};
+    char temp[64] = {0};
 
     // 创建 JSON 对象  
     cJSON* root = cJSON_CreateObject();   
@@ -1738,7 +1738,14 @@ char* over_all_pwr_monitor_Tree_AC_to_json(_OverAllPwrAckInfo* _over_all_pwr_bac
     //添加第一条记录
     cJSON* data_filed = cJSON_CreateObject();
 
-    cJSON_AddStringToObject(data_filed,"productName",_over_all_pwr_back_info_L1->product_name);
+    if (_over_all_pwr_back_info_L1->product_id == 0) {
+        sprintf(temp, "%s", _over_all_pwr_back_info_L1->product_name);
+    }
+    else {
+        sprintf(temp, "%s %d", _over_all_pwr_back_info_L1->product_name, _over_all_pwr_back_info_L1->product_id);
+    }
+
+    cJSON_AddStringToObject(data_filed,"productName",temp);
     cJSON_AddStringToObject(data_filed,"productNumber",_over_all_pwr_back_info_L1->product_number);
     sprintf(temp,"%d",_over_all_pwr_back_info_L1->product_id);
     cJSON_AddStringToObject(data_filed,"productId",temp);
@@ -1775,8 +1782,14 @@ char* over_all_pwr_monitor_Tree_AC_to_json(_OverAllPwrAckInfo* _over_all_pwr_bac
     cJSON_AddItemToObject(data_root_array, "data", data_filed);
     //第二条记录
     cJSON* data_filed1= cJSON_CreateObject();
-      
-    cJSON_AddStringToObject(data_filed1,"productName",_over_all_pwr_back_info_L2->product_name);
+    
+    if (_over_all_pwr_back_info_L1->product_id == 0) {
+        sprintf(temp, "%s", _over_all_pwr_back_info_L2->product_name);
+    }
+    else {
+        sprintf(temp, "%s %d", _over_all_pwr_back_info_L2->product_name, _over_all_pwr_back_info_L2->product_id);
+    }
+    cJSON_AddStringToObject(data_filed1,"productName",temp);
     cJSON_AddStringToObject(data_filed1,"productNumber",_over_all_pwr_back_info_L2->product_number);
     sprintf(temp,"%d",_over_all_pwr_back_info_L2->product_id);
     cJSON_AddStringToObject(data_filed1,"productId",temp);
@@ -1813,8 +1826,14 @@ char* over_all_pwr_monitor_Tree_AC_to_json(_OverAllPwrAckInfo* _over_all_pwr_bac
     cJSON_AddItemToObject(data_root_array, "data", data_filed1);
     //第三条记录
     cJSON* data_filed2= cJSON_CreateObject();
-      
-    cJSON_AddStringToObject(data_filed2,"productName",_over_all_pwr_back_info_L3->product_name);
+    
+    if (_over_all_pwr_back_info_L1->product_id == 0) {
+        sprintf(temp, "%s", _over_all_pwr_back_info_L2->product_name);
+    }
+    else {
+        sprintf(temp, "%s %d", _over_all_pwr_back_info_L2->product_name, _over_all_pwr_back_info_L2->product_id);
+    }
+    cJSON_AddStringToObject(data_filed2,"productName",temp);
     cJSON_AddStringToObject(data_filed2,"productNumber",_over_all_pwr_back_info_L3->product_number);
     sprintf(temp,"%d",_over_all_pwr_back_info_L3->product_id);
     cJSON_AddStringToObject(data_filed2,"productId",temp);

+ 2 - 4
pro/src/mqtt.c

@@ -588,8 +588,7 @@ int mqtt_init(void)
 
     dev_mqtt_init(h->dm->db, &h->dm->mqttInfo);
     thread_start(THREAD_ID_MQTT, h);
-    h->inited = 1;
-    r = 0;
+    h->inited = 1; r = 0;
 #endif
 
     return r;
@@ -605,8 +604,7 @@ int mqtt_deinit(void)
     
     thread_stop(THREAD_ID_MQTT);
     xlist_free(h->list);
-    h->inited = 0;
-    r = 0;
+    h->inited = 0; r = 0;
 #endif
 
     return r;