0702调试

This commit is contained in:
zjk
2025-07-02 16:20:36 +08:00
parent 16d4c25c77
commit ba8cd0383a
13 changed files with 1761 additions and 156 deletions
+160 -9
View File
@@ -12,28 +12,179 @@ private:
/* data */
public:
uPower_disSysStateMsg() {
// state_of_bus_hv = {};
// state_of_bus_hv_a = {};
// state_of_bus_lv = {};
// state_of_bus_lv_a = {};
};
~uPower_disSysStateMsg() {};
std::string key = "uPower_disSysState_st";
struct state_of_bus_hv
{
// 使用 std::bitset 存储 16 位继电器状态
std::bitset<16> relay_states;
// 燃料电池断路器
void set_fuel_cell_breaker(bool state) { relay_states[0] = state; }
// 动力锂电池断路器
void set_power_lithium_battery_breaker(bool state) { relay_states[1] = state; }
// 推进电机断路器
void set_propulsion_motor_breaker(bool state) { relay_states[2] = state; }
// 锂电池组仪表断路器
void set_lithium_battery_meter_breaker(bool state) { relay_states[3] = state; }
// DC/DC5模块断路器
void set_dc_dc5_module_breaker(bool state) { relay_states[4] = state; }
// 艏部高压配电箱断路器
void set_bow_high_voltage_box_breaker(bool state) { relay_states[5] = state; }
// 艉部FT装置4/5断路器
void set_stern_ft_device_breaker(bool state) { relay_states[6] = state; }
// 艉舵开关1断路器
void set_stern_rudder_switch1_breaker(bool state) { relay_states[7] = state; }
// 艉舵开关2断路器
void set_stern_rudder_switch2_breaker(bool state) { relay_states[8] = state; }
// FB预留断路器
void set_fb_reserved_breaker(bool state) { relay_states[9] = state; }
// TYZ预留断路器
void set_tyz_reserved_breaker(bool state) { relay_states[10] = state; }
// 预留断路器
void set_reserved_breaker(bool state) { relay_states[11] = state; }
// 初始化后 16 - 12 位为 0
state_of_bus_hv() {
relay_states.reset(12);
relay_states.reset(13);
relay_states.reset(14);
relay_states.reset(15);
}
} m_state_of_bus_hv;
struct state_of_bus_hv_a
{
std::bitset<16> relay_states;
// 艏部FT装置1 - 3 断路器
void set_bow_ft_device_1_3_breaker(bool state) { relay_states[0] = state; }
// 启闭机构断路器
void set_opening_closing_mechanism_breaker(bool state) { relay_states[1] = state; }
// 桅杆舵机控制箱断路器
void set_mast_servo_control_box_breaker(bool state) { relay_states[2] = state; }
// XCZ 断路器
void set_xcz_breaker(bool state) { relay_states[3] = state; }
// 艏舵控制箱断路器
void set_bow_rudder_control_box_breaker(bool state) { relay_states[4] = state; }
// 敞水盖启动电缸断路器
void set_open_water_cover_actuator_breaker(bool state) { relay_states[5] = state; }
// 初始化后 6 - 15 位为 0
state_of_bus_hv_a() {
for (int i = 6; i < 16; ++i) {
relay_states.reset(i);
}
}
}m_state_of_bus_hv_a;
struct state_of_bus_lv
{
std::bitset<16> relay_states;
// 锂电池组(仪表)断路器
void set_lithium_battery_group_meter_breaker(bool state) { relay_states[0] = state; }
// 艏部低压配电箱断路器
void set_bow_low_voltage_box_breaker(bool state) { relay_states[1] = state; }
// UNIT4仪表DC48V断路器
void set_unit4_meter_dc48v_breaker(bool state) { relay_states[2] = state; }
// DC - C1直流配电板断路器
void set_dc_c1_dc_distribution_board_breaker(bool state) { relay_states[3] = state; }
// 预留断路器
void set_reserved_breaker_1(bool state) { relay_states[4] = state; }
// 预留断路器
void set_reserved_breaker_2(bool state) { relay_states[5] = state; }
// 应急锂电池组2断路器
void set_emergency_lithium_battery_group_2_breaker(bool state) { relay_states[6] = state; }
// 初始化后 7 - 15 位为 0
state_of_bus_lv() {
for (int i = 7; i < 16; ++i) {
relay_states.reset(i);
}
}
}m_state_of_bus_lv;
struct state_of_bus_lv_a
{
// 使用 std::bitset 存储 16 位继电器状态
std::bitset<16> relay_states;
// UNIT1断路器
void set_unit1_breaker(bool state) { relay_states[0] = state; }
// UNIT2断路器
void set_unit2_breaker(bool state) { relay_states[1] = state; }
// UNIT3断路器
void set_unit3_breaker(bool state) { relay_states[2] = state; }
// UNIT5断路器
void set_unit5_breaker(bool state) { relay_states[3] = state; }
// 艏部PZ装置断路器
void set_bow_pz_device_breaker(bool state) { relay_states[4] = state; }
// 预留断路器
void set_reserved_breaker_1(bool state) { relay_states[5] = state; }
// 预留断路器
void set_reserved_breaker_2(bool state) { relay_states[6] = state; }
// 应急锂电池组1断路器
void set_emergency_lithium_battery_group_1_breaker(bool state) { relay_states[7] = state; }
// 初始化后 8 - 15 位为 0
state_of_bus_lv_a() {
for (int i = 8; i < 16; ++i) {
relay_states.reset(i);
}
}
}m_state_of_bus_lv_a;
std::string buildMsg(SystemData data,disSysBreakerList currentDisBreakerState)
{
//构建配电系统状态报告
Json::Value dis;
disBus1Breaker dis1 = currentDisBreakerState.bus1Breaker;
disBus2Breaker dis2 = currentDisBreakerState.bus2Breaker;
disBus3Breaker dis3 = currentDisBreakerState.bus3Breaker;
disBus4Breaker dis4 = currentDisBreakerState.bus4Breaker;
// disBus1Breaker dis1 = currentDisBreakerState.bus1Breaker;
m_state_of_bus_hv.set_fuel_cell_breaker((data.power_bus_status.fuelCellCircuitBreaker == 1));
m_state_of_bus_hv.set_power_lithium_battery_breaker((data.power_bus_status.powerLithiumBatteryCircuitBreaker == 1));
m_state_of_bus_hv.set_propulsion_motor_breaker((data.power_bus_status.propulsionMotorCircuitBreaker == 1));
m_state_of_bus_hv.set_lithium_battery_meter_breaker((data.power_bus_status.lithiumBatteryGroupInstrumentCircuitBreaker == 1));
m_state_of_bus_hv.set_dc_dc5_module_breaker((data.power_bus_status.dcDc5ModuleCircuitBreaker == 1));
m_state_of_bus_hv.set_bow_high_voltage_box_breaker((data.power_bus_status.bowHighVoltageDistributionBoxCircuitBreaker == 1));
m_state_of_bus_hv.set_stern_ft_device_breaker((data.power_bus_status.sternFTDevice45CircuitBreaker == 1));
m_state_of_bus_hv.set_stern_rudder_switch1_breaker((data.power_bus_status.sternRudderSwitch1CircuitBreaker == 1));
m_state_of_bus_hv.set_stern_rudder_switch2_breaker((data.power_bus_status.sternRudderSwitch2CircuitBreaker == 1));
m_state_of_bus_hv.set_fb_reserved_breaker((data.power_bus_status.fbReservedCircuitBreaker == 1));
m_state_of_bus_hv.set_tyz_reserved_breaker((data.power_bus_status.tyzReservedCircuitBreaker == 1));
m_state_of_bus_hv.set_reserved_breaker((data.power_bus_status.reservedCircuitBreaker == 1));
dis["HVolABusBreaker_uint16"] = m_state_of_bus_hv.relay_states.to_ulong();
dis["HVolBusBreaker_uint16"] = *(unsigned short*)&dis1;
dis["HVolABusBreaker_unit16"] = *(unsigned short*)&dis2;
dis["HVolBBusBreaker_unit16"] = *(unsigned short*)&dis3;
dis["LVolBusBreaker_uint16"] = *(unsigned short*)&dis4;
m_state_of_bus_hv_a.set_bow_ft_device_1_3_breaker((data.power_a_bus_status.bowFTDevice123CircuitBreaker == 1));
m_state_of_bus_hv_a.set_opening_closing_mechanism_breaker((data.power_a_bus_status.actuatorCircuitBreaker == 1));
m_state_of_bus_hv_a.set_mast_servo_control_box_breaker((data.power_a_bus_status.mastSteeringGearControlBoxCircuitBreaker == 1));
m_state_of_bus_hv_a.set_xcz_breaker((data.power_a_bus_status.xczCircuitBreaker == 1));
m_state_of_bus_hv_a.set_bow_rudder_control_box_breaker((data.power_a_bus_status.bowRudderControlBoxCircuitBreaker == 1));
m_state_of_bus_hv_a.set_open_water_cover_actuator_breaker((data.power_a_bus_status.openWaterCoverStartCylinderCircuitBreaker == 1));
dis["HVolBBusBreaker_uint16"] = m_state_of_bus_hv_a.relay_states.to_ulong();
m_state_of_bus_lv.set_bow_low_voltage_box_breaker((data.instrument_main_bus_status.bowLowVoltageDistributionBoxCircuitBreaker == 1));
m_state_of_bus_lv.set_dc_c1_dc_distribution_board_breaker((data.instrument_main_bus_status.dcC1DCDistributionPanelCircuitBreaker == 1));
m_state_of_bus_lv.set_unit4_meter_dc48v_breaker((data.instrument_main_bus_status.unit4InstrumentDC48VCircuitBreaker == 1));
m_state_of_bus_lv.set_lithium_battery_group_meter_breaker((data.instrument_main_bus_status.lithiumBatteryGroupInstrumentCircuitBreaker == 1));
m_state_of_bus_lv.set_emergency_lithium_battery_group_2_breaker((data.instrument_main_bus_status.emergencyLithiumBatteryGroup2CircuitBreaker == 1));
m_state_of_bus_lv.set_reserved_breaker_1((data.instrument_main_bus_status.reservedCircuitBreaker1 == 1));
m_state_of_bus_lv.set_reserved_breaker_2((data.instrument_main_bus_status.reservedCircuitBreaker2 == 1));
dis["HVolBusBreaker_uint16"] = m_state_of_bus_lv.relay_states.to_ulong();
m_state_of_bus_lv_a.set_unit1_breaker((data.instrument_bus_status.unit1CircuitBreaker == 1));
m_state_of_bus_lv_a.set_unit2_breaker((data.instrument_bus_status.unit2CircuitBreaker == 1));
m_state_of_bus_lv_a.set_unit3_breaker((data.instrument_bus_status.unit3CircuitBreaker == 1));
m_state_of_bus_lv_a.set_unit5_breaker((data.instrument_bus_status.unit5CircuitBreaker == 1));
m_state_of_bus_lv_a.set_bow_pz_device_breaker((data.instrument_bus_status.bowPZDeviceCircuitBreaker == 1));
m_state_of_bus_lv_a.set_reserved_breaker_1((data.instrument_bus_status.reservedCircuitBreaker1 == 1));
m_state_of_bus_lv_a.set_reserved_breaker_2((data.instrument_bus_status.reservedCircuitBreaker2 == 1));
m_state_of_bus_lv_a.set_emergency_lithium_battery_group_1_breaker((data.instrument_bus_status.emergencyLithiumBatteryGroup1CircuitBreaker == 1));
dis["LVolBusBreaker_uint16"] = m_state_of_bus_lv.relay_states.to_ulong();
//TODO: 构建配电系统故障码
Json::Value faultCodeDis_array = Json::Value(Json::arrayValue);
for(auto val : data.distributeFaultCode)
for(auto val : data.disSysFaultCode)
{
faultCodeDis_array.append(val);
}