|
|
@@ -421,8 +421,11 @@ int g_switch_set_dc_stop_time_delay(void* manger,int saddr,unsigned int time)
|
|
|
int g_switch_set_ac_single_s_chn_ctrl(void* manger,int saddr,unsigned char chn,unsigned short sts)
|
|
|
{
|
|
|
unsigned int offset = 0;
|
|
|
- if(chn>=8)
|
|
|
- return -1;
|
|
|
+ if (chn >= 8)
|
|
|
+ return -1;
|
|
|
+ if (chn == -1)
|
|
|
+ return 1;
|
|
|
+
|
|
|
offset = _SWITCH_AC_SINGLE_S_CHN_STS+chn;
|
|
|
return g_modbus_write_reg(manger,saddr,offset,sts);
|
|
|
}
|
|
|
@@ -542,7 +545,11 @@ int g_switch_set_ac_single_threshold(void* manger,int saddr,char chn,GlobalOverM
|
|
|
data_buf[14] = data_temp;
|
|
|
data_buf[15] = data_temp>>16;
|
|
|
|
|
|
- offset = _SWITCH_AC_SINGLE_S_Threshold+chn*16;
|
|
|
+ if(chn==-1)
|
|
|
+ {
|
|
|
+ offset = _SWITCH_AC_TOTAL_Threshold;
|
|
|
+ }
|
|
|
+ else offset = _SWITCH_AC_SINGLE_S_Threshold+chn*16;
|
|
|
|
|
|
int ret= g_modbus_write_x_reg(manger,saddr,offset,16,data_buf);
|
|
|
|
|
|
@@ -1031,18 +1038,17 @@ int g_switch_set_all_single_threshold(void* manger,int ntype,int saddr,char chn,
|
|
|
int ret =0;
|
|
|
int sts=_globalPowerMangerTemp->_PowerInfo.status;
|
|
|
GlobalOverManager* _global_over_manager=&_globalPowerMangerTemp->global_over_manager;
|
|
|
- if (chn == 0)
|
|
|
+
|
|
|
+ //--chn为0时,屏蔽,因web前端暂时不支持单个控制板的总输入阈值设置 liyuezong 24.11.13
|
|
|
+ if (chn == 0)return ret;
|
|
|
+
|
|
|
+ //每个通道状态阈值及动作设置 chn为0时为设置总体阈值及动作
|
|
|
+ switch (ntype)
|
|
|
{
|
|
|
- ret = g_switch_set_t_ac_in_threshold(manger, 1, _global_over_manager);
|
|
|
- }
|
|
|
- else
|
|
|
+ case AC_SINGLE_S_TYPE:
|
|
|
+ case AC_SINGLE_B_TYPE:
|
|
|
{
|
|
|
- switch (ntype)
|
|
|
- {
|
|
|
- case AC_SINGLE_S_TYPE:
|
|
|
- case AC_SINGLE_B_TYPE:
|
|
|
- {
|
|
|
- ret = g_switch_set_ac_single_threshold(manger, saddr, (chn - 1), _global_over_manager);
|
|
|
+ ret = g_switch_set_ac_single_threshold(manger, saddr, (chn - 1), _global_over_manager);
|
|
|
if (_global_over_manager->product_vol_upper_enable == 1)
|
|
|
sts |= ENABLE_V_UP;
|
|
|
if (_global_over_manager->product_vol_lower_enable == 1)
|
|
|
@@ -1053,28 +1059,40 @@ int g_switch_set_all_single_threshold(void* manger,int ntype,int saddr,char chn,
|
|
|
sts |= ENABLE_W_UP;
|
|
|
if (_global_over_manager->product_pwrcon_upper_enable == 1)
|
|
|
sts |= ENABLE_P_UP;
|
|
|
- ret = g_switch_set_ac_alarm_ctrl(manger, saddr, (chn - 1), _global_over_manager);
|
|
|
- return g_switch_set_ac_single_s_chn_ctrl(manger, saddr, (chn - 1), sts);
|
|
|
- }
|
|
|
- break;
|
|
|
- case DC_OUT_TYPE:
|
|
|
- {
|
|
|
- // return g_switch_set_dc_ctrl();
|
|
|
- }
|
|
|
- break;
|
|
|
- case DCPDU_TYPE:
|
|
|
- {
|
|
|
- ret = g_switch_set_dcpdu_max_vol_threshold(manger, saddr, (chn - 1), _global_over_manager);
|
|
|
- ret = g_switch_set_dcpdu_min_vol_threshold(manger, saddr, (chn - 1), _global_over_manager);
|
|
|
- ret = g_switch_set_dcpdu_max_cur_threshold(manger, saddr, (chn - 1), _global_over_manager);
|
|
|
- ret =g_switch_set_dcpdu_max_power_threshold(manger, saddr, (chn - 1), _global_over_manager);
|
|
|
- ret =g_switch_set_dcpdu_max_pwrcon_threshold(manger, saddr, (chn - 1), _global_over_manager);
|
|
|
+ ret = g_switch_set_ac_alarm_ctrl(manger, saddr, (chn - 1), _global_over_manager);
|
|
|
+ return g_switch_set_ac_single_s_chn_ctrl(manger, saddr, (chn - 1), sts);
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case DC_OUT_TYPE:
|
|
|
+ {
|
|
|
+ // return g_switch_set_dc_ctrl();
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case DCPDU_TYPE:
|
|
|
+ {
|
|
|
+ ret = g_switch_set_dcpdu_max_vol_threshold(manger, saddr, (chn - 1), _global_over_manager);
|
|
|
+ ret = g_switch_set_dcpdu_min_vol_threshold(manger, saddr, (chn - 1), _global_over_manager);
|
|
|
+ ret = g_switch_set_dcpdu_max_cur_threshold(manger, saddr, (chn - 1), _global_over_manager);
|
|
|
+ ret = g_switch_set_dcpdu_max_power_threshold(manger, saddr, (chn - 1), _global_over_manager);
|
|
|
+ ret = g_switch_set_dcpdu_max_pwrcon_threshold(manger, saddr, (chn - 1), _global_over_manager);
|
|
|
|
|
|
- ret = g_switch_set_dcpdu_alarm_ctrl(manger, saddr, (chn - 1), _global_over_manager);
|
|
|
+ ret = g_switch_set_dcpdu_alarm_ctrl(manger, saddr, (chn - 1), _global_over_manager);
|
|
|
+ return ret;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case TREE_AC_TYPE:
|
|
|
+ {
|
|
|
+ if (chn == 0)
|
|
|
+ {
|
|
|
+ ret = g_switch_set_t_ac_in_threshold(manger, saddr, _global_over_manager);
|
|
|
+ ret = g_switch_set_t_ac_alarm_ctrl(manger, saddr, (chn - 1), _global_over_manager);
|
|
|
+ if (ret < 0)
|
|
|
+ {
|
|
|
+ log_e("Threshold AlarmCtrl Set Error=%s", modbus_strerror(errno));
|
|
|
+ }
|
|
|
return ret;
|
|
|
}
|
|
|
- break;
|
|
|
- case TREE_AC_TYPE:
|
|
|
+ else
|
|
|
{
|
|
|
ret = g_switch_set_t_ac_max_vol_threshold(manger, saddr, (chn - 1), _global_over_manager);
|
|
|
if (ret < 0)
|
|
|
@@ -1119,21 +1137,24 @@ int g_switch_set_all_single_threshold(void* manger,int ntype,int saddr,char chn,
|
|
|
if (__globalDeviceManage._globalDevInfo.product.pwr_type == SmartPDU_Tree_AC_One)
|
|
|
{
|
|
|
return g_switch_set_t_ac_phchn_ctrl(manger, saddr, (chn - 1), sts);
|
|
|
- }else{
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
return g_switch_set_t_ac_chn_ctrl(manger, saddr, (chn - 1), sts);
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
return ret;
|
|
|
}
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case AC_MULTI_S_TYPE:
|
|
|
+ case AC_MULTI_B_TYPE:
|
|
|
+ case DC_IN_TYPE:
|
|
|
+ default:
|
|
|
+ return 1;
|
|
|
break;
|
|
|
- case AC_MULTI_S_TYPE:
|
|
|
- case AC_MULTI_B_TYPE:
|
|
|
- case DC_IN_TYPE:
|
|
|
- default:
|
|
|
- return 1;
|
|
|
- break;
|
|
|
- }
|
|
|
}
|
|
|
+
|
|
|
return 1;
|
|
|
}
|
|
|
int g_switch_get_all_out_info(void* manger,int ntype,int saddr,int nNumb,PowerInfo* _power,PowerWarningInfo* _warning)
|
|
|
@@ -1560,7 +1581,11 @@ int g_switch_set_dcpdu_max_vol_threshold(void* manger,int saddr,char chn,GlobalO
|
|
|
memset(data_temp,0,sizeof(data_temp));
|
|
|
unsigned int value = 0;
|
|
|
|
|
|
- offset = _SWITCH_DCPDU_MAX_VOL_THRESHOLD + chn;
|
|
|
+ if (chn==-1)
|
|
|
+ {
|
|
|
+ offset = _SWITCH_DCPDU_MAX_TOTAL_VOL_THRESHOLD;
|
|
|
+ }
|
|
|
+ else offset = _SWITCH_DCPDU_MAX_VOL_THRESHOLD + chn;
|
|
|
value = _global_over_manager->product_vol_upper_threshold * 1000;
|
|
|
data_temp[0] = value & 0XFFFF;
|
|
|
data_temp[1] = (value >> 16) & 0xFFFF;
|
|
|
@@ -1576,7 +1601,11 @@ int g_switch_set_dcpdu_min_vol_threshold(void* manger,int saddr,char chn,GlobalO
|
|
|
memset(data_temp,0,sizeof(data_temp));
|
|
|
unsigned int value = 0;
|
|
|
|
|
|
- offset = _SWITCH_DCPDU_MIN_VOL_THRESHOLD + chn;
|
|
|
+ if (chn==-1)
|
|
|
+ {
|
|
|
+ offset = _SWITCH_DCPDU_MIN_TOTAL_VOL_THRESHOLD;
|
|
|
+ }
|
|
|
+ else offset = _SWITCH_DCPDU_MIN_VOL_THRESHOLD + chn;
|
|
|
value = _global_over_manager->product_vol_lower_threshold * 1000;
|
|
|
data_temp[0] = value & 0XFFFF;
|
|
|
data_temp[1] = (value >> 16) & 0xFFFF;
|
|
|
@@ -1591,13 +1620,17 @@ int g_switch_set_dcpdu_max_cur_threshold(void* manger,int saddr,char chn,GlobalO
|
|
|
unsigned short data_temp[4];
|
|
|
memset(data_temp,0,sizeof(data_temp));
|
|
|
unsigned int value = 0;
|
|
|
-
|
|
|
- offset = _SWITCH_DCPDU_MAX_CUR_THRESHOLD + chn;
|
|
|
+
|
|
|
+ if (chn == -1)
|
|
|
+ {
|
|
|
+ offset = _SWITCH_DCPDU_MAX_TOTAL_CUR_THRESHOLD;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ offset = _SWITCH_DCPDU_MAX_CUR_THRESHOLD + chn;
|
|
|
value = _global_over_manager->product_cur_upper_threshold * 1000;
|
|
|
data_temp[0] = value & 0XFFFF;
|
|
|
data_temp[1] = (value >> 16) & 0xFFFF;
|
|
|
|
|
|
-
|
|
|
return g_modbus_write_x_reg(manger,saddr,offset, 2, data_temp);
|
|
|
}
|
|
|
|
|
|
@@ -1622,13 +1655,17 @@ int g_switch_set_dcpdu_max_power_threshold(void* manger,int saddr,char chn,Globa
|
|
|
unsigned short data_temp[4];
|
|
|
memset(data_temp,0,sizeof(data_temp));
|
|
|
unsigned int value = 0;
|
|
|
-
|
|
|
- offset = _SWITCH_DCPDU_MAX_POWER_THRESHOLD + chn;
|
|
|
+
|
|
|
+ if (chn == -1)
|
|
|
+ {
|
|
|
+ offset = _SWITCH_DCPDU_MAX_TOTAL_POWER_THRESHOLD;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ offset = _SWITCH_DCPDU_MAX_POWER_THRESHOLD + chn;
|
|
|
value = _global_over_manager->product_pwr_upper_threshold * 1000;
|
|
|
data_temp[0] = value & 0XFFFF;
|
|
|
data_temp[1] = (value >> 16) & 0xFFFF;
|
|
|
|
|
|
-
|
|
|
return g_modbus_write_x_reg(manger,saddr,offset,2, data_temp);
|
|
|
}
|
|
|
int g_switch_set_dcpdu_max_pwrcon_threshold(void* manger,int saddr,char chn,GlobalOverManager* _global_over_manager)
|
|
|
@@ -1637,13 +1674,17 @@ int g_switch_set_dcpdu_max_pwrcon_threshold(void* manger,int saddr,char chn,Glob
|
|
|
unsigned short data_temp[4];
|
|
|
memset(data_temp,0,sizeof(data_temp));
|
|
|
unsigned int value = 0;
|
|
|
-
|
|
|
- offset = _SWITCH_DCPDU_MAX_POWERCON_THRESHOLD + chn;
|
|
|
+
|
|
|
+ if (chn == -1)
|
|
|
+ {
|
|
|
+ offset = _SWITCH_DCPDU_MAX_TOTAL_POWERCON_THRESHOLD;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ offset = _SWITCH_DCPDU_MAX_POWERCON_THRESHOLD + chn;
|
|
|
value = _global_over_manager->product_pwrcon_upper_threshold * 1000;
|
|
|
data_temp[0] = value & 0XFFFF;
|
|
|
data_temp[1] = (value >> 16) & 0xFFFF;
|
|
|
|
|
|
-
|
|
|
return g_modbus_write_x_reg(manger,saddr,offset,2, data_temp);
|
|
|
}
|
|
|
|
|
|
@@ -1964,7 +2005,12 @@ int g_switch_set_t_ac_max_pwrcon_threshold(void* manger,int saddr,char chn,Globa
|
|
|
int g_switch_set_t_ac_alarm_ctrl(void* manger,int saddr,char chn,GlobalOverManager* _global_over_manager)
|
|
|
{
|
|
|
unsigned int offset = 0;
|
|
|
- offset = _SWITCH_T_AC_ALARM_CTRL+chn;
|
|
|
+ if (chn == -1)
|
|
|
+ {
|
|
|
+ offset = _SWITCH_T_AC_ALARM_TOTAL_CTRL;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ offset = _SWITCH_T_AC_ALARM_CTRL + chn;
|
|
|
int nStatus = 0;
|
|
|
if(_global_over_manager->product_vol_over_upper_threshold_ctrl==1)nStatus|=BIT_01;
|
|
|
if(_global_over_manager->product_vol_over_lower_threshold_ctrl==1)nStatus|=BIT_02;
|
|
|
@@ -1977,7 +2023,11 @@ int g_switch_set_t_ac_alarm_ctrl(void* manger,int saddr,char chn,GlobalOverManag
|
|
|
int g_switch_set_ac_alarm_ctrl(void* manger,int saddr,char chn,GlobalOverManager* _global_over_manager)
|
|
|
{
|
|
|
unsigned int offset = 0;
|
|
|
- offset = _SWITCH_AC_ALARM_CTRL+chn;
|
|
|
+ if (chn==-1)
|
|
|
+ {
|
|
|
+ offset = _SWITCH_AC_ALARM_TOTAL_CTRL;
|
|
|
+ }
|
|
|
+ else offset = _SWITCH_AC_ALARM_CTRL+chn;
|
|
|
int nStatus = 0;
|
|
|
if(_global_over_manager->product_vol_over_upper_threshold_ctrl==1)nStatus|=BIT_01;
|
|
|
if(_global_over_manager->product_vol_over_lower_threshold_ctrl==1)nStatus|=BIT_02;
|
|
|
@@ -1990,7 +2040,12 @@ int g_switch_set_ac_alarm_ctrl(void* manger,int saddr,char chn,GlobalOverManager
|
|
|
int g_switch_set_dcpdu_alarm_ctrl(void* manger,int saddr,char chn,GlobalOverManager* _global_over_manager)
|
|
|
{
|
|
|
unsigned int offset = 0;
|
|
|
- offset = _SWITCH_DCPDU_ALARM_CTRL+chn;
|
|
|
+ if (chn == -1)
|
|
|
+ {
|
|
|
+ offset = _SWITCH_DCPDU_ALARM_TOTAL_CTRL;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ offset = _SWITCH_DCPDU_ALARM_CTRL + chn;
|
|
|
int nStatus = 0;
|
|
|
if(_global_over_manager->product_vol_over_upper_threshold_ctrl==1)nStatus|=BIT_01;
|
|
|
if(_global_over_manager->product_vol_over_lower_threshold_ctrl==1)nStatus|=BIT_02;
|