|
@@ -1781,35 +1781,38 @@ static void* breaker_thread(void *arg)
|
|
|
#if USE_SMART_DETECTION_CTRL
|
|
#if USE_SMART_DETECTION_CTRL
|
|
|
if( temp->breaker_status == 0 && chn >=2 && chn <= 5) //close
|
|
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)
|
|
}else if( temp->breaker_status == 1 && chn >=2 && chn <= 5)
|
|
|
{
|
|
{
|