|
|
@@ -1605,28 +1605,28 @@ int g_switch_get_t_ac_all_out_info(void* manger,int saddr,int nNumb,PowerInfo* _
|
|
|
offset = _SWITCH_T_AC_OUT_INFO;
|
|
|
//读取4个寄存器
|
|
|
|
|
|
- int ret = g_modbus_read_x_reg(manger, saddr, offset, 48, data_temp);
|
|
|
+ int ret = g_modbus_read_x_reg(manger, saddr, offset, 80, data_temp);
|
|
|
if (ret < 0)
|
|
|
{
|
|
|
log_w("g_switch_get_T_ac_in_info:%d OffSet:%d Ret=%d:%s", saddr, offset, ret, modbus_strerror(errno));
|
|
|
return ret;
|
|
|
}
|
|
|
- offset = _SWITCH_T_AC_OUT_INFO+24;
|
|
|
- unsigned short* DataTemp=data_temp+48;
|
|
|
- ret = g_modbus_read_x_reg(manger, saddr, offset, 48, DataTemp);
|
|
|
+ offset = _SWITCH_T_AC_OUT_INFO+40;
|
|
|
+ unsigned short* DataTemp=data_temp+80;
|
|
|
+ ret = g_modbus_read_x_reg(manger, saddr, offset, 64, DataTemp);
|
|
|
if (ret < 0)
|
|
|
- {
|
|
|
- log_w("g_switch_get_T_ac_in_info:%d OffSet:%d Ret=%d:%s", saddr, offset, ret, modbus_strerror(errno));
|
|
|
- return ret;
|
|
|
- }
|
|
|
- offset = _SWITCH_T_AC_OUT_INFO+48;
|
|
|
- DataTemp=data_temp+96;
|
|
|
- ret = g_modbus_read_x_reg(manger, saddr, offset, 48, DataTemp);
|
|
|
- if (ret < 0)
|
|
|
- {
|
|
|
- log_w("g_switch_get_T_ac_in_info:%d OffSet:%d Ret=%d:%s", saddr, offset, ret, modbus_strerror(errno));
|
|
|
- return ret;
|
|
|
- }
|
|
|
+ {
|
|
|
+ log_w("g_switch_get_T_ac_in_info:%d OffSet:%d Ret=%d:%s", saddr, offset, ret, modbus_strerror(errno));
|
|
|
+ return ret;
|
|
|
+ }
|
|
|
+ //offset = _SWITCH_T_AC_OUT_INFO+48;
|
|
|
+ //DataTemp=data_temp+96;
|
|
|
+ // ret = g_modbus_read_x_reg(manger, saddr, offset, 48, DataTemp);
|
|
|
+ // if (ret < 0)
|
|
|
+ //{
|
|
|
+ // log_w("g_switch_get_T_ac_in_info:%d OffSet:%d Ret=%d:%s", saddr, offset, ret, modbus_strerror(errno));
|
|
|
+ // return ret;
|
|
|
+ // }
|
|
|
for (size_t i = 0; i < nNumb; i++)
|
|
|
{
|
|
|
int Index = i * 16;
|
|
|
@@ -1653,10 +1653,12 @@ int g_switch_get_t_ac_all_out_info(void* manger,int saddr,int nNumb,PowerInfo* _
|
|
|
val = (data_temp[15+Index] << 16) + data_temp[14+Index];
|
|
|
_power[i].factor = val / 1023.0;
|
|
|
}
|
|
|
- //获取开关状态
|
|
|
+ //获取通道开关状态及零线状态
|
|
|
+ //_SWITCH_T_AC_OUT_ENABLE +18
|
|
|
+ //_SWITCH_T_AC_NF_STATUS +2
|
|
|
offset = _SWITCH_T_AC_OUT_ENABLE;
|
|
|
memset(data_temp,0,sizeof(data_temp));
|
|
|
- ret = g_modbus_read_x_reg(manger,saddr,offset, 18,data_temp);
|
|
|
+ ret = g_modbus_read_x_reg(manger,saddr,offset, 20,data_temp);
|
|
|
if (ret < 0)
|
|
|
{
|
|
|
log_w("g_switch_get_T_ac_in_info:%d OffSet:%d Ret=%d:%s", saddr, offset, ret, modbus_strerror(errno));
|
|
|
@@ -1666,9 +1668,22 @@ int g_switch_get_t_ac_all_out_info(void* manger,int saddr,int nNumb,PowerInfo* _
|
|
|
{
|
|
|
int Index = i * 2;
|
|
|
_power[i].status = data_temp[0+Index] & BIT_00;
|
|
|
+ _power[i].NF_status = data_temp[18] & BIT_00;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
+ //获取零线状态
|
|
|
+ /*offset = _SWITCH_T_AC_NF_STATUS;
|
|
|
+ memset(data_temp,0,sizeof(data_temp));
|
|
|
+ ret = g_modbus_read_x_reg(manger,saddr,offset, 2,data_temp);
|
|
|
+ if (ret < 0)
|
|
|
+ {
|
|
|
+ log_w("g_switch_get_T_ac_in_info:%d OffSet:%d Ret=%d:%s", saddr, offset, ret, modbus_strerror(errno));
|
|
|
+ return ret;
|
|
|
+ }
|
|
|
+ for (size_t i = 0; i < nNumb; i++)
|
|
|
+ {
|
|
|
+ _power[i].NF_status = data_temp[18] & BIT_00;
|
|
|
+ }*/
|
|
|
//获取故障状态
|
|
|
offset = _SWITCH_T_AC_OUT_ERROR;
|
|
|
memset(data_temp,0,sizeof(data_temp));
|
|
|
@@ -1870,6 +1885,21 @@ int g_switch_set_t_ac_chn_ctrl(void* manger,int saddr,unsigned char chn,unsigned
|
|
|
data_temp[0]=sts;
|
|
|
return g_modbus_write_x_reg(manger,saddr,offset, 2, data_temp);
|
|
|
}
|
|
|
+
|
|
|
+int g_switch_set_t_ac_chn_NF_ctrl(void* manger,int saddr,unsigned char chn,unsigned short sts)
|
|
|
+{
|
|
|
+ unsigned int offset = 0;
|
|
|
+ if(chn > 3 || chn < 0) return -1;
|
|
|
+ unsigned short data_temp[2];
|
|
|
+ memset(data_temp,0,sizeof(data_temp));
|
|
|
+ if(chn>=3)
|
|
|
+ return -1;
|
|
|
+ offset = _SWITCH_T_AC_NF_STATUS;
|
|
|
+ data_temp[0]=sts;
|
|
|
+ data_temp[1]=0;
|
|
|
+ return g_modbus_write_x_reg(manger,saddr,offset, 2, data_temp);
|
|
|
+}
|
|
|
+
|
|
|
int g_switch_set_t_ac_phchn_ctrl(void* manger,int saddr,unsigned char chn,unsigned short sts)
|
|
|
{
|
|
|
//三个一组进行设置
|
|
|
@@ -2223,6 +2253,7 @@ int ResetChmData()
|
|
|
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);
|
|
|
@@ -2354,6 +2385,7 @@ int ResetChmData()
|
|
|
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;
|
|
|
if (dev_insert_power_manage_info(_globalDeviceManager->db,
|
|
|
@@ -2414,6 +2446,7 @@ int ResetChmData()
|
|
|
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);
|
|
|
@@ -2485,6 +2518,7 @@ int ResetChmData()
|
|
|
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);
|
|
|
@@ -2605,6 +2639,7 @@ int ResetChmData()
|
|
|
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);
|