Przeglądaj źródła

修改表头级联的延时问题。

liyi 8 miesięcy temu
rodzic
commit
617bebf545
6 zmienionych plików z 69 dodań i 62 usunięć
  1. 1 1
      pro/CMakeLists.txt
  2. 3 3
      pro/config/cfg.h
  3. 2 1
      pro/src/app.c
  4. 43 45
      pro/src/appweb_handle.c
  5. 15 7
      pro/src/cascade.c
  6. 5 5
      pro/src/common.c

+ 1 - 1
pro/CMakeLists.txt

@@ -49,7 +49,7 @@ link_directories(${PROJECT_SOURCE_DIR}/sqlite/lib)
 link_directories(${PROJECT_SOURCE_DIR}/modbus/lib)
 include_directories (${STAGING_DIR}/usr/include/libnl3)
 
-add_definitions("-Wall")
+add_definitions("-g -Wall")
 
 set(PDU_SRC_LIST
 	${PROJECT_SOURCE_DIR}/letter/src/shell_cmd_list.c

+ 3 - 3
pro/config/cfg.h

@@ -483,8 +483,8 @@
     #define SAVE_TIME 60000 // ms
     #define CASCADE_CNT 0
 
-    #define PHASE_GROUP 12
-    #define CHANNEL_DELAY 12
+    #define PHASE_GROUP 6
+    #define CHANNEL_DELAY 6
 
     #define PROD_POWER_TYPE 5
 
@@ -497,7 +497,7 @@
     #define BRD_MAX                             10                
 
     #define SENSOR_ACCESS_NONE
-    #define DRY_NONE                            1
+    //#define DRY_NONE                            
 
 #elif defined PRJ_Malaysia_AC_I3_O1
     #define LANGUAGE 1      // //english

+ 2 - 1
pro/src/app.c

@@ -3616,6 +3616,7 @@ int app_init(void)
     INIT_LIST_HEAD(&_globalDeviceManager->_globalSensorManger.list);
     INIT_LIST_HEAD(&_globalDeviceManager->g_new_global_breaker.list);
 
+
     //使用的通道
     _globalDeviceManager->useSlaveCount = 0 ;
     _globalDeviceManager->brdMax = _globalDeviceManager->_globalDevInfo.ptotal.brdMax;
@@ -3903,7 +3904,7 @@ int app_init(void)
 
     broadcast_init();
 
-#if 1
+#if 0
     tencent_sms_init();
 #endif
     

+ 43 - 45
pro/src/appweb_handle.c

@@ -6401,50 +6401,47 @@ static void equipmentMintenance(void *conn)
              cmd.obj = OBJ_OVERALL;
              cascade_request(&cmd);
             ack_str=ctrl_sts_ack_to_json();
-            // GlobalBreakerManager *temp = NULL;
-            // GlobalDeviceManager *dm = &__globalDeviceManage2;
-            // lock_s_hold(LOCK_ID_BREAKER);
-            // list_for_each_entry(temp, &dm->g_new_global_breaker.list, list)
-            // {
-            //     char buff[120];
-            //     printf("get  listSwitchtatusQuery infomation!!!\n");
-            //     _OverBreakerSwitchInfo *info = (_OverBreakerSwitchInfo *) 
-            //                         malloc(sizeof(_OverBreakerSwitchInfo));
-            //     memset(info,0,sizeof(_OverBreakerSwitchInfo));
-            //     info->product_id = temp->product_id;
-            //     sprintf(buff,"Breaker %d",temp->breaker_id);
-            //     strcpy(info->product_ch_name,buff);
-            //     sprintf(buff,"%s %d",__globalDeviceManage._globalDevInfo.product.name,temp->breaker_id);
-            //     strcpy(info->productName,buff);
-            //     strcpy(info->product_number,__globalDeviceManage._globalDevInfo.product.number);
-            //     strcpy(info->productChids,temp->breaker_chns_name);
-            //     info->switch_id = temp->breaker_id;
-            //     info->status = temp->breaker_status;
-            //     strcpy(info->cjfs,temp->breaker_gather_type);
-            //     strcpy(info->switch_name,temp->breaker_switch_name);
-            //     strcpy(info->comkh,temp->breaker_com);
-            //     sprintf(buff,"%d",temp->breaker_gather_addr);
-            //     strcpy(info->cjdz,buff);
-            //     sprintf(buff,"%d",temp->breaker_chn);
-            //     strcpy(info->jdh,buff);
-            //     printf("%s %s %s %s %d %d %s %s %s %s\n",
-            //     info->product_ch_name,info->productName,info->product_number,info->productChids,info->switch_id,
-            //     info->status,info->cjfs,info->comkh,info->cjdz,info->jdh);
-            //     list_add_tail(&info->list,&_over_breaker_switch_info.list);
-            // }
-            // lock_s_release(LOCK_ID_BREAKER);
-            // ack_str = over_all_breaker_switch_info_to_json(&_over_breaker_switch_info,0);
-            // _OverBreakerSwitchInfo* node;
-            // _OverBreakerSwitchInfo* next;
-
-
-
+            GlobalBreakerManager *temp = NULL;
+            GlobalDeviceManager *dm = &__globalDeviceManage2;
+            lock_s_hold(LOCK_ID_BREAKER);
+            list_for_each_entry(temp, &dm->g_new_global_breaker.list, list)
+            {
+                char buff[120];
+                printf("get  listSwitchtatusQuery infomation!!!\n");
+                _OverBreakerSwitchInfo *info = (_OverBreakerSwitchInfo *) 
+                                    malloc(sizeof(_OverBreakerSwitchInfo));
+                memset(info,0,sizeof(_OverBreakerSwitchInfo));
+                info->product_id = temp->product_id;
+                sprintf(buff,"Breaker %d",temp->breaker_id);
+                strcpy(info->product_ch_name,buff);
+                sprintf(buff,"%s %d",__globalDeviceManage._globalDevInfo.product.name,temp->breaker_id);
+                strcpy(info->productName,buff);
+                strcpy(info->product_number,__globalDeviceManage._globalDevInfo.product.number);
+                strcpy(info->productChids,temp->breaker_chns_name);
+                info->switch_id = temp->breaker_id;
+                info->status = temp->breaker_status;
+                strcpy(info->cjfs,temp->breaker_gather_type);
+                strcpy(info->switch_name,temp->breaker_switch_name);
+                strcpy(info->comkh,temp->breaker_com);
+                sprintf(buff,"%d",temp->breaker_gather_addr);
+                strcpy(info->cjdz,buff);
+                sprintf(buff,"%d",temp->breaker_chn);
+                strcpy(info->jdh,buff);
+                printf("%s %s %s %s %d %d %s %s %s %s\n",
+                info->product_ch_name,info->productName,info->product_number,info->productChids,info->switch_id,
+                info->status,info->cjfs,info->comkh,info->cjdz,info->jdh);
+                list_add_tail(&info->list,&_over_breaker_switch_info.list);
+            }
+            lock_s_release(LOCK_ID_BREAKER);
+            ack_str = over_all_breaker_switch_info_to_json(&_over_breaker_switch_info,0);
+            _OverBreakerSwitchInfo* node;
+            _OverBreakerSwitchInfo* next;
 
-            // list_for_each_entry_safe(node, next, &_over_breaker_switch_info.list, list)
-            // {
-            //     list_del(&node->list);
-            //     free(node);
-            //} 
+            list_for_each_entry_safe(node, next, &_over_breaker_switch_info.list, list)
+            {
+                list_del(&node->list);
+                free(node);
+            } 
         }else   //current 
         {
             GlobalBreakerManager *temp = NULL;
@@ -6723,9 +6720,10 @@ static void equipmentMintenance(void *conn)
             cmd.cmd = CASCADE_CMD_BREAKER_SAVE_DELETE;
             cmd.obj = OBJ_OVERALL;
             cascade_request(&cmd);
+#if 0
             GlobalBreakerManager* node = NULL;
             GlobalBreakerManager* next = NULL;
-
+ 
             lock_s_hold(LOCK_ID_BREAKER);
             list_for_each_entry_safe(node,next,&__globalDeviceManage2.g_new_global_breaker.list, list)
             {
@@ -6740,7 +6738,7 @@ static void equipmentMintenance(void *conn)
                 }
             }
             lock_s_release(LOCK_ID_BREAKER);
-
+#endif
             ack_str=ctrl_sts_ack_to_json();
         }else
         {

+ 15 - 7
pro/src/cascade.c

@@ -44,6 +44,7 @@ typedef struct
 
     slave_info_t sInfo; // current slave infomation
     breaker_info_t sBreaker;
+    uint32_t sBreaker_count;
     uint8_t scanner_flag;
 } cascade_handle_t;
 
@@ -1300,6 +1301,7 @@ static int breaker_add(cascade_handle_t *cas)
         strcpy(tmp->breaker_switch_name, info->breaker_chn[i].breaker_switch_name);
         list_add_tail(&tmp->list, &dm2->g_new_global_breaker.list);
     }
+    cas->sBreaker_count = info->cnt;
     pthread_mutex_unlock(&dm2->_breaker_mutex);
     // cascade_unlock();
     r = 0;
@@ -1626,15 +1628,21 @@ static int master_query(cascade_handle_t *cas)
 
         //  wdata.dlen = sizeof(cmd_data_t);
         //  wdata.data = (uint8_t*)cmd;
-        LOGD("____ master query CASCADE_CMD_BREAKER_QUERY, cnt: %d\n", cas->sBreaker.cnt);
+        
         rdata.dlen = sizeof(breaker_info_t) - sizeof(breaker_channel_info_t) * (CH_MAX - cas->sBreaker.cnt);
         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);
         cascade_lock();
         if (r == 0)
         {
-            breaker_add(cas);
+            if(cas->sBreaker_count != cas->sBreaker.cnt)
+            {
+                breaker_add(cas);
+            }else
+            {
+                breaker_update(cas);
+            }
         }
         else
         {
@@ -1804,11 +1812,11 @@ static void *cascade_thread(void *arg)
         if (info->mode == MODBUS_MASTER)
         { // 主模
             r = master_query(cas);
-            if(cmd->cmd==CASCADE_CMD_QUERY_CH)
-            {
+            // if(cmd->cmd==CASCADE_CMD_QUERY_CH)
+            // {
                 sleep(1);
-            }
-            else sleep(3);
+            // }
+            // else sleep(3);
         }
         else
         { // 从模式,等待主设备发起数据请�?

+ 5 - 5
pro/src/common.c

@@ -956,15 +956,15 @@ void SetMenuAuthority(int RoleID)
 #else
          _GlobalMenuAuthority.GjsjEnabled = false;
 #endif
-        _GlobalMenuAuthority.KzbsjEnabled = false;
+        _GlobalMenuAuthority.KzbsjEnabled = true;
         _GlobalMenuAuthority.HhccszEnabled = true;
         _GlobalMenuAuthority.PzdrdcEnabled = true;
         _GlobalMenuAuthority.ShfwEnabled = true;
         _GlobalMenuAuthority.GysbEnabled = true;
         _GlobalMenuAuthority.BroadcastEnable = true;
 #if (CHIP_TYPE == CHIP_T113i)
-        _GlobalMenuAuthority.RadiusEnabled = false;
-        _GlobalMenuAuthority.LdapEnabled = false;
+        _GlobalMenuAuthority.RadiusEnabled = true;
+        _GlobalMenuAuthority.LdapEnabled = true;
         _GlobalMenuAuthority.CloudSmsEnable = false;
 #endif
     }
@@ -1036,8 +1036,8 @@ void SetMenuAuthority(int RoleID)
         _GlobalMenuAuthority.HhccszEnabled = false;
         _GlobalMenuAuthority.PzdrdcEnabled = true;
         _GlobalMenuAuthority.ShfwEnabled = false;
-        _GlobalMenuAuthority.GysbEnabled = true;
-        _GlobalMenuAuthority.BroadcastEnable = true;
+        _GlobalMenuAuthority.GysbEnabled = false;
+        _GlobalMenuAuthority.BroadcastEnable = false;
 #if (CHIP_TYPE == CHIP_T113i)
         _GlobalMenuAuthority.RadiusEnabled = false;
         _GlobalMenuAuthority.LdapEnabled = false;