Quellcode durchsuchen

后4路开关bug

liyi vor 1 Jahr
Ursprung
Commit
6b33829e30
2 geänderte Dateien mit 37 neuen und 26 gelöschten Zeilen
  1. 28 25
      pro/src/app.c
  2. 9 1
      pro/src/breaker_detection.c

+ 28 - 25
pro/src/app.c

@@ -1781,35 +1781,38 @@ static void* breaker_thread(void *arg)
 #if USE_SMART_DETECTION_CTRL
                         if( temp->breaker_status == 0 && chn >=2 && chn <= 5)               //close
                         {
-                           uint16_t close_id = temp->breaker_id;
-                           if(close_id > 6)
+                           if(pre_breaker_status == 1)
                            {
-                                close_id -= 2;              // 2 路断路器
-                           }else
-                           {
-                                close_id -= 1;            // 1 路断路器 
-                           }
-                           GlobalPowerManger* _globalPowerMangerTemp = NULL ;
-                            list_for_each_entry(_globalPowerMangerTemp, &__globalDeviceManage._globalPowerManger.list, list)
+                            uint16_t close_id = temp->breaker_id;
+                            if(close_id > 6)
+                            {
+                                    close_id -= 2;              // 2 路断路器
+                            }else
                             {
-                                if((close_id == _globalPowerMangerTemp->product_ch_id) && (_globalPowerMangerTemp->product_ch_status== 1))
+                                    close_id -= 1;            // 1 路断路器 
+                            }
+                            GlobalPowerManger* _globalPowerMangerTemp = NULL ;
+                                list_for_each_entry(_globalPowerMangerTemp, &__globalDeviceManage._globalPowerManger.list, list)
                                 {
-                                    int ret= g_switch_set_all_chn_ctrl(&__globalDeviceManage._globalRelaySampManger,
-                                                              _globalPowerMangerTemp,
-                                                              _globalPowerMangerTemp->product_saddr,
-                                                              _globalPowerMangerTemp->product_ch_addr, 
-                                                              0,false);
-                                    if(ret < 0)
+                                    if((close_id == _globalPowerMangerTemp->product_ch_id) && (_globalPowerMangerTemp->product_ch_status== 1))
                                     {
-                                         ret= g_switch_set_all_chn_ctrl(&__globalDeviceManage._globalRelaySampManger,
-                                                              _globalPowerMangerTemp,
-                                                              _globalPowerMangerTemp->product_saddr,
-                                                              _globalPowerMangerTemp->product_ch_addr, 
-                                                              0,false);
-                                    }
-                                    log_d("close channel = %d\n",close_id);
-                                    break;
-                                }                                
+                                        int ret= g_switch_set_all_chn_ctrl(&__globalDeviceManage._globalRelaySampManger,
+                                                                _globalPowerMangerTemp,
+                                                                _globalPowerMangerTemp->product_saddr,
+                                                                _globalPowerMangerTemp->product_ch_addr, 
+                                                                0,false);
+                                        if(ret < 0)
+                                        {
+                                            ret= g_switch_set_all_chn_ctrl(&__globalDeviceManage._globalRelaySampManger,
+                                                                _globalPowerMangerTemp,
+                                                                _globalPowerMangerTemp->product_saddr,
+                                                                _globalPowerMangerTemp->product_ch_addr, 
+                                                                0,false);
+                                        }
+                                        log_d("close channel = %d\n",close_id);
+                                        break;
+                                    }                                
+                                }
                             }
                         }else if( temp->breaker_status == 1 && chn >=2 && chn <= 5)
                         {

+ 9 - 1
pro/src/breaker_detection.c

@@ -162,6 +162,14 @@ int breaker_485_get_chns(void* manger,int saddr,unsigned short* cnt)
 }
 
 
+
+
+
+
+
+
+
+
 void* breaker_scanner_thread(void* arg)
 {
     //GlobalDeviceManager* gm= (GlobalDeviceManager*)(argv);
@@ -232,7 +240,7 @@ void* breaker_scanner_thread(void* arg)
                 lock_s_release(LOCK_ID_BREAKER);
             }
         }
-        sleep(1);
+        usleep(300000);
     }
 
     return NULL;