|
|
@@ -111,10 +111,9 @@ static int upgrade_check(Modbus_Manger *mm, uint16_t addr)
|
|
|
|
|
|
static int upgrade_proc(char *path, Modbus_Manger *mm)
|
|
|
{
|
|
|
- int i,j,r,maxCh=2;//MAX_CHN_COUNT;
|
|
|
+ int i,j,r;
|
|
|
buf_t fbuf;
|
|
|
GlobalDeviceManager *dm=&__globalDeviceManage;
|
|
|
- GlobalPowerCtrlBoard *pboard=dm->_all_ctrl_board;
|
|
|
|
|
|
#define RETRY_MAX 3
|
|
|
|
|
|
@@ -125,8 +124,8 @@ static int upgrade_proc(char *path, Modbus_Manger *mm)
|
|
|
|
|
|
//broad upgrade file
|
|
|
upgrade_send(mm, 1, fbuf.buf, fbuf.dlen);
|
|
|
- for(i=0; i<maxCh; i++) {
|
|
|
- if(pboard[i].product_saddr==0) {
|
|
|
+ for(i=0; i<dm->brdMax; i++) {
|
|
|
+ if(dm->pPowerBoard[i].product_saddr==0) {
|
|
|
continue;
|
|
|
}
|
|
|
|
|
|
@@ -200,6 +199,8 @@ static void* power_thread(void* arg)
|
|
|
thread_handle_t *h=(thread_handle_t*)arg;
|
|
|
GlobalDeviceManager* _globalDeviceManager = (GlobalDeviceManager*)h->arg;
|
|
|
_PowerDSManage_t* _powerDsManageTemp = NULL ;
|
|
|
+ PowerTotal_t *ptotal=&_globalDeviceManager->_globalDevInfo.ptotal;
|
|
|
+
|
|
|
dev_search_last_Index(_globalDeviceManager->db, &lastIndex, tabPower); // 查询日志最大点
|
|
|
dev_search_last_Index(_globalDeviceManager->db, &lastIndex3, tabPower3); // 查询日志最大点
|
|
|
InitHashTable(_globalDeviceManager);
|
|
|
@@ -240,53 +241,53 @@ static void* power_thread(void* arg)
|
|
|
#if (1)
|
|
|
memset(&_globalTotalPowerInfo, 0, sizeof(GlobalPowerInfo));
|
|
|
memset(&_globalPowerWarningInfo, 0, sizeof(PowerWarningInfo));
|
|
|
- for (size_t i = 0; i < MAX_CHN_COUNT; i++)
|
|
|
+ for (size_t i = 0; i < ptotal->brdMax; i++)
|
|
|
{
|
|
|
- if (_globalDeviceManager->_all_ctrl_board[i].product_saddr == 0)
|
|
|
+ if (_globalDeviceManager->pPowerBoard[i].product_saddr == 0)
|
|
|
{
|
|
|
continue;
|
|
|
}
|
|
|
ret=g_switch_get_all_out_info(&_globalDeviceManager->_globalRelaySampManger,
|
|
|
- _globalDeviceManager->_all_ctrl_board[i].product_type,
|
|
|
- _globalDeviceManager->_all_ctrl_board[i].product_saddr,
|
|
|
- _globalDeviceManager->_all_ctrl_board[i].product_number,
|
|
|
- _globalDeviceManager->_all_ctrl_board[i]._PowerInfo,
|
|
|
- _globalDeviceManager->_all_ctrl_board[i]._PowerWarninginfo);
|
|
|
+ _globalDeviceManager->pPowerBoard[i].product_type,
|
|
|
+ _globalDeviceManager->pPowerBoard[i].product_saddr,
|
|
|
+ _globalDeviceManager->pPowerBoard[i].product_number,
|
|
|
+ _globalDeviceManager->pPowerBoard[i]._PowerInfo,
|
|
|
+ _globalDeviceManager->pPowerBoard[i]._PowerWarninginfo);
|
|
|
if (ret<0)
|
|
|
{
|
|
|
usleep(usleepTime);
|
|
|
ret = g_switch_get_all_out_info(&_globalDeviceManager->_globalRelaySampManger,
|
|
|
- _globalDeviceManager->_all_ctrl_board[i].product_type,
|
|
|
- _globalDeviceManager->_all_ctrl_board[i].product_saddr,
|
|
|
- _globalDeviceManager->_all_ctrl_board[i].product_number,
|
|
|
- _globalDeviceManager->_all_ctrl_board[i]._PowerInfo,
|
|
|
- _globalDeviceManager->_all_ctrl_board[i]._PowerWarninginfo);
|
|
|
+ _globalDeviceManager->pPowerBoard[i].product_type,
|
|
|
+ _globalDeviceManager->pPowerBoard[i].product_saddr,
|
|
|
+ _globalDeviceManager->pPowerBoard[i].product_number,
|
|
|
+ _globalDeviceManager->pPowerBoard[i]._PowerInfo,
|
|
|
+ _globalDeviceManager->pPowerBoard[i]._PowerWarninginfo);
|
|
|
}
|
|
|
// 输入总信息(三相)(后续应同步所有类型)
|
|
|
- if (_globalDeviceManager->_all_ctrl_board[i].product_saddr != 0 && _globalDeviceManager->_all_ctrl_board[i].product_type == TREE_AC_TYPE)
|
|
|
+ if (_globalDeviceManager->pPowerBoard[i].product_saddr != 0 && _globalDeviceManager->pPowerBoard[i].product_type == TREE_AC_TYPE)
|
|
|
{
|
|
|
usleep(usleepTime);
|
|
|
ret = g_switch_get_t_ac_in_info(&_globalDeviceManager->_globalRelaySampManger,
|
|
|
- _globalDeviceManager->_all_ctrl_board[i].product_saddr, // saadr
|
|
|
- _globalDeviceManager->_all_ctrl_board[i]._globalPowerInManger._PowerInfo,
|
|
|
- _globalDeviceManager->_all_ctrl_board[i]._globalPowerInManger._PowerWarninginfo);
|
|
|
+ _globalDeviceManager->pPowerBoard[i].product_saddr, // saadr
|
|
|
+ _globalDeviceManager->pPowerBoard[i]._globalPowerInManger._PowerInfo,
|
|
|
+ _globalDeviceManager->pPowerBoard[i]._globalPowerInManger._PowerWarninginfo);
|
|
|
if (ret < 0)
|
|
|
{
|
|
|
usleep(usleepTime);
|
|
|
ret = g_switch_get_t_ac_in_info(&_globalDeviceManager->_globalRelaySampManger,
|
|
|
- _globalDeviceManager->_all_ctrl_board[i].product_saddr, // saadr
|
|
|
- _globalDeviceManager->_all_ctrl_board[i]._globalPowerInManger._PowerInfo,
|
|
|
- _globalDeviceManager->_all_ctrl_board[i]._globalPowerInManger._PowerWarninginfo);
|
|
|
+ _globalDeviceManager->pPowerBoard[i].product_saddr, // saadr
|
|
|
+ _globalDeviceManager->pPowerBoard[i]._globalPowerInManger._PowerInfo,
|
|
|
+ _globalDeviceManager->pPowerBoard[i]._globalPowerInManger._PowerWarninginfo);
|
|
|
}
|
|
|
ret = g_switch_set_t_ac_alarm_missing_ph(&_globalDeviceManager->_globalRelaySampManger,
|
|
|
- _globalDeviceManager->_all_ctrl_board[i].product_saddr,
|
|
|
- _globalDeviceManager->_all_ctrl_board[i]._globalPowerInManger.product_MissingPH);
|
|
|
+ _globalDeviceManager->pPowerBoard[i].product_saddr,
|
|
|
+ _globalDeviceManager->pPowerBoard[i]._globalPowerInManger.product_MissingPH);
|
|
|
if (ret < 0)
|
|
|
{
|
|
|
usleep(usleepTime);
|
|
|
ret = g_switch_set_t_ac_alarm_missing_ph(&_globalDeviceManager->_globalRelaySampManger,
|
|
|
- _globalDeviceManager->_all_ctrl_board[i].product_saddr,
|
|
|
- _globalDeviceManager->_all_ctrl_board[i]._globalPowerInManger.product_MissingPH);
|
|
|
+ _globalDeviceManager->pPowerBoard[i].product_saddr,
|
|
|
+ _globalDeviceManager->pPowerBoard[i]._globalPowerInManger.product_MissingPH);
|
|
|
}
|
|
|
}
|
|
|
//usleep(usleepTime);
|
|
|
@@ -314,7 +315,7 @@ static void* power_thread(void* arg)
|
|
|
{
|
|
|
//获取通道类型
|
|
|
|
|
|
- if (!(_globalPowerMangerTemp->product_saddr < MAX_CHN_COUNT && _globalPowerMangerTemp->product_saddr > 0))
|
|
|
+ if (!(_globalPowerMangerTemp->product_saddr < ptotal->brdMax && _globalPowerMangerTemp->product_saddr > 0))
|
|
|
{
|
|
|
continue;
|
|
|
}
|
|
|
@@ -324,7 +325,7 @@ static void* power_thread(void* arg)
|
|
|
}
|
|
|
//log_d("ch%d cpy address:%d,chraddr:%d.\n",_globalPowerMangerTemp->product_ch_id,_globalPowerMangerTemp->product_saddr,_globalPowerMangerTemp->product_ch_addr);
|
|
|
memcpy(&_globalPowerInfo._power_info,
|
|
|
- &_globalDeviceManager->_all_ctrl_board[(int)_globalPowerMangerTemp->product_saddr]._PowerInfo[(int)_globalPowerMangerTemp->product_ch_addr-1],
|
|
|
+ &_globalDeviceManager->pPowerBoard[(int)_globalPowerMangerTemp->product_saddr]._PowerInfo[(int)_globalPowerMangerTemp->product_ch_addr-1],
|
|
|
sizeof(PowerInfo));
|
|
|
if(_globalDeviceManager->_globalDevInfo.product.pwr_type == SmartPDU_AC ||
|
|
|
_globalDeviceManager->_globalDevInfo.product.pwr_type == SmartPDU_DC)
|
|
|
@@ -344,7 +345,7 @@ static void* power_thread(void* arg)
|
|
|
}
|
|
|
|
|
|
memcpy(&_globalPowerWarningInfo,
|
|
|
- &_globalDeviceManager->_all_ctrl_board[(int)_globalPowerMangerTemp->product_saddr]._PowerWarninginfo[(int)_globalPowerMangerTemp->product_ch_addr-1],
|
|
|
+ &_globalDeviceManager->pPowerBoard[(int)_globalPowerMangerTemp->product_saddr]._PowerWarninginfo[(int)_globalPowerMangerTemp->product_ch_addr-1],
|
|
|
sizeof(PowerWarningInfo));
|
|
|
switch (_globalPowerMangerTemp->product_ch_type)
|
|
|
{
|
|
|
@@ -438,8 +439,8 @@ static void* power_thread(void* arg)
|
|
|
{
|
|
|
continue;
|
|
|
}
|
|
|
- memcpy(&_pTreeACPowerMangerTemp->_PowerInfo, &_globalDeviceManager->_all_ctrl_board[_pTreeACPowerMangerTemp->product_saddr]._PowerInfo[_pTreeACPowerMangerTemp->product_ch_addr - 1], sizeof(PowerInfo));
|
|
|
- memcpy(&_pTreeACPowerMangerTemp->_PowerWarninginfo, &_globalDeviceManager->_all_ctrl_board[_pTreeACPowerMangerTemp->product_saddr]._PowerWarninginfo[_pTreeACPowerMangerTemp->product_ch_addr - 1], sizeof(PowerWarningInfo));
|
|
|
+ memcpy(&_pTreeACPowerMangerTemp->_PowerInfo, &_globalDeviceManager->pPowerBoard[_pTreeACPowerMangerTemp->product_saddr]._PowerInfo[_pTreeACPowerMangerTemp->product_ch_addr - 1], sizeof(PowerInfo));
|
|
|
+ memcpy(&_pTreeACPowerMangerTemp->_PowerWarninginfo, &_globalDeviceManager->pPowerBoard[_pTreeACPowerMangerTemp->product_saddr]._PowerWarninginfo[_pTreeACPowerMangerTemp->product_ch_addr - 1], sizeof(PowerWarningInfo));
|
|
|
gettimeofday(&tv, NULL);
|
|
|
// t = localtime(&tv.tv_sec);
|
|
|
// 计算总三项总数据
|
|
|
@@ -679,11 +680,11 @@ static void* power_thread(void* arg)
|
|
|
{
|
|
|
continue;
|
|
|
}
|
|
|
- memcpy(&_pTreeACPowerMangerTemp->_PowerInfo,&_globalDeviceManager->_all_ctrl_board[_pTreeACPowerMangerTemp->product_saddr]._PowerInfo[_pTreeACPowerMangerTemp->product_ch_addr - 1],sizeof(PowerInfo));
|
|
|
- memcpy(&_globalTACWarningInfo,&_globalDeviceManager->_all_ctrl_board[_pTreeACPowerMangerTemp->product_saddr]._PowerWarninginfo[_pTreeACPowerMangerTemp->product_ch_addr - 1],sizeof(PowerWarningInfo));
|
|
|
+ memcpy(&_pTreeACPowerMangerTemp->_PowerInfo,&_globalDeviceManager->pPowerBoard[_pTreeACPowerMangerTemp->product_saddr]._PowerInfo[_pTreeACPowerMangerTemp->product_ch_addr - 1],sizeof(PowerInfo));
|
|
|
+ memcpy(&_globalTACWarningInfo,&_globalDeviceManager->pPowerBoard[_pTreeACPowerMangerTemp->product_saddr]._PowerWarninginfo[_pTreeACPowerMangerTemp->product_ch_addr - 1],sizeof(PowerWarningInfo));
|
|
|
gettimeofday(&tv, NULL);
|
|
|
// t = localtime(&tv.tv_sec);
|
|
|
- _globalDeviceManager->_all_ctrl_board[_pTreeACPowerMangerTemp->product_saddr]._globalPowerInManger._PowerInfo[k].freq=_globalDeviceManager->_all_ctrl_board[_pTreeACPowerMangerTemp->product_saddr]._globalPowerInManger._PowerInfo[k].freq> _pTreeACPowerMangerTemp->_PowerInfo.freq?_globalDeviceManager->_all_ctrl_board[_pTreeACPowerMangerTemp->product_saddr]._globalPowerInManger._PowerInfo[k].freq:_pTreeACPowerMangerTemp->_PowerInfo.freq;
|
|
|
+ _globalDeviceManager->pPowerBoard[_pTreeACPowerMangerTemp->product_saddr]._globalPowerInManger._PowerInfo[k].freq=_globalDeviceManager->pPowerBoard[_pTreeACPowerMangerTemp->product_saddr]._globalPowerInManger._PowerInfo[k].freq> _pTreeACPowerMangerTemp->_PowerInfo.freq?_globalDeviceManager->pPowerBoard[_pTreeACPowerMangerTemp->product_saddr]._globalPowerInManger._PowerInfo[k].freq:_pTreeACPowerMangerTemp->_PowerInfo.freq;
|
|
|
//计算总三项总数据
|
|
|
_globalPowerInfo._power_info.voltage = _pTreeACPowerMangerTemp->_PowerInfo.voltage;
|
|
|
_globalPowerInfo._power_info.current += _pTreeACPowerMangerTemp->_PowerInfo.current;
|
|
|
@@ -865,8 +866,8 @@ static void* power_thread(void* arg)
|
|
|
if(_globalPowerWarningInfo.w_consumption)dev_Alarm_send_message(_globalDeviceManager,_globalPowerMangerTemp,WARNING_P_UP);
|
|
|
}
|
|
|
bool nMissPH=0;
|
|
|
- //memcpy(nMissPH,_globalDeviceManager->_all_ctrl_board[(int)_globalPowerMangerTemp->product_saddr]._globalPowerInManger.product_MissingPH,sizeof(nMissPH));
|
|
|
- nMissPH=_globalDeviceManager->_all_ctrl_board[(int)_globalPowerMangerTemp->product_saddr]._globalPowerInManger.product_MissingPH[0];
|
|
|
+ //memcpy(nMissPH,_globalDeviceManager->pPowerBoard[(int)_globalPowerMangerTemp->product_saddr]._globalPowerInManger.product_MissingPH,sizeof(nMissPH));
|
|
|
+ nMissPH=_globalDeviceManager->pPowerBoard[(int)_globalPowerMangerTemp->product_saddr]._globalPowerInManger.product_MissingPH[0];
|
|
|
if (_globalPowerMangerTemp->_PowerWarninginfo.w_phase_lossA!= (bool)nMissPH)
|
|
|
{
|
|
|
_globalPowerMangerTemp->_PowerWarninginfo.w_phase_lossA = (bool)nMissPH;
|
|
|
@@ -876,7 +877,7 @@ static void* power_thread(void* arg)
|
|
|
dev_Alarm_send_message(_globalDeviceManager, _globalPowerMangerTemp, 0);
|
|
|
}
|
|
|
_globalPowerWarningInfo.w_phase_lossA=nMissPH;
|
|
|
- nMissPH=_globalDeviceManager->_all_ctrl_board[(int)_globalPowerMangerTemp->product_saddr]._globalPowerInManger.product_MissingPH[1];
|
|
|
+ nMissPH=_globalDeviceManager->pPowerBoard[(int)_globalPowerMangerTemp->product_saddr]._globalPowerInManger.product_MissingPH[1];
|
|
|
if (_globalPowerMangerTemp->_PowerWarninginfo.w_phase_lossB != (bool)nMissPH)
|
|
|
{
|
|
|
_globalPowerMangerTemp->_PowerWarninginfo.w_phase_lossB = (bool)nMissPH;
|
|
|
@@ -885,7 +886,7 @@ static void* power_thread(void* arg)
|
|
|
dev_Alarm_send_message(_globalDeviceManager, _globalPowerMangerTemp, 1);
|
|
|
}
|
|
|
_globalPowerWarningInfo.w_phase_lossB=nMissPH;
|
|
|
- nMissPH=_globalDeviceManager->_all_ctrl_board[(int)_globalPowerMangerTemp->product_saddr]._globalPowerInManger.product_MissingPH[2];
|
|
|
+ nMissPH=_globalDeviceManager->pPowerBoard[(int)_globalPowerMangerTemp->product_saddr]._globalPowerInManger.product_MissingPH[2];
|
|
|
if (_globalPowerMangerTemp->_PowerWarninginfo.w_phase_lossC != (bool)nMissPH)
|
|
|
{
|
|
|
_globalPowerMangerTemp->_PowerWarninginfo.w_phase_lossC = (bool)nMissPH;
|
|
|
@@ -987,26 +988,26 @@ static void* power_thread(void* arg)
|
|
|
}
|
|
|
memset(&_globalDeviceManager->_globalPowerManger._PowerInfo, 0, sizeof(PowerInfo));
|
|
|
memset(&_pTreeACPowerMangerTemp->_PowerInfo, 0, sizeof(_globalPowerInfo._power_info));
|
|
|
- for (size_t i = 0; i < MAX_CHN_COUNT; i++)
|
|
|
+ for (size_t i = 0; i < ptotal->brdMax; i++)
|
|
|
{
|
|
|
- if (_globalDeviceManager->_all_ctrl_board[i].product_saddr == 0 || _globalDeviceManager->_all_ctrl_board[i].product_type != TREE_AC_TYPE)
|
|
|
+ if (_globalDeviceManager->pPowerBoard[i].product_saddr == 0 || _globalDeviceManager->pPowerBoard[i].product_type != TREE_AC_TYPE)
|
|
|
{
|
|
|
continue;
|
|
|
}
|
|
|
// 如果存在电压则置位如果都没有电压则保持0
|
|
|
- if (_globalDeviceManager->_all_ctrl_board[i]._globalPowerInManger._PowerInfo[nTreeACType].voltage != 0)
|
|
|
+ if (_globalDeviceManager->pPowerBoard[i]._globalPowerInManger._PowerInfo[nTreeACType].voltage != 0)
|
|
|
{
|
|
|
- _pTreeACPowerMangerTemp->_PowerInfo.voltage = _globalDeviceManager->_all_ctrl_board[i]._globalPowerInManger._PowerInfo[nTreeACType].voltage;
|
|
|
+ _pTreeACPowerMangerTemp->_PowerInfo.voltage = _globalDeviceManager->pPowerBoard[i]._globalPowerInManger._PowerInfo[nTreeACType].voltage;
|
|
|
}
|
|
|
- _pTreeACPowerMangerTemp->_PowerInfo.current += _globalDeviceManager->_all_ctrl_board[i]._globalPowerInManger._PowerInfo[nTreeACType].current;
|
|
|
- _pTreeACPowerMangerTemp->_PowerInfo.power += _globalDeviceManager->_all_ctrl_board[i]._globalPowerInManger._PowerInfo[nTreeACType].power;
|
|
|
+ _pTreeACPowerMangerTemp->_PowerInfo.current += _globalDeviceManager->pPowerBoard[i]._globalPowerInManger._PowerInfo[nTreeACType].current;
|
|
|
+ _pTreeACPowerMangerTemp->_PowerInfo.power += _globalDeviceManager->pPowerBoard[i]._globalPowerInManger._PowerInfo[nTreeACType].power;
|
|
|
// if (_globalTotalPowerInfo._power_info.freq != 0)
|
|
|
// {
|
|
|
// _pTreeACPowerMangerTemp->_PowerInfo.freq = _globalTotalPowerInfo._power_info.freq;
|
|
|
// }
|
|
|
- _pTreeACPowerMangerTemp->_PowerInfo.freq = _globalDeviceManager->_all_ctrl_board[i]._globalPowerInManger._PowerInfo[nTreeACType].freq> _pTreeACPowerMangerTemp->_PowerInfo.freq? _globalDeviceManager->_all_ctrl_board[i]._globalPowerInManger._PowerInfo[nTreeACType].freq: _pTreeACPowerMangerTemp->_PowerInfo.freq;
|
|
|
- _pTreeACPowerMangerTemp->_PowerInfo.consumption += _globalDeviceManager->_all_ctrl_board[i]._globalPowerInManger._PowerInfo[nTreeACType].consumption;
|
|
|
- _pTreeACPowerMangerTemp->_PowerInfo.factor = _globalDeviceManager->_all_ctrl_board[i]._globalPowerInManger._PowerInfo[nTreeACType].factor;
|
|
|
+ _pTreeACPowerMangerTemp->_PowerInfo.freq = _globalDeviceManager->pPowerBoard[i]._globalPowerInManger._PowerInfo[nTreeACType].freq> _pTreeACPowerMangerTemp->_PowerInfo.freq? _globalDeviceManager->pPowerBoard[i]._globalPowerInManger._PowerInfo[nTreeACType].freq: _pTreeACPowerMangerTemp->_PowerInfo.freq;
|
|
|
+ _pTreeACPowerMangerTemp->_PowerInfo.consumption += _globalDeviceManager->pPowerBoard[i]._globalPowerInManger._PowerInfo[nTreeACType].consumption;
|
|
|
+ _pTreeACPowerMangerTemp->_PowerInfo.factor = _globalDeviceManager->pPowerBoard[i]._globalPowerInManger._PowerInfo[nTreeACType].factor;
|
|
|
}
|
|
|
if (_globalDeviceManager->triphasic_mmap)
|
|
|
{
|
|
|
@@ -1413,24 +1414,24 @@ static void* breaker_thread(void *arg)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- if (temp->breaker_gather_addr>0&&temp->breaker_gather_addr<=MAX_CHN_COUNT)
|
|
|
+ if (temp->breaker_gather_addr>0&&temp->breaker_gather_addr<=_globalDeviceManager->brdMax)
|
|
|
{
|
|
|
- for (size_t i = 0; i < MAX_CHN_COUNT; i++)
|
|
|
+ for (size_t i = 0; i <= _globalDeviceManager->brdMax; i++)
|
|
|
{
|
|
|
- if (_globalDeviceManager->_all_ctrl_board[i].product_saddr != temp->breaker_gather_addr)
|
|
|
+ if (_globalDeviceManager->pPowerBoard[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,
|
|
|
+ _globalDeviceManager->pPowerBoard[i].product_type,
|
|
|
+ _globalDeviceManager->pPowerBoard[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,
|
|
|
+ _globalDeviceManager->pPowerBoard[i].product_type,
|
|
|
+ _globalDeviceManager->pPowerBoard[i].product_saddr,
|
|
|
temp);
|
|
|
}
|
|
|
break;
|
|
|
@@ -1729,7 +1730,7 @@ static void* shm_thread(void *arg)
|
|
|
// GlobalPowerInfo _globalPowerInfo;
|
|
|
// memset(&_globalPowerInfo._power_info, 0, sizeof(PowerInfo));
|
|
|
// memcpy(&_globalPowerInfo._power_info,
|
|
|
- // &_globalDeviceManager->_all_ctrl_board[0]._PowerInfo[0],
|
|
|
+ // &_globalDeviceManager->pPowerBoard[0]._PowerInfo[0],
|
|
|
// sizeof(PowerInfo));
|
|
|
_globalDeviceManager->g_shm_Data->fV = _globalPowerMangerTemp->_PowerInfo.voltage;
|
|
|
_globalDeviceManager->g_shm_Data->fA = _globalPowerMangerTemp->_PowerInfo.current;
|
|
|
@@ -2002,6 +2003,13 @@ int app_init(void)
|
|
|
|
|
|
//使用的通道
|
|
|
_globalDeviceManager->useSlaveCount = 0 ;
|
|
|
+ _globalDeviceManager->brdMax = _globalDeviceManager->_globalDevInfo.ptotal.brdMax;
|
|
|
+ _globalDeviceManager->pPowerBoard = malloc(sizeof(GlobalPowerCtrlBoard)*_globalDeviceManager->brdMax);
|
|
|
+ if(!_globalDeviceManager->pPowerBoard) {
|
|
|
+ log_e("pPowerBoard malloc failed, brdMax: %d\n", _globalDeviceManager->brdMax);
|
|
|
+ return -1 ;
|
|
|
+ }
|
|
|
+ g_switch_init(_globalDeviceManager->brdMax);
|
|
|
|
|
|
//链接数据库获取配置信息
|
|
|
sys_get_path(path, DATABASE_NAME);
|
|
|
@@ -2092,9 +2100,9 @@ int app_init(void)
|
|
|
{
|
|
|
__globalDeviceManage.nTreeACLshow=0;
|
|
|
_globalDeviceManager->useSlaveCount++;
|
|
|
- _globalDeviceManager->_all_ctrl_board[0].product_saddr = 0;
|
|
|
- _globalDeviceManager->_all_ctrl_board[0].product_number = -1;
|
|
|
- _globalDeviceManager->_all_ctrl_board[0].product_type = -1;
|
|
|
+ _globalDeviceManager->pPowerBoard[0].product_saddr = 0;
|
|
|
+ _globalDeviceManager->pPowerBoard[0].product_number = -1;
|
|
|
+ _globalDeviceManager->pPowerBoard[0].product_type = -1;
|
|
|
|
|
|
// 填充三相表
|
|
|
for (size_t TreeACindex = 0; TreeACindex < 3; TreeACindex++)
|