0702调试
This commit is contained in:
@@ -6,7 +6,7 @@
|
||||
#include "../faultCode.h"
|
||||
|
||||
// #define DEBUG
|
||||
#define DEBUG_1
|
||||
// #define DEBUG_1
|
||||
// 定义静态成员
|
||||
PowerManger* PowerManagerFsm::pm = nullptr;
|
||||
void PowerManagerFsm::react(TaskStopEvent const &e) {
|
||||
@@ -15,7 +15,7 @@ void PowerManagerFsm::react(TaskStopEvent const &e) {
|
||||
};
|
||||
|
||||
void PowerManagerFsm::react(CycleTriggeredEvent const &){
|
||||
// 更新当前设备状态
|
||||
// 检测和更新状态
|
||||
#ifdef DEBUG_1
|
||||
pm->m_currentDriverState = pm->m_subDisSysState;
|
||||
#else
|
||||
@@ -33,10 +33,11 @@ void PowerManagerFsm::react(CycleTriggeredEvent const &){
|
||||
//非调试模式下,对水声设备进行保护
|
||||
if(pm->currentMod != PMMode::Debug)
|
||||
{
|
||||
if(pm->m_depth < 10)
|
||||
if(pm->m_depth > 10)
|
||||
{
|
||||
if(pm->m_systemData->power_a_bus_status.xczCircuitBreaker == 1)
|
||||
pm->m_lowerCommManager->operate_HVA_xczCircuit_Breaker(0);
|
||||
//舷侧阵自动下电
|
||||
pm->m_lowerCommManager->operate_HVA_xczCircuit_Breaker(BREAK_OFF);
|
||||
MOOSPause(3);
|
||||
pm->m_driver.setDeviceState(pm->m_subDisSysCmd, DeviceId::sideSonar, 0);
|
||||
//所有水声设备下电
|
||||
@@ -82,7 +83,7 @@ void PowerManagerFsm::handleBowRudderSystemCmd(int id, int cmd){
|
||||
{
|
||||
if(cmd == EquipmentCommand::OFF)
|
||||
{
|
||||
pm->m_lowerCommManager->operate_HVA_bowRudderControlBoxCircuit_Breaker(BREAK_OFF);
|
||||
pm->m_lowerCommManager->operate_HVA_bowRudderControlBoxCircuit_Breaker(0);
|
||||
MOOSPause(10);
|
||||
pm->m_driver.setDeviceState(pm->m_subDisSysCmd, DeviceId::bowRudderDeploy, (unsigned char)cmd);
|
||||
pm->m_driver.setDeviceState(pm->m_subDisSysCmd, DeviceId::bowRudderServo1, (unsigned char)cmd);
|
||||
@@ -95,7 +96,7 @@ void PowerManagerFsm::handleBowRudderSystemCmd(int id, int cmd){
|
||||
pm->m_driver.setDeviceState(pm->m_subDisSysCmd, DeviceId::bowRudderServo2, (unsigned char)cmd);
|
||||
pm->m_upperCommManager->processPeriodicTasks();
|
||||
MOOSPause(10);
|
||||
pm->m_lowerCommManager->operate_HVA_bowRudderControlBoxCircuit_Breaker(BREAK_ON);
|
||||
pm->m_lowerCommManager->operate_HVA_bowRudderControlBoxCircuit_Breaker(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -112,7 +113,7 @@ void PowerManagerFsm::handleActuatorCmd(int id, int cmd){
|
||||
{
|
||||
if(cmd == EquipmentCommand::OFF)
|
||||
{
|
||||
pm->m_lowerCommManager->operate_HVA_actuatorCircuit_Breaker(BREAK_OFF);
|
||||
pm->m_lowerCommManager->operate_HVA_actuatorCircuit_Breaker(0);
|
||||
MOOSPause(10);
|
||||
pm->m_driver.setDeviceState(pm->m_subDisSysCmd, DeviceId::bowCover1, (unsigned char)cmd);
|
||||
pm->m_driver.setDeviceState(pm->m_subDisSysCmd, DeviceId::bowCover2, (unsigned char)cmd);
|
||||
@@ -129,7 +130,7 @@ void PowerManagerFsm::handleActuatorCmd(int id, int cmd){
|
||||
pm->m_driver.setDeviceState(pm->m_subDisSysCmd, DeviceId::bowCover4, (unsigned char)cmd);
|
||||
pm->m_driver.setDeviceState(pm->m_subDisSysCmd, DeviceId::bowCover5, (unsigned char)cmd);
|
||||
pm->m_driver.setDeviceState(pm->m_subDisSysCmd, DeviceId::bowCover6, (unsigned char)cmd);
|
||||
pm->m_lowerCommManager->operate_HVA_actuatorCircuit_Breaker(BREAK_ON);
|
||||
pm->m_lowerCommManager->operate_HVA_actuatorCircuit_Breaker(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -149,7 +150,7 @@ void PowerManagerFsm::handleOpenWaterCmd(int id, int cmd)
|
||||
{
|
||||
if(cmd == EquipmentCommand::OFF)
|
||||
{
|
||||
pm->m_lowerCommManager->operate_HVA_openWaterCoverStartCylinderCircuit_Breaker(BREAK_OFF);
|
||||
pm->m_lowerCommManager->operate_HVA_openWaterCoverStartCylinderCircuit_Breaker(0);
|
||||
MOOSPause(10);
|
||||
pm->m_driver.setDeviceState(pm->m_subDisSysCmd, DeviceId::bowWaterInet1, (unsigned char)cmd);
|
||||
pm->m_driver.setDeviceState(pm->m_subDisSysCmd, DeviceId::bowWaterInet2, (unsigned char)cmd);
|
||||
@@ -170,7 +171,7 @@ void PowerManagerFsm::handleOpenWaterCmd(int id, int cmd)
|
||||
pm->m_driver.setDeviceState(pm->m_subDisSysCmd, DeviceId::bowWaterInet7, (unsigned char)cmd);
|
||||
pm->m_driver.setDeviceState(pm->m_subDisSysCmd, DeviceId::bowWaterInet8, (unsigned char)cmd);
|
||||
MOOSPause(10);
|
||||
pm->m_lowerCommManager->operate_HVA_openWaterCoverStartCylinderCircuit_Breaker(BREAK_ON);
|
||||
pm->m_lowerCommManager->operate_HVA_openWaterCoverStartCylinderCircuit_Breaker(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -186,8 +187,8 @@ void PowerManagerFsm::handleSternRudderCmd(int id, int cmd)
|
||||
{
|
||||
if(cmd == EquipmentCommand::OFF)
|
||||
{
|
||||
pm->m_lowerCommManager->operate_HV_sternRudder1_Breaker(BREAK_OFF);
|
||||
pm->m_lowerCommManager->operate_HV_sternRudder2_Breaker(BREAK_OFF);
|
||||
pm->m_lowerCommManager->operate_HV_sternRudder1_Breaker(0);
|
||||
pm->m_lowerCommManager->operate_HV_sternRudder2_Breaker(0);
|
||||
MOOSPause(10);
|
||||
pm->m_driver.setDeviceState(pm->m_subDisSysCmd, DeviceId::sternRudderServo1, (unsigned char)cmd);
|
||||
pm->m_driver.setDeviceState(pm->m_subDisSysCmd, DeviceId::sternRudderServo2, (unsigned char)cmd);
|
||||
@@ -201,8 +202,8 @@ void PowerManagerFsm::handleSternRudderCmd(int id, int cmd)
|
||||
pm->m_driver.setDeviceState(pm->m_subDisSysCmd, DeviceId::sternRudderServo3, (unsigned char)cmd);
|
||||
pm->m_driver.setDeviceState(pm->m_subDisSysCmd, DeviceId::sternRudderServo4, (unsigned char)cmd);
|
||||
MOOSPause(10);
|
||||
pm->m_lowerCommManager->operate_HV_sternRudder1_Breaker(BREAK_ON);
|
||||
pm->m_lowerCommManager->operate_HV_sternRudder2_Breaker(BREAK_ON);
|
||||
pm->m_lowerCommManager->operate_HV_sternRudder1_Breaker(1);
|
||||
pm->m_lowerCommManager->operate_HV_sternRudder2_Breaker(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -216,14 +217,14 @@ void PowerManagerFsm::handlePropulsionMotorCmd(int id, int cmd)
|
||||
{
|
||||
if(cmd == EquipmentCommand::OFF)
|
||||
{
|
||||
pm->m_lowerCommManager->operate_HV_propulsionMotor_Breaker(BREAK_OFF);
|
||||
pm->m_lowerCommManager->operate_HV_propulsionMotor_Breaker(0);
|
||||
MOOSPause(10);
|
||||
pm->m_driver.setDeviceState(pm->m_subDisSysCmd, DeviceId::thruster, (unsigned char)cmd);
|
||||
} else if(cmd == EquipmentCommand::ON)
|
||||
{
|
||||
pm->m_driver.setDeviceState(pm->m_subDisSysCmd, DeviceId::thruster, (unsigned char)cmd);
|
||||
MOOSPause(10);
|
||||
pm->m_lowerCommManager->operate_HV_propulsionMotor_Breaker(BREAK_ON);
|
||||
pm->m_lowerCommManager->operate_HV_propulsionMotor_Breaker(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -239,7 +240,7 @@ void PowerManagerFsm::handleBuoyancyAdjustmentCmd(int id, int cmd)
|
||||
{
|
||||
if(cmd == EquipmentCommand::OFF)
|
||||
{
|
||||
pm->m_lowerCommManager->operate_HVA_bowFTDevice123Circuit_Breaker(BREAK_OFF);
|
||||
pm->m_lowerCommManager->operate_HVA_bowFTDevice123Circuit_Breaker(0);
|
||||
MOOSPause(10);
|
||||
pm->m_driver.setDeviceState(pm->m_subDisSysCmd, DeviceId::buoyancyAdjust1, (unsigned char)cmd);
|
||||
pm->m_driver.setDeviceState(pm->m_subDisSysCmd, DeviceId::buoyancyAdjust2, (unsigned char)cmd);
|
||||
@@ -250,7 +251,7 @@ void PowerManagerFsm::handleBuoyancyAdjustmentCmd(int id, int cmd)
|
||||
pm->m_driver.setDeviceState(pm->m_subDisSysCmd, DeviceId::buoyancyAdjust2, (unsigned char)cmd);
|
||||
pm->m_driver.setDeviceState(pm->m_subDisSysCmd, DeviceId::buoyancyAdjust3, (unsigned char)cmd);
|
||||
MOOSPause(10);
|
||||
pm->m_lowerCommManager->operate_HVA_bowFTDevice123Circuit_Breaker(BREAK_ON);
|
||||
pm->m_lowerCommManager->operate_HVA_bowFTDevice123Circuit_Breaker(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -262,7 +263,7 @@ void PowerManagerFsm::handleBuoyancyAdjustmentCmd(int id, int cmd)
|
||||
{
|
||||
if(cmd == EquipmentCommand::OFF)
|
||||
{
|
||||
pm->m_lowerCommManager->operate_HV_sternFt45_Breaker(BREAK_OFF);
|
||||
pm->m_lowerCommManager->operate_HV_sternFt45_Breaker(0);
|
||||
MOOSPause(10);
|
||||
pm->m_driver.setDeviceState(pm->m_subDisSysCmd, DeviceId::buoyancyAdjust4, (unsigned char)cmd);
|
||||
pm->m_driver.setDeviceState(pm->m_subDisSysCmd, DeviceId::buoyancyAdjust5, (unsigned char)cmd);
|
||||
@@ -271,7 +272,7 @@ void PowerManagerFsm::handleBuoyancyAdjustmentCmd(int id, int cmd)
|
||||
pm->m_driver.setDeviceState(pm->m_subDisSysCmd, DeviceId::buoyancyAdjust4, (unsigned char)cmd);
|
||||
pm->m_driver.setDeviceState(pm->m_subDisSysCmd, DeviceId::buoyancyAdjust5, (unsigned char)cmd);
|
||||
MOOSPause(10);
|
||||
pm->m_lowerCommManager->operate_HV_sternFt45_Breaker(BREAK_ON);
|
||||
pm->m_lowerCommManager->operate_HV_sternFt45_Breaker(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -285,14 +286,14 @@ void PowerManagerFsm::handleFBSystemCmd(int id, int cmd)
|
||||
{
|
||||
if(cmd == EquipmentCommand::OFF)
|
||||
{
|
||||
pm->m_lowerCommManager->operate_HV_fbReserved_Breaker(BREAK_OFF);
|
||||
pm->m_lowerCommManager->operate_HV_fbReserved_Breaker(0);
|
||||
MOOSPause(10);
|
||||
pm->m_driver.setDeviceState(pm->m_subDisSysCmd, DeviceId::buoyage, (unsigned char)cmd);
|
||||
} else if(cmd == EquipmentCommand::ON)
|
||||
{
|
||||
pm->m_driver.setDeviceState(pm->m_subDisSysCmd, DeviceId::buoyage, (unsigned char)cmd);
|
||||
MOOSPause(10);
|
||||
pm->m_lowerCommManager->operate_HV_fbReserved_Breaker(BREAK_ON);
|
||||
pm->m_lowerCommManager->operate_HV_fbReserved_Breaker(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -314,14 +315,14 @@ void PowerManagerFsm::handleSideSonarCmd(int id, int cmd)
|
||||
{
|
||||
if(cmd == EquipmentCommand::OFF)
|
||||
{
|
||||
pm->m_lowerCommManager->operate_HVA_xczCircuit_Breaker(BREAK_OFF);
|
||||
pm->m_lowerCommManager->operate_HVA_xczCircuit_Breaker(0);
|
||||
MOOSPause(10);
|
||||
pm->m_driver.setDeviceState(pm->m_subDisSysCmd, DeviceId::sideSonar, (unsigned char)cmd);
|
||||
} else if(cmd == EquipmentCommand::ON)
|
||||
{
|
||||
pm->m_driver.setDeviceState(pm->m_subDisSysCmd, DeviceId::sideSonar, (unsigned char)cmd);
|
||||
MOOSPause(10);
|
||||
pm->m_lowerCommManager->operate_HVA_xczCircuit_Breaker(BREAK_ON);
|
||||
pm->m_lowerCommManager->operate_HVA_xczCircuit_Breaker(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -336,14 +337,14 @@ void PowerManagerFsm::handleMastFoldingSystemCmd(int id, int cmd)
|
||||
{
|
||||
if(cmd == EquipmentCommand::OFF)
|
||||
{
|
||||
pm->m_lowerCommManager->operate_HVA_mastSteeringGearControlBoxCircuit_Breaker(BREAK_OFF);
|
||||
pm->m_lowerCommManager->operate_HVA_mastSteeringGearControlBoxCircuit_Breaker(0);
|
||||
MOOSPause(10);
|
||||
pm->m_driver.setDeviceState(pm->m_subDisSysCmd, DeviceId::mastLiftingServo, (unsigned char)cmd);
|
||||
} else if(cmd == EquipmentCommand::ON)
|
||||
{
|
||||
pm->m_driver.setDeviceState(pm->m_subDisSysCmd, DeviceId::mastLiftingServo, (unsigned char)cmd);
|
||||
MOOSPause(10);
|
||||
pm->m_lowerCommManager->operate_HVA_mastSteeringGearControlBoxCircuit_Breaker(BREAK_ON);
|
||||
pm->m_lowerCommManager->operate_HVA_mastSteeringGearControlBoxCircuit_Breaker(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3100,34 +3101,34 @@ void PowerManagerFsm::handelPowerCmd(){
|
||||
LOG_F(INFO, "动力锂电池已下电");
|
||||
//2. 断掉所有动力电断路器
|
||||
//2.1 断开所有艏部高压断路器
|
||||
pm->m_lowerCommManager->operate_HVA_actuatorCircuit_Breaker(BREAK_OFF);
|
||||
pm->m_lowerCommManager->operate_HVA_bowFTDevice123Circuit_Breaker(BREAK_OFF);
|
||||
pm->m_lowerCommManager->operate_HVA_bowRudderControlBoxCircuit_Breaker(BREAK_OFF);
|
||||
pm->m_lowerCommManager->operate_HVA_mastSteeringGearControlBoxCircuit_Breaker(BREAK_OFF);
|
||||
pm->m_lowerCommManager->operate_HVA_openWaterCoverStartCylinderCircuit_Breaker(BREAK_OFF);
|
||||
pm->m_lowerCommManager->operate_HVA_xczCircuit_Breaker(BREAK_OFF);
|
||||
pm->m_lowerCommManager->operate_HVA_actuatorCircuit_Breaker(0);
|
||||
pm->m_lowerCommManager->operate_HVA_bowFTDevice123Circuit_Breaker(0);
|
||||
pm->m_lowerCommManager->operate_HVA_bowRudderControlBoxCircuit_Breaker(0);
|
||||
pm->m_lowerCommManager->operate_HVA_mastSteeringGearControlBoxCircuit_Breaker(0);
|
||||
pm->m_lowerCommManager->operate_HVA_openWaterCoverStartCylinderCircuit_Breaker(0);
|
||||
pm->m_lowerCommManager->operate_HVA_xczCircuit_Breaker(0);
|
||||
|
||||
//2.2 断开所有艉部高压设备断路器
|
||||
pm->m_lowerCommManager->operate_HV_propulsionMotor_Breaker(BREAK_OFF);
|
||||
pm->m_lowerCommManager->operate_HV_sternFt45_Breaker(BREAK_OFF);
|
||||
pm->m_lowerCommManager->operate_HV_sternRudder1_Breaker(BREAK_OFF);
|
||||
pm->m_lowerCommManager->operate_HV_sternRudder2_Breaker(BREAK_OFF);
|
||||
pm->m_lowerCommManager->operate_HV_fbReserved_Breaker(BREAK_OFF);
|
||||
pm->m_lowerCommManager->operate_HV_tyzReserved_Breaker(BREAK_OFF);
|
||||
pm->m_lowerCommManager->operate_HV_reserved_Breaker(BREAK_OFF);
|
||||
pm->m_lowerCommManager->operate_HV_dcDc5_Breaker(BREAK_OFF);
|
||||
pm->m_lowerCommManager->operate_HV_coolingSystem_Breaker(BREAK_OFF);
|
||||
pm->m_lowerCommManager->operate_HV_propulsionMotor_Breaker(0);
|
||||
pm->m_lowerCommManager->operate_HV_sternFt45_Breaker(0);
|
||||
pm->m_lowerCommManager->operate_HV_sternRudder1_Breaker(0);
|
||||
pm->m_lowerCommManager->operate_HV_sternRudder2_Breaker(0);
|
||||
pm->m_lowerCommManager->operate_HV_fbReserved_Breaker(0);
|
||||
pm->m_lowerCommManager->operate_HV_tyzReserved_Breaker(0);
|
||||
pm->m_lowerCommManager->operate_HV_reserved_Breaker(0);
|
||||
pm->m_lowerCommManager->operate_HV_dcDc5_Breaker(0);
|
||||
pm->m_lowerCommManager->operate_HV_coolingSystem_Breaker(0);
|
||||
|
||||
//2.3 断开仪表预留断路器
|
||||
pm->m_lowerCommManager->operate_LV_reservedCircuit1_Breaker(BREAK_OFF);
|
||||
pm->m_lowerCommManager->operate_LV_reservedCircuit2_Breaker(BREAK_OFF);
|
||||
pm->m_lowerCommManager->operate_LVA_reservedCircuit1_Breaker(BREAK_OFF);
|
||||
pm->m_lowerCommManager->operate_LVA_reservedCircuit2_Breaker(BREAK_OFF);
|
||||
pm->m_lowerCommManager->operate_LVA_bowPZDeviceCircuit_Breaker(BREAK_OFF);
|
||||
pm->m_lowerCommManager->operate_LV_reservedCircuit1_Breaker(0);
|
||||
pm->m_lowerCommManager->operate_LV_reservedCircuit2_Breaker(0);
|
||||
pm->m_lowerCommManager->operate_LVA_reservedCircuit1_Breaker(0);
|
||||
pm->m_lowerCommManager->operate_LVA_reservedCircuit2_Breaker(0);
|
||||
pm->m_lowerCommManager->operate_LVA_bowPZDeviceCircuit_Breaker(0);
|
||||
|
||||
//2.4 断开应急电池断路器
|
||||
pm->m_lowerCommManager->operate_LV_mergencyLithiumBatteryGroup2Circuit_Breaker(BREAK_OFF);
|
||||
pm->m_lowerCommManager->operate_LVA_mergencyLithiumBatteryGroup1Circuit_Breaker(BREAK_OFF);
|
||||
pm->m_lowerCommManager->operate_LV_mergencyLithiumBatteryGroup2Circuit_Breaker(0);
|
||||
pm->m_lowerCommManager->operate_LVA_mergencyLithiumBatteryGroup1Circuit_Breaker(0);
|
||||
|
||||
//3. 次级配电系统恢复待机
|
||||
pm->m_driver.getSTANDBYTable(&pm->m_subDisSysCmd);
|
||||
@@ -3140,7 +3141,7 @@ void PowerManagerFsm::handelPowerCmd(){
|
||||
{
|
||||
LOG_F(INFO, "收到上位机控制指令:动力电上电");
|
||||
//闭合动力电断路器
|
||||
if(pm->m_lowerCommManager->operate_HV_powerLithiumBattery_Breaker(BREAK_ON))
|
||||
if(pm->m_lowerCommManager->operate_HV_powerLithiumBattery_Breaker(1))
|
||||
LOG_F(INFO,"动力锂电池断路器闭合成功");
|
||||
else
|
||||
LOG_F(INFO,"动力锂电池断路器闭合操作失败");
|
||||
@@ -3153,7 +3154,7 @@ void PowerManagerFsm::handelPowerCmd(){
|
||||
{
|
||||
LOG_F(INFO, "收到上位机控制指令:锂动力电上电");
|
||||
//1. 闭合动力电断路器
|
||||
pm->m_lowerCommManager->operate_HV_powerLithiumBattery_Breaker(BREAK_ON);
|
||||
pm->m_lowerCommManager->operate_HV_powerLithiumBattery_Breaker(1);
|
||||
//2. 动力锂电池上电
|
||||
pm->m_CcuColCmd.powerBatCmd = BatteryCommand::Start;
|
||||
break;
|
||||
@@ -3299,7 +3300,7 @@ void PowerManagerFsm::react(TestEvent const &e)
|
||||
pm->m_systemData->fc_fault_level_3 = 0;
|
||||
pm->m_systemData->fc_fault_level_2 = 0;
|
||||
pm->m_systemData->fc_fault_level_1 = 0;
|
||||
pm->m_systemData->distributeFaultCode.clear();
|
||||
pm->m_systemData->disSysFaultCode.clear();
|
||||
cout << "清空故障代码" << endl;
|
||||
};
|
||||
// if(e.eventId == 0) return ;
|
||||
@@ -3346,10 +3347,10 @@ void PowerManagerFsm::react(TestEvent const &e)
|
||||
pm->m_leakage = 0x20; //艉应急
|
||||
break;
|
||||
case 3:
|
||||
pm->m_leakage = 0x40;
|
||||
pm->m_leakage = 0x40; //燃料电池舱漏水
|
||||
break;
|
||||
case 4:
|
||||
pm->m_leakage = 0x80;
|
||||
pm->m_leakage = 0x80; //艏部应急漏水
|
||||
break;
|
||||
case 5:
|
||||
pm->m_leakage = 0x01; //艏部应急漏水
|
||||
@@ -3406,7 +3407,7 @@ void PowerManagerFsm::react(TestEvent const &e)
|
||||
{
|
||||
LOG_F(INFO,"配电系统故障测试");
|
||||
// pm->m_systemData->distributeFaultCode.push_back(disfaultMap[e.eventId].code);
|
||||
pm->m_systemData->distributeFaultCode.insert(disfaultMap[e.eventId].code);
|
||||
pm->m_systemData->disSysFaultCode.insert(disfaultMap[e.eventId].code);
|
||||
}
|
||||
default:
|
||||
LOG_F(INFO, "测试消息类型错误");
|
||||
|
||||
Reference in New Issue
Block a user