|
@@ -1037,23 +1037,36 @@ void* breaker_thread(void *arg)
|
|
|
GlobalBreakerManager *temp = NULL;
|
|
GlobalBreakerManager *temp = NULL;
|
|
|
pthread_mutex_init(&_globalDeviceManager->_breaker_mutex,NULL);
|
|
pthread_mutex_init(&_globalDeviceManager->_breaker_mutex,NULL);
|
|
|
uint16_t value = 0;
|
|
uint16_t value = 0;
|
|
|
|
|
+ breaker_scanner_t* breaker_scann = get_breaker_scanner();
|
|
|
while (_globalDeviceManager->dev_samp_flag)
|
|
while (_globalDeviceManager->dev_samp_flag)
|
|
|
{
|
|
{
|
|
|
pthread_mutex_lock(&__globalDeviceManage._breaker_mutex);
|
|
pthread_mutex_lock(&__globalDeviceManage._breaker_mutex);
|
|
|
list_for_each_entry(temp, &_globalDeviceManager->g_new_global_breaker.list,list)
|
|
list_for_each_entry(temp, &_globalDeviceManager->g_new_global_breaker.list,list)
|
|
|
{
|
|
{
|
|
|
- if(temp->breaker_gather_addr != 0)
|
|
|
|
|
|
|
+ // if(temp->breaker_gather_addr != 0)
|
|
|
|
|
+ // {
|
|
|
|
|
+ // value = 0;
|
|
|
|
|
+ // r = breaker_485_get_chn_status((void*)&_globalDeviceManager->_globalRelaySampManger,
|
|
|
|
|
+ // temp->breaker_gather_addr,BREADER_485_ADDR_CHN_REG+temp->breaker_chn,&value);
|
|
|
|
|
+ // if(r==0) {
|
|
|
|
|
+ // temp->breaker_status = value;
|
|
|
|
|
+ // }
|
|
|
|
|
+ // // printf("temp->breaker_gather_addr = %d temp->breaker_chn=%d getchn value = %d\n",temp->breaker_gather_addr,temp->breaker_chn,value);
|
|
|
|
|
+ // }else
|
|
|
|
|
+ // {
|
|
|
|
|
+ // //DI
|
|
|
|
|
+ // }
|
|
|
|
|
+ if(temp->breaker_gather_addr)
|
|
|
{
|
|
{
|
|
|
- value = 0;
|
|
|
|
|
- r = breaker_485_get_chn_status((void*)&_globalDeviceManager->_globalRelaySampManger,
|
|
|
|
|
- temp->breaker_gather_addr,BREADER_485_ADDR_CHN_REG+temp->breaker_chn,&value);
|
|
|
|
|
- if(r==0) {
|
|
|
|
|
- temp->breaker_status = value;
|
|
|
|
|
|
|
+ if(temp->breaker_gather_addr-BREADER_485_ADDR < BREAKER_BOARD_MAX &&
|
|
|
|
|
+ (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];
|
|
|
|
|
+ }else
|
|
|
|
|
+ {
|
|
|
|
|
+ temp->breaker_status = 0;
|
|
|
}
|
|
}
|
|
|
- // printf("temp->breaker_gather_addr = %d temp->breaker_chn=%d getchn value = %d\n",temp->breaker_gather_addr,temp->breaker_chn,value);
|
|
|
|
|
- }else
|
|
|
|
|
- {
|
|
|
|
|
- //DI
|
|
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
pthread_mutex_unlock(&__globalDeviceManage._breaker_mutex);
|
|
pthread_mutex_unlock(&__globalDeviceManage._breaker_mutex);
|
|
@@ -2243,6 +2256,9 @@ int _global_device_manage_init(GlobalDeviceManager* _globalDeviceManager)
|
|
|
thread_start(THREAD_ID_POWER, power_thread, _globalDeviceManager, 20*MB, 0);
|
|
thread_start(THREAD_ID_POWER, power_thread, _globalDeviceManager, 20*MB, 0);
|
|
|
thread_start(THREAD_ID_SENSOR, sensor_thread, _globalDeviceManager, 10*MB, 0);
|
|
thread_start(THREAD_ID_SENSOR, sensor_thread, _globalDeviceManager, 10*MB, 0);
|
|
|
thread_start(THREAD_ID_SHMW, shm_thread, _globalDeviceManager, 10*MB, 0);
|
|
thread_start(THREAD_ID_SHMW, shm_thread, _globalDeviceManager, 10*MB, 0);
|
|
|
|
|
+
|
|
|
|
|
+ thread_start(THREAD_ID_BREAKER_SCANNER,breaker_scanner_thread,_globalDeviceManager,1*MB,0);
|
|
|
|
|
+
|
|
|
thread_start(THREAD_ID_BREAKER, breaker_thread, _globalDeviceManager, 5*MB, 0);
|
|
thread_start(THREAD_ID_BREAKER, breaker_thread, _globalDeviceManager, 5*MB, 0);
|
|
|
dev_Alarm_Run_message(_globalDeviceManager,language_alarm_Init_Success[0],"Server Thread");
|
|
dev_Alarm_Run_message(_globalDeviceManager,language_alarm_Init_Success[0],"Server Thread");
|
|
|
|
|
|