|
|
@@ -99,7 +99,6 @@ void* power_thread(void* arg)
|
|
|
unsigned int sSaveTime = _globalDeviceManager->_globalDevInfo.product_save_time;
|
|
|
log_d("samp_time:%dms save_time:%dms\n", samp_time,sSaveTime);
|
|
|
|
|
|
-
|
|
|
bool isErrorBreak=false;
|
|
|
_globalDeviceManager->_ReloadChm_flag=false;
|
|
|
list_for_each_entry(_globalPowerMangerTemp, &_globalDeviceManager->_globalPowerManger.list, list)
|
|
|
@@ -121,7 +120,6 @@ void* power_thread(void* arg)
|
|
|
}
|
|
|
|
|
|
//db_ow_test(_globalDeviceManager->db, &lastIndex, &lastIndex3);
|
|
|
-
|
|
|
//采集线程
|
|
|
while (h->quit==0)
|
|
|
{
|
|
|
@@ -1225,6 +1223,8 @@ void sensor_alarm(GlobalSensorManger *_globalSensorMangerTemp, int nAlarmType)
|
|
|
void* breaker_thread(void *arg)
|
|
|
{
|
|
|
int r;
|
|
|
+ int ret=0;
|
|
|
+ unsigned int usleepTime = 30000;
|
|
|
GlobalDeviceManager *_globalDeviceManager = (GlobalDeviceManager *)&__globalDeviceManage;
|
|
|
GlobalBreakerManager *temp = NULL;
|
|
|
uint16_t value = 0;
|
|
|
@@ -1247,18 +1247,44 @@ void* breaker_thread(void *arg)
|
|
|
// {
|
|
|
// //DI
|
|
|
// }
|
|
|
- if(temp->breaker_gather_addr)
|
|
|
+ if( temp->breaker_gather_addr>=BREADER_485_ADDR && temp->breaker_gather_addr<BREADER_485_ADDR+BREAKER_BOARD_MAX)
|
|
|
{
|
|
|
- if((temp->breaker_gather_addr-BREADER_485_ADDR < BREAKER_BOARD_MAX) &&
|
|
|
- ((breaker_scann->breaker_flag[temp->breaker_gather_addr-BREADER_485_ADDR]) == 1))
|
|
|
+ if( breaker_scann->breaker_flag[temp->breaker_gather_addr-BREADER_485_ADDR] == 1)
|
|
|
{
|
|
|
int chn = temp->breaker_chn;
|
|
|
- temp->breaker_status = breaker_scann->board[temp->breaker_gather_addr-BREADER_485_ADDR].ch_status[chn-1];
|
|
|
+ if (chn>=1&& chn<=BREAKER_485_CHN_MAX)
|
|
|
+ {
|
|
|
+ temp->breaker_status = breaker_scann->board[temp->breaker_gather_addr-BREADER_485_ADDR].ch_status[chn-1];
|
|
|
+ }
|
|
|
}else
|
|
|
{
|
|
|
temp->breaker_status = 0;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ if (temp->breaker_gather_addr>0&&temp->breaker_gather_addr<=MAX_CHN_COUNT)
|
|
|
+ {
|
|
|
+ for (size_t i = 0; i < MAX_CHN_COUNT; i++)
|
|
|
+ {
|
|
|
+ if (_globalDeviceManager->_all_ctrl_board[i].product_saddr != temp->breaker_gather_addr)
|
|
|
+ {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ ret = g_switch_get_breaker_info(&_globalDeviceManager->_globalRelaySampManger,
|
|
|
+ _globalDeviceManager->_all_ctrl_board[i].product_type,
|
|
|
+ _globalDeviceManager->_all_ctrl_board[i].product_saddr,
|
|
|
+ temp);
|
|
|
+ if (ret < 0)
|
|
|
+ {
|
|
|
+ usleep(usleepTime);
|
|
|
+ ret = g_switch_get_breaker_info(&_globalDeviceManager->_globalRelaySampManger,
|
|
|
+ _globalDeviceManager->_all_ctrl_board[i].product_type,
|
|
|
+ _globalDeviceManager->_all_ctrl_board[i].product_saddr,
|
|
|
+ temp);
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
lock_s_release(LOCK_ID_BREAKER);
|
|
|
sleep(1);
|
|
|
@@ -1879,21 +1905,24 @@ int _global_device_manage_init(GlobalDeviceManager* _globalDeviceManager)
|
|
|
|
|
|
//first scannner breaker borad;
|
|
|
unsigned short value;
|
|
|
- breaker_scanner_t* breaker= get_breaker_scanner();
|
|
|
- memset(breaker,0,sizeof(breaker_scanner_t));
|
|
|
- for(int i = 0; i < BREAKER_BOARD_MAX; i++)
|
|
|
+ breaker_scanner_t *breaker = get_breaker_scanner();
|
|
|
+ memset(breaker, 0, sizeof(breaker_scanner_t));
|
|
|
+ for (int i = 0; i < BREAKER_BOARD_MAX; i++)
|
|
|
{
|
|
|
- ret = breaker_485_get_chn_status((void*)&_globalDeviceManager->_globalRelaySampManger,
|
|
|
- BREADER_485_ADDR+i,BREADER_485_ADDR_CHN_REG,&value);
|
|
|
- log_d("ret:%d breaker id:%d .\n",ret,BREADER_485_ADDR+i);
|
|
|
- if(ret == 0)
|
|
|
+ ret = breaker_485_get_chn_status((void *)&_globalDeviceManager->_globalRelaySampManger,
|
|
|
+ BREADER_485_ADDR + i, BREADER_485_ADDR_CHN_REG, &value);
|
|
|
+ log_d("ret:%d breaker id:%d .\n", ret, BREADER_485_ADDR + i);
|
|
|
+ if (ret == 0)
|
|
|
{
|
|
|
breaker->breaker_flag[i] = 1;
|
|
|
- }else
|
|
|
+ }
|
|
|
+ else
|
|
|
{
|
|
|
breaker->breaker_flag[i] = 0;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ //init power manage
|
|
|
//搜索子地址
|
|
|
chn = 1 ;
|
|
|
nTac_chn=3;
|