|
|
@@ -1865,574 +1865,7 @@ int _global_device_manage_init(GlobalDeviceManager* _globalDeviceManager)
|
|
|
dev_Alarm_Run_message(_globalDeviceManager,language_alarm_Init_Success[0],strLog);
|
|
|
log_d("GCPDU init begin!");
|
|
|
ResetChmData(0);
|
|
|
-/*
|
|
|
- memset(&_globalDeviceManager->_all_ctrl_board, 0, sizeof(_globalDeviceManager->_all_ctrl_board));
|
|
|
- for (size_t i = 1; i < MAX_CHN_COUNT; i++)
|
|
|
- {
|
|
|
- type = 0 ;
|
|
|
- int nMaxChn=0;
|
|
|
- ret = g_switch_get_type(&_globalDeviceManager->_globalRelaySampManger,
|
|
|
- i,
|
|
|
- &type,
|
|
|
- &nMaxChn,
|
|
|
- _globalDeviceManager->_globalDevInfo.product_pwr_type);
|
|
|
- log_d("ret:%d saddr:%d type:%d ch_num:%d.\n",ret,i,type,nMaxChn);
|
|
|
- //int i =1 ;
|
|
|
- //type = AC_SINGLE_S_TYPE ;
|
|
|
- //chn = i ;
|
|
|
-
|
|
|
- if(ret==0)
|
|
|
- {
|
|
|
- //有效地址记录
|
|
|
- _globalDeviceManager->useSlaveCount ++ ;
|
|
|
- _globalDeviceManager->_all_ctrl_board[i].product_saddr=i;
|
|
|
- _globalDeviceManager->_all_ctrl_board[i].product_number=nMaxChn;
|
|
|
- _globalDeviceManager->_all_ctrl_board[i].product_type=type;
|
|
|
- switch (type)
|
|
|
- {
|
|
|
- case AC_SINGLE_S_TYPE://AC单相小电流 8路继电器
|
|
|
- case AC_SINGLE_B_TYPE:
|
|
|
- {
|
|
|
- log_i("Address=%d AC_SINGLE_S_TYPE!\n",i);
|
|
|
- for (size_t j = 0; j < nMaxChn; j++)
|
|
|
- {
|
|
|
- GlobalPowerManger* _globalPowerMangerTemp = (GlobalPowerManger*)malloc(sizeof(GlobalPowerManger));
|
|
|
- if(_globalPowerMangerTemp==NULL)
|
|
|
- {
|
|
|
- //log_e("_globalPowerManger malloc error.\n");
|
|
|
- return -1 ;
|
|
|
- }
|
|
|
- memset(_globalPowerMangerTemp, 0, sizeof(GlobalPowerManger));
|
|
|
- _globalPowerMangerTemp->global_over_manager = (GlobalOverManager*)malloc(sizeof(GlobalOverManager));
|
|
|
- if(_globalPowerMangerTemp->global_over_manager==NULL)
|
|
|
- {
|
|
|
- //log_e("_globalPowerManger->global_over_manager malloc error.\n");
|
|
|
- return -1 ;
|
|
|
- }
|
|
|
- memset(_globalPowerMangerTemp->global_over_manager,0,sizeof(GlobalOverManager));
|
|
|
- //查询是否由通道信息
|
|
|
- ret = dev_get_power_manage_info(_globalDeviceManager->db,
|
|
|
- _globalDeviceManager->_globalDevInfo.product_id,
|
|
|
- i,
|
|
|
- j+1, //1*8+j
|
|
|
- _globalPowerMangerTemp);
|
|
|
- //未查询到信息 则插入
|
|
|
- if(ret==-1)
|
|
|
- {
|
|
|
- _globalPowerMangerTemp->product_id = _globalDeviceManager->_globalDevInfo.product_id;
|
|
|
- _globalPowerMangerTemp->product_saddr = i ;
|
|
|
- _globalPowerMangerTemp->product_ch_id = chn;
|
|
|
- _globalPowerMangerTemp->product_ch_addr = j+1;
|
|
|
- sprintf(_globalPowerMangerTemp->product_ch_name,"CH%d",_globalPowerMangerTemp->product_ch_id);
|
|
|
- _globalPowerMangerTemp->product_ch_type = type;
|
|
|
- _globalPowerMangerTemp->product_ch_status = 0;
|
|
|
- _globalPowerMangerTemp->product_ch_NF_status= 0;
|
|
|
-
|
|
|
- _globalPowerMangerTemp->product_ch_start_delay = 1000 * (chn%nGroups!=0?chn%nGroups:nGroups);
|
|
|
- _globalPowerMangerTemp->product_ch_stop_delay = 1000 * (chn%nGroups!=0?chn%nGroups:nGroups);
|
|
|
-
|
|
|
- _globalPowerMangerTemp->global_over_manager->product_cur_over_upper_threshold_ctrl = ALARM_CTRL_ALARM_ONLY; // 默认超限只报警
|
|
|
- _globalPowerMangerTemp->global_over_manager->product_pwr_over_upper_threshold_ctrl = ALARM_CTRL_ALARM_ONLY;
|
|
|
- _globalPowerMangerTemp->global_over_manager->product_pwrcon_over_upper_threshold_ctrl = ALARM_CTRL_ALARM_ONLY;
|
|
|
- _globalPowerMangerTemp->global_over_manager->product_vol_over_lower_threshold_ctrl = ALARM_CTRL_ALARM_ONLY;
|
|
|
- _globalPowerMangerTemp->global_over_manager->product_vol_over_upper_threshold_ctrl = ALARM_CTRL_ALARM_ONLY;
|
|
|
-
|
|
|
- if(dev_insert_power_manage_info(_globalDeviceManager->db,
|
|
|
- _globalDeviceManager->_globalDevInfo.product_id,
|
|
|
- _globalPowerMangerTemp->product_ch_id,
|
|
|
- _globalPowerMangerTemp)!=0)
|
|
|
- {
|
|
|
- log_e("address %d chn %d data inserted error.\n",i,chn);
|
|
|
- return 0;
|
|
|
- }
|
|
|
- }
|
|
|
- if ( _globalDeviceManager->_globalDevInfo.product_pwr_type == SmartPDU_Tree_AC_One_B)
|
|
|
- {
|
|
|
- // 初始化三相子通道
|
|
|
- GlobalTreeACManager *_globalTACManager = NULL;
|
|
|
- INIT_LIST_HEAD(&_globalPowerMangerTemp->list_Tree_AC);
|
|
|
- for (size_t indexT = 0; indexT < 3; indexT++)
|
|
|
- {
|
|
|
- _globalTACManager = (GlobalTreeACManager *)malloc(sizeof(GlobalTreeACManager));
|
|
|
- memset(_globalTACManager, 0, sizeof(GlobalTreeACManager));
|
|
|
- if (_globalTACManager == NULL)
|
|
|
- {
|
|
|
- log_e("_globalTACManager malloc error.\n");
|
|
|
- return -1;
|
|
|
- }
|
|
|
- _globalTACManager->global_over_manager = (GlobalOverManager *)malloc(sizeof(GlobalOverManager));
|
|
|
- memset(_globalTACManager->global_over_manager, 0, sizeof(GlobalOverManager));
|
|
|
- if (_globalTACManager->global_over_manager == NULL)
|
|
|
- {
|
|
|
- log_e("_globalTACManager->global_over_manager malloc error.\n");
|
|
|
- return -1;
|
|
|
- }
|
|
|
- ret = dev_get_t_ac_power_manage_info(_globalDeviceManager->db,
|
|
|
- _globalDeviceManager->_globalDevInfo.product_id, i,
|
|
|
- j + 1, // 1*8+j
|
|
|
- nTac_chn,
|
|
|
- _globalTACManager);
|
|
|
- _globalTACManager->product_ch_addr = j + 1;
|
|
|
- // 未查询到信息 则插入
|
|
|
- if (ret == -1)
|
|
|
- {
|
|
|
- _globalTACManager->product_id = _globalDeviceManager->_globalDevInfo.product_id;
|
|
|
- _globalTACManager->product_saddr = i;
|
|
|
- _globalTACManager->product_ch_id = _globalPowerMangerTemp->product_ch_id;
|
|
|
- _globalTACManager->product_ch_addr = j + 1;
|
|
|
- _globalTACManager->product_ph_id = nTac_chn;
|
|
|
- _globalTACManager->product_ph_type = indexT;
|
|
|
- _globalTACManager->product_ph_outputType = 2; // 1三相2单相
|
|
|
- if (indexT == ((nTac_chn-3)/(PHASE_GROUP_CNT*3)+3)%3)
|
|
|
- {
|
|
|
- _globalTACManager->product_ph_outputStatus = 1; // 1输出2不输出
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- _globalTACManager->product_ph_outputStatus = 2; // 1输出2不输出
|
|
|
- }
|
|
|
-
|
|
|
- if (dev_insert_t_ac_power_manage_info(_globalDeviceManager->db,
|
|
|
- _globalDeviceManager->_globalDevInfo.product_id,
|
|
|
- _globalTACManager->product_ch_id,
|
|
|
- _globalTACManager) != 0)
|
|
|
- {
|
|
|
- log_e("address %d ph_chn %d data inserted error.\n", i, nTac_chn);
|
|
|
- return 0;
|
|
|
- }
|
|
|
- }
|
|
|
- // 绑定到三项通道
|
|
|
- _globalTACManager->product_saddr = i;
|
|
|
- _globalTACManager->product_ph_type = indexT;
|
|
|
- if (_globalPowerMangerTemp)
|
|
|
- {
|
|
|
- list_add_tail(&_globalTACManager->list_Tree_AC, &_globalPowerMangerTemp->list_Tree_AC);
|
|
|
- }
|
|
|
- nTac_chn += 1;
|
|
|
- }
|
|
|
- }
|
|
|
- _globalPowerMangerTemp->product_saddr = i;
|
|
|
- // 添加到队尾
|
|
|
- list_add_tail(&_globalPowerMangerTemp->list, &_globalDeviceManager->_globalPowerManger.list);
|
|
|
- chn += 1;
|
|
|
- }
|
|
|
- }
|
|
|
- break;
|
|
|
- case AC_MULTI_S_TYPE://预留
|
|
|
- {
|
|
|
|
|
|
- }
|
|
|
- break;
|
|
|
- case AC_MULTI_B_TYPE://预留
|
|
|
- {
|
|
|
-
|
|
|
- }
|
|
|
- break;
|
|
|
- case DC_OUT_TYPE: //DC输出继电器 1路
|
|
|
- {
|
|
|
-
|
|
|
- }
|
|
|
- break;
|
|
|
- case DC_IN_TYPE: // DC采集
|
|
|
- {
|
|
|
- log_i("Address=%d DC_IN_TYPE!\n",i);
|
|
|
- for (size_t j = 0; j < nMaxChn; j++)//AC与DC长度一致
|
|
|
- {
|
|
|
- GlobalPowerManger* _globalPowerMangerTemp = (GlobalPowerManger*)malloc(sizeof(GlobalPowerManger));
|
|
|
- if(_globalPowerMangerTemp==NULL)
|
|
|
- {
|
|
|
- //log_e("_globalPowerManger malloc error.\n");
|
|
|
- return -1 ;
|
|
|
- }
|
|
|
- memset(_globalPowerMangerTemp, 0, sizeof(GlobalPowerManger));
|
|
|
- _globalPowerMangerTemp->global_over_manager = (GlobalOverManager*)malloc(sizeof(GlobalOverManager));
|
|
|
- if(_globalPowerMangerTemp->global_over_manager==NULL)
|
|
|
- {
|
|
|
- //log_e("_globalPowerManger->global_over_manager malloc error.\n");
|
|
|
- return -1 ;
|
|
|
- }
|
|
|
- memset(_globalPowerMangerTemp->global_over_manager,0,sizeof(GlobalOverManager));
|
|
|
- //查询是否由通道信息
|
|
|
- ret = dev_get_power_manage_info(_globalDeviceManager->db,
|
|
|
- _globalDeviceManager->_globalDevInfo.product_id,i,
|
|
|
- j+1, //1*8+j
|
|
|
- _globalPowerMangerTemp);
|
|
|
- //未查询到信息 则插入
|
|
|
- if(ret==-1)
|
|
|
- {
|
|
|
- _globalPowerMangerTemp->product_id = _globalDeviceManager->_globalDevInfo.product_id;
|
|
|
- _globalPowerMangerTemp->product_saddr = i ;
|
|
|
- _globalPowerMangerTemp->product_ch_id = chn;
|
|
|
- _globalPowerMangerTemp->product_ch_addr = j+1;
|
|
|
- sprintf(_globalPowerMangerTemp->product_ch_name,"CH%d",_globalPowerMangerTemp->product_ch_id);
|
|
|
- _globalPowerMangerTemp->product_ch_type = type;
|
|
|
- _globalPowerMangerTemp->product_ch_status = 0;
|
|
|
- _globalPowerMangerTemp->product_ch_NF_status= 0;
|
|
|
- _globalPowerMangerTemp->product_ch_start_delay = 1000;
|
|
|
- _globalPowerMangerTemp->product_ch_stop_delay = 1000;
|
|
|
-
|
|
|
- _globalPowerMangerTemp->global_over_manager->product_cur_over_upper_threshold_ctrl = ALARM_CTRL_ALARM_ONLY; // 默认超限只报警
|
|
|
- _globalPowerMangerTemp->global_over_manager->product_pwr_over_upper_threshold_ctrl = ALARM_CTRL_ALARM_ONLY;
|
|
|
- _globalPowerMangerTemp->global_over_manager->product_pwrcon_over_upper_threshold_ctrl = ALARM_CTRL_ALARM_ONLY;
|
|
|
- _globalPowerMangerTemp->global_over_manager->product_vol_over_lower_threshold_ctrl = ALARM_CTRL_ALARM_ONLY;
|
|
|
- _globalPowerMangerTemp->global_over_manager->product_vol_over_upper_threshold_ctrl = ALARM_CTRL_ALARM_ONLY;
|
|
|
-
|
|
|
- if(dev_insert_power_manage_info(_globalDeviceManager->db,
|
|
|
- _globalDeviceManager->_globalDevInfo.product_id,
|
|
|
- _globalPowerMangerTemp->product_ch_id,
|
|
|
- _globalPowerMangerTemp)!=0)
|
|
|
- {
|
|
|
- log_e("address %d chn %d data inserted error.\n",i,chn);
|
|
|
- return 0;
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
- _globalPowerMangerTemp->product_saddr = i ;
|
|
|
- //添加到队尾
|
|
|
- list_add_tail(&_globalPowerMangerTemp->list,&_globalDeviceManager->_globalPowerManger.list);
|
|
|
- chn+=1;
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
- break;
|
|
|
- case DCPDU_TYPE: // DCPDU
|
|
|
- {
|
|
|
- log_i("DCPDU_TYPE!\n");
|
|
|
- //unsigned int start_delay[8], stop_delay[8];
|
|
|
- //g_switch_get_dcpdu_start_time_delay(&_globalDeviceManager->_globalRelaySampManger,i, start_delay);
|
|
|
- //g_switch_get_dcpdu_stop_time_delay(&_globalDeviceManager->_globalRelaySampManger,i, stop_delay);
|
|
|
- for (size_t j = 0; j < nMaxChn; j++)
|
|
|
- {
|
|
|
- GlobalPowerManger* _globalPowerMangerTemp = (GlobalPowerManger*)malloc(sizeof(GlobalPowerManger));
|
|
|
- if(_globalPowerMangerTemp==NULL)
|
|
|
- {
|
|
|
- //log_e("_globalPowerManger malloc error.\n");
|
|
|
- return -1 ;
|
|
|
- }
|
|
|
- memset(_globalPowerMangerTemp, 0, sizeof(GlobalPowerManger));
|
|
|
- _globalPowerMangerTemp->global_over_manager = (GlobalOverManager*)malloc(sizeof(GlobalOverManager));
|
|
|
- if(_globalPowerMangerTemp->global_over_manager==NULL)
|
|
|
- {
|
|
|
- //log_e("_globalPowerManger->global_over_manager malloc error.\n");
|
|
|
- return -1 ;
|
|
|
- }
|
|
|
-
|
|
|
- memset(_globalPowerMangerTemp->global_over_manager,0,sizeof(GlobalOverManager));
|
|
|
- //查询是否由通道信息
|
|
|
- ret = dev_get_power_manage_info(_globalDeviceManager->db,
|
|
|
- _globalDeviceManager->_globalDevInfo.product_id,i,
|
|
|
- j+1, //1*8+j
|
|
|
- _globalPowerMangerTemp);
|
|
|
- _globalPowerMangerTemp->product_ch_addr = j+1;
|
|
|
- //未查询到信息 则插入
|
|
|
- if(ret==-1)
|
|
|
- {
|
|
|
- _globalPowerMangerTemp->product_id = _globalDeviceManager->_globalDevInfo.product_id;
|
|
|
- _globalPowerMangerTemp->product_saddr = i ;
|
|
|
- _globalPowerMangerTemp->product_ch_id = chn;
|
|
|
- _globalPowerMangerTemp->product_ch_addr = j+1;
|
|
|
- sprintf(_globalPowerMangerTemp->product_ch_name,"CH%d",_globalPowerMangerTemp->product_ch_id);
|
|
|
- _globalPowerMangerTemp->product_ch_type = type;
|
|
|
- _globalPowerMangerTemp->product_ch_status = 0;
|
|
|
- _globalPowerMangerTemp->product_ch_NF_status= 0;
|
|
|
-
|
|
|
- _globalPowerMangerTemp->product_ch_start_delay =1000 * (chn%nGroups!=0?chn%nGroups:nGroups);
|
|
|
- _globalPowerMangerTemp->product_ch_stop_delay =1000 * (chn%nGroups!=0?chn%nGroups:nGroups);
|
|
|
-
|
|
|
- _globalPowerMangerTemp->global_over_manager->product_cur_over_upper_threshold_ctrl = ALARM_CTRL_ALARM_ONLY; // 默认超限只报警
|
|
|
- _globalPowerMangerTemp->global_over_manager->product_pwr_over_upper_threshold_ctrl = ALARM_CTRL_ALARM_ONLY;
|
|
|
- _globalPowerMangerTemp->global_over_manager->product_pwrcon_over_upper_threshold_ctrl = ALARM_CTRL_ALARM_ONLY;
|
|
|
- _globalPowerMangerTemp->global_over_manager->product_vol_over_lower_threshold_ctrl =ALARM_CTRL_ALARM_ONLY;
|
|
|
- _globalPowerMangerTemp->global_over_manager->product_vol_over_upper_threshold_ctrl = ALARM_CTRL_ALARM_ONLY;
|
|
|
-
|
|
|
- if(dev_insert_power_manage_info(_globalDeviceManager->db,
|
|
|
- _globalDeviceManager->_globalDevInfo.product_id,
|
|
|
- _globalPowerMangerTemp->product_ch_id,
|
|
|
- _globalPowerMangerTemp)!=0)
|
|
|
- {
|
|
|
- log_e("address %d chn %d data inserted error.\n",i,chn);
|
|
|
- return 0;
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
- _globalPowerMangerTemp->product_saddr = i ;
|
|
|
- _globalPowerMangerTemp->product_ch_type = type;
|
|
|
- _globalPowerMangerTemp->product_ch_id = chn;
|
|
|
- if (dev_update_power_manage_genera_info_addr(__globalDeviceManage.db, _globalDeviceManager->_globalDevInfo.product_id, _globalPowerMangerTemp->product_saddr, _globalPowerMangerTemp->product_ch_addr, _globalPowerMangerTemp) != 0)
|
|
|
- {
|
|
|
- log_e("update pwr general data err.");
|
|
|
- }
|
|
|
- //添加到队尾
|
|
|
- list_add_tail(&_globalPowerMangerTemp->list,&_globalDeviceManager->_globalPowerManger.list);
|
|
|
- chn+=1;
|
|
|
- }
|
|
|
- }
|
|
|
- break;
|
|
|
- case TREE_AC_TYPE: // 三相供电
|
|
|
- {
|
|
|
- log_i("TreeAC_TYPE!\n");
|
|
|
- GlobalPowerManger *_globalPowerMangerTemp=NULL;
|
|
|
- for (size_t j = 0; j < nMaxChn; j++)
|
|
|
- {
|
|
|
- if (_globalDeviceManager->_globalDevInfo.product_pwr_type == SmartPDU_Tree_AC_One)
|
|
|
- {
|
|
|
- log_i("TreeAC_TYPE_3-1!\n");
|
|
|
- _globalPowerMangerTemp = (GlobalPowerManger *)malloc(sizeof(GlobalPowerManger));
|
|
|
- if (_globalPowerMangerTemp == NULL)
|
|
|
- {
|
|
|
- log_e("_globalPowerManger malloc error.\n");
|
|
|
- return -1;
|
|
|
- }
|
|
|
- memset(_globalPowerMangerTemp, 0, sizeof(GlobalPowerManger));
|
|
|
- INIT_LIST_HEAD(&_globalPowerMangerTemp->list_Tree_AC);
|
|
|
- _globalPowerMangerTemp->global_over_manager = (GlobalOverManager *)malloc(sizeof(GlobalOverManager));
|
|
|
- if (_globalPowerMangerTemp->global_over_manager == NULL)
|
|
|
- {
|
|
|
- log_e("_globalPowerManger->global_over_manager malloc error.\n");
|
|
|
- return -1;
|
|
|
- }
|
|
|
- memset(_globalPowerMangerTemp->global_over_manager, 0, sizeof(GlobalOverManager));
|
|
|
- // 查询是否由通道信息
|
|
|
- ret = dev_get_power_manage_info(_globalDeviceManager->db,
|
|
|
- _globalDeviceManager->_globalDevInfo.product_id, i,
|
|
|
- j + 1, // 1*8+j
|
|
|
- _globalPowerMangerTemp);
|
|
|
- _globalPowerMangerTemp->product_ch_addr = j + 1;
|
|
|
- // 未查询到信息 则插入
|
|
|
- if (ret == -1)
|
|
|
- {
|
|
|
- _globalPowerMangerTemp->product_id = _globalDeviceManager->_globalDevInfo.product_id;
|
|
|
- _globalPowerMangerTemp->product_saddr = i;
|
|
|
- _globalPowerMangerTemp->product_ch_id = chn;
|
|
|
- _globalPowerMangerTemp->product_ch_addr = j + 1;
|
|
|
- sprintf(_globalPowerMangerTemp->product_ch_name, "CH%d", _globalPowerMangerTemp->product_ch_id);
|
|
|
- _globalPowerMangerTemp->product_ch_type = type;
|
|
|
- _globalPowerMangerTemp->product_ch_status = 0;
|
|
|
- _globalPowerMangerTemp->product_ch_NF_status= 0;
|
|
|
-
|
|
|
- _globalPowerMangerTemp->product_ch_start_delay = 1000 * (chn%nGroups!=0?chn%nGroups:nGroups);
|
|
|
- _globalPowerMangerTemp->product_ch_stop_delay = 1000 * (chn%nGroups!=0?chn%nGroups:nGroups);
|
|
|
-
|
|
|
- _globalPowerMangerTemp->global_over_manager->product_cur_over_upper_threshold_ctrl = ALARM_CTRL_ALARM_ONLY; // 默认超限只报警
|
|
|
- _globalPowerMangerTemp->global_over_manager->product_pwr_over_upper_threshold_ctrl = ALARM_CTRL_ALARM_ONLY;
|
|
|
- _globalPowerMangerTemp->global_over_manager->product_pwrcon_over_upper_threshold_ctrl = ALARM_CTRL_ALARM_ONLY;
|
|
|
- _globalPowerMangerTemp->global_over_manager->product_vol_over_lower_threshold_ctrl = ALARM_CTRL_ALARM_ONLY;
|
|
|
- _globalPowerMangerTemp->global_over_manager->product_vol_over_upper_threshold_ctrl =ALARM_CTRL_ALARM_ONLY;
|
|
|
-
|
|
|
- if (dev_insert_power_manage_info(_globalDeviceManager->db,
|
|
|
- _globalDeviceManager->_globalDevInfo.product_id,
|
|
|
- _globalPowerMangerTemp->product_ch_id,
|
|
|
- _globalPowerMangerTemp) != 0)
|
|
|
- {
|
|
|
- log_e("address %d chn %d data inserted error.\n", i, chn);
|
|
|
- return 0;
|
|
|
- }
|
|
|
- }
|
|
|
- _globalPowerMangerTemp->product_saddr = i;
|
|
|
- _globalPowerMangerTemp->product_ch_type = type;
|
|
|
- _globalPowerMangerTemp->product_ch_id = chn;
|
|
|
- if (dev_update_power_manage_genera_info_addr(__globalDeviceManage.db, _globalDeviceManager->_globalDevInfo.product_id, _globalPowerMangerTemp->product_saddr, _globalPowerMangerTemp->product_ch_addr, _globalPowerMangerTemp) != 0)
|
|
|
- {
|
|
|
- log_e("update pwr general data err.");
|
|
|
- }
|
|
|
- // 添加到队尾
|
|
|
- list_add_tail(&_globalPowerMangerTemp->list, &_globalDeviceManager->_globalPowerManger.list);
|
|
|
- chn += 1;
|
|
|
- // 初始化三相子通道三进1出
|
|
|
- GlobalTreeACManager *_globalTACManager = NULL;
|
|
|
- for (size_t indexT = 0; indexT < 3; indexT++)
|
|
|
- {
|
|
|
- _globalTACManager = (GlobalTreeACManager *)malloc(sizeof(GlobalTreeACManager));
|
|
|
- memset(_globalTACManager, 0, sizeof(GlobalTreeACManager));
|
|
|
- if (_globalTACManager == NULL)
|
|
|
- {
|
|
|
- log_e("_globalTACManager malloc error.\n");
|
|
|
- return -1;
|
|
|
- }
|
|
|
- _globalTACManager->global_over_manager = (GlobalOverManager *)malloc(sizeof(GlobalOverManager));
|
|
|
- memset(_globalTACManager->global_over_manager, 0, sizeof(GlobalOverManager));
|
|
|
- if (_globalTACManager->global_over_manager == NULL)
|
|
|
- {
|
|
|
- log_e("_globalTACManager->global_over_manager malloc error.\n");
|
|
|
- return -1;
|
|
|
- }
|
|
|
- ret = dev_get_t_ac_power_manage_info(_globalDeviceManager->db,
|
|
|
- _globalDeviceManager->_globalDevInfo.product_id, i,
|
|
|
- j + 1, // 1*8+j
|
|
|
- nTac_chn,
|
|
|
- _globalTACManager);
|
|
|
- _globalTACManager->product_ch_addr = j + 1;
|
|
|
- // 未查询到信息 则插入
|
|
|
- if (ret == -1)
|
|
|
- {
|
|
|
- _globalTACManager->product_id = _globalDeviceManager->_globalDevInfo.product_id;
|
|
|
- _globalTACManager->product_saddr = i;
|
|
|
- _globalTACManager->product_ch_id = _globalPowerMangerTemp->product_ch_id;
|
|
|
- _globalTACManager->product_ch_addr = j + 1;
|
|
|
- _globalTACManager->product_ph_id = nTac_chn;
|
|
|
- _globalTACManager->product_ph_type = indexT;
|
|
|
- _globalTACManager->product_ph_outputType = 2; // 1三相2单相
|
|
|
- if (indexT == (j + 3) % 3)
|
|
|
- {
|
|
|
- _globalTACManager->product_ph_outputStatus = 1; // 1输出2不输出
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- _globalTACManager->product_ph_outputStatus = 2; // 1输出2不输出
|
|
|
- }
|
|
|
-
|
|
|
- if (dev_insert_t_ac_power_manage_info(_globalDeviceManager->db,
|
|
|
- _globalDeviceManager->_globalDevInfo.product_id,
|
|
|
- _globalTACManager->product_ch_id,
|
|
|
- _globalTACManager) != 0)
|
|
|
- {
|
|
|
- log_e("address %d ph_chn %d data inserted error.\n", i, nTac_chn);
|
|
|
- return 0;
|
|
|
- }
|
|
|
- }
|
|
|
- // 绑定到三项通道
|
|
|
- _globalTACManager->product_saddr = i;
|
|
|
- _globalTACManager->product_ph_type = indexT;
|
|
|
- if (_globalPowerMangerTemp)
|
|
|
- {
|
|
|
- list_add_tail(&_globalTACManager->list_Tree_AC, &_globalPowerMangerTemp->list_Tree_AC);
|
|
|
- }
|
|
|
- nTac_chn += 1;
|
|
|
- }
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- log_i("TreeAC_TYPE_3-3!\n");
|
|
|
- if ((j + 3) % 3 == 0) // 线路段初始化
|
|
|
- {
|
|
|
- _globalPowerMangerTemp = (GlobalPowerManger *)malloc(sizeof(GlobalPowerManger));
|
|
|
- if (_globalPowerMangerTemp == NULL)
|
|
|
- {
|
|
|
- log_e("_globalPowerManger malloc error.\n");
|
|
|
- return -1;
|
|
|
- }
|
|
|
- memset(_globalPowerMangerTemp, 0, sizeof(GlobalPowerManger));
|
|
|
- INIT_LIST_HEAD(&_globalPowerMangerTemp->list_Tree_AC);
|
|
|
- _globalPowerMangerTemp->global_over_manager = (GlobalOverManager *)malloc(sizeof(GlobalOverManager));
|
|
|
- if (_globalPowerMangerTemp->global_over_manager == NULL)
|
|
|
- {
|
|
|
- log_e("_globalPowerManger->global_over_manager malloc error.\n");
|
|
|
- return -1;
|
|
|
- }
|
|
|
- memset(_globalPowerMangerTemp->global_over_manager, 0, sizeof(GlobalOverManager));
|
|
|
- // 查询是否由通道信息
|
|
|
- ret = dev_get_power_manage_info(_globalDeviceManager->db,
|
|
|
- _globalDeviceManager->_globalDevInfo.product_id, i,
|
|
|
- j / 3 + 1, // 1*8+j
|
|
|
- _globalPowerMangerTemp);
|
|
|
- _globalPowerMangerTemp->product_ch_addr = j / 3 + 1;
|
|
|
- // 未查询到信息 则插入
|
|
|
- if (ret == -1)
|
|
|
- {
|
|
|
- _globalPowerMangerTemp->product_id = _globalDeviceManager->_globalDevInfo.product_id;
|
|
|
- _globalPowerMangerTemp->product_saddr = i;
|
|
|
- _globalPowerMangerTemp->product_ch_id = chn;
|
|
|
- _globalPowerMangerTemp->product_ch_addr = j / 3 + 1;
|
|
|
- sprintf(_globalPowerMangerTemp->product_ch_name, "CH%d", _globalPowerMangerTemp->product_ch_id);
|
|
|
- _globalPowerMangerTemp->product_ch_type = type;
|
|
|
- _globalPowerMangerTemp->product_ch_status = 0;
|
|
|
- _globalPowerMangerTemp->product_ch_NF_status= 0;
|
|
|
-
|
|
|
- _globalPowerMangerTemp->product_ch_start_delay = 1000 * (chn%nGroups!=0?chn%nGroups:nGroups);
|
|
|
- _globalPowerMangerTemp->product_ch_stop_delay = 1000 * (chn%nGroups!=0?chn%nGroups:nGroups);
|
|
|
-
|
|
|
- _globalPowerMangerTemp->global_over_manager->product_cur_over_upper_threshold_ctrl = ALARM_CTRL_ALARM_ONLY; // 默认超限只报警
|
|
|
- _globalPowerMangerTemp->global_over_manager->product_pwr_over_upper_threshold_ctrl = ALARM_CTRL_ALARM_ONLY;
|
|
|
- _globalPowerMangerTemp->global_over_manager->product_pwrcon_over_upper_threshold_ctrl = ALARM_CTRL_ALARM_ONLY;
|
|
|
- _globalPowerMangerTemp->global_over_manager->product_vol_over_lower_threshold_ctrl = ALARM_CTRL_ALARM_ONLY;
|
|
|
- _globalPowerMangerTemp->global_over_manager->product_vol_over_upper_threshold_ctrl = ALARM_CTRL_ALARM_ONLY;
|
|
|
-
|
|
|
- if (dev_insert_power_manage_info(_globalDeviceManager->db,
|
|
|
- _globalDeviceManager->_globalDevInfo.product_id,
|
|
|
- _globalPowerMangerTemp->product_ch_id,
|
|
|
- _globalPowerMangerTemp) != 0)
|
|
|
- {
|
|
|
- log_e("address %d chn %d data inserted error.\n", i, chn);
|
|
|
- return 0;
|
|
|
- }
|
|
|
- }
|
|
|
- _globalPowerMangerTemp->product_saddr = i;
|
|
|
- _globalPowerMangerTemp->product_ch_type = type;
|
|
|
- _globalPowerMangerTemp->product_ch_id = chn;
|
|
|
- if (dev_update_power_manage_genera_info_addr(__globalDeviceManage.db, _globalDeviceManager->_globalDevInfo.product_id, _globalPowerMangerTemp->product_saddr,_globalPowerMangerTemp->product_ch_addr, _globalPowerMangerTemp) != 0)
|
|
|
- {
|
|
|
- log_e("update pwr general data err.");
|
|
|
- }
|
|
|
- // 添加到队尾
|
|
|
- list_add_tail(&_globalPowerMangerTemp->list, &_globalDeviceManager->_globalPowerManger.list);
|
|
|
- chn += 1;
|
|
|
- }
|
|
|
- // 初始化三相子通道三进三出
|
|
|
- GlobalTreeACManager *_globalTACManager = NULL;
|
|
|
- _globalTACManager = (GlobalTreeACManager *)malloc(sizeof(GlobalTreeACManager));
|
|
|
- memset(_globalTACManager, 0, sizeof(GlobalTreeACManager));
|
|
|
- if (_globalTACManager == NULL)
|
|
|
- {
|
|
|
- log_e("_globalTACManager malloc error.\n");
|
|
|
- return -1;
|
|
|
- }
|
|
|
- _globalTACManager->global_over_manager = (GlobalOverManager *)malloc(sizeof(GlobalOverManager));
|
|
|
- memset(_globalTACManager->global_over_manager, 0, sizeof(GlobalOverManager));
|
|
|
- if (_globalTACManager->global_over_manager == NULL)
|
|
|
- {
|
|
|
- log_e("_globalTACManager->global_over_manager malloc error.\n");
|
|
|
- return -1;
|
|
|
- }
|
|
|
- ret = dev_get_t_ac_power_manage_info(_globalDeviceManager->db,
|
|
|
- _globalDeviceManager->_globalDevInfo.product_id, i,
|
|
|
- j + 1, // 1*8+j
|
|
|
- nTac_chn,
|
|
|
- _globalTACManager);
|
|
|
- _globalTACManager->product_ch_addr = j + 1;
|
|
|
- // 未查询到信息 则插入
|
|
|
- if (ret == -1)
|
|
|
- {
|
|
|
- _globalTACManager->product_id = _globalDeviceManager->_globalDevInfo.product_id;
|
|
|
- _globalTACManager->product_saddr = i;
|
|
|
- _globalTACManager->product_ch_id = _globalPowerMangerTemp->product_ch_id;
|
|
|
- _globalTACManager->product_ch_addr = j + 1;
|
|
|
- _globalTACManager->product_ph_id = nTac_chn;
|
|
|
- _globalTACManager->product_ph_type = (j + 3) % 3;
|
|
|
- _globalTACManager->product_ph_outputType = 1; // 1三相2单相
|
|
|
- _globalTACManager->product_ph_outputStatus = 1; // 1输出
|
|
|
- if (dev_insert_t_ac_power_manage_info(_globalDeviceManager->db,
|
|
|
- _globalDeviceManager->_globalDevInfo.product_id,
|
|
|
- _globalTACManager->product_ch_id,
|
|
|
- _globalTACManager) != 0)
|
|
|
- {
|
|
|
- log_e("address %d ph_chn %d data inserted error.\n", i, nTac_chn);
|
|
|
- return 0;
|
|
|
- }
|
|
|
- }
|
|
|
- // 绑定到三项通道
|
|
|
- _globalTACManager->product_saddr = i;
|
|
|
- _globalTACManager->product_ph_type = (j + 3) % 3;
|
|
|
- if (_globalPowerMangerTemp)
|
|
|
- {
|
|
|
- list_add_tail(&_globalTACManager->list_Tree_AC, &_globalPowerMangerTemp->list_Tree_AC);
|
|
|
- }
|
|
|
- nTac_chn += 1;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- sprintf(strLog,"%s$|$通道",language_alarm_Init_Success[0]);
|
|
|
- char number[10];
|
|
|
- sprintf(number,"%d",chn-1);
|
|
|
- dev_Alarm_Run_message(_globalDeviceManager,strLog,number);
|
|
|
- //获取数据库中的定时数据
|
|
|
- ret=dev_get_power_ds(_globalDeviceManager->db,&_globalDeviceManager->_globalPowerManger,NULL);
|
|
|
-
|
|
|
-*/
|
|
|
#if 1
|
|
|
//初始化传感器列表
|
|
|
INIT_LIST_HEAD(&_globalDeviceManager->_globalSensorManger.list);
|
|
|
@@ -2527,9 +1960,5 @@ int _global_device_manage_init(GlobalDeviceManager* _globalDeviceManager)
|
|
|
//通知smartUPG,app已经运行起来
|
|
|
upg_init();
|
|
|
|
|
|
- while(1)
|
|
|
- {
|
|
|
- sleep(1);
|
|
|
- }
|
|
|
return 0;
|
|
|
}
|