diff --git a/src/pPowerManger/UpperCommManager.cpp b/src/pPowerManger/UpperCommManager.cpp index 7782c52..f716234 100644 --- a/src/pPowerManger/UpperCommManager.cpp +++ b/src/pPowerManger/UpperCommManager.cpp @@ -165,7 +165,9 @@ void UpperCommManager::processPeriodicTasks() { m_pm->sendNotification(m_equStateMsg.key, strJson); //发送次级配电指令 修改后的代码 // strJson = getSubDisCmd(m_pm->m_subDisSysCmd); - strJson = m_secdistStateMsg.buildMsg(m_pm->m_subDisSysCmd); + // TODO : 修改指令逻辑,当状态一致时发送保持指令 + // strJson = m_secdistStateMsg.buildMsg(m_pm->m_subDisSysCmd); + strJson = m_secdistStateMsg.buildMsg(m_pm->m_subDisSysCmd,m_pm->m_subDisSysState,2); m_pm->sendNotification(m_secdistStateMsg.key_cmd, strJson); //发送仪表电状态 m_pm->sendNotification(m_equInsStateMsg.key,m_equInsStateMsg.buildMsg(m_pm->m_subDisSysState)); diff --git a/src/pPowerManger/UpperCommManager.h b/src/pPowerManger/UpperCommManager.h index 8be1234..75f59b3 100644 --- a/src/pPowerManger/UpperCommManager.h +++ b/src/pPowerManger/UpperCommManager.h @@ -36,7 +36,7 @@ using namespace std; //决策消息 #define DB_TO_PM_DEEPTH "uDevice_depth_st" -#define DB_TO_PM_MISSION "uPlan_taskStart_cmd" +// #define DB_TO_PM_MISSION "uPlan_taskStart_cmd" #define DB_TO_PM_TASKSTOP "uPlan_planStop_cmd" //外部通信消息 diff --git a/src/pPowerManger/fsm/PowerManagerFsm.cpp b/src/pPowerManger/fsm/PowerManagerFsm.cpp index 8c55bb1..1110bf0 100644 --- a/src/pPowerManger/fsm/PowerManagerFsm.cpp +++ b/src/pPowerManger/fsm/PowerManagerFsm.cpp @@ -99,6 +99,38 @@ void PowerManagerFsm::handleBowRudderSystemCmd(int id, int cmd){ pm->m_lowerCommManager->operate_HVA_bowRudderControlBoxCircuit_Breaker(1); } } + else if(pm->currentMod == PMMode::Debug) + { + + if(cmd == EquipmentCommand::ON) + { + pm->m_driver.setDeviceState(pm->m_subDisSysCmd, static_cast(id), (unsigned char)cmd); + MOOSPause(5); + pm->m_lowerCommManager->operate_HVA_bowRudderControlBoxCircuit_Breaker(1); + } + else if(cmd == EquipmentCommand::OFF) + { + pm->m_lowerCommManager->operate_HVA_bowRudderControlBoxCircuit_Breaker(0); + MOOSPause(5); + pm->m_driver.setDeviceState(pm->m_subDisSysCmd, static_cast(id), (unsigned char)cmd); + } + else if(cmd == EquipmentCommand::POWER_ON) + { + pm->m_lowerCommManager->operate_HVA_bowRudderControlBoxCircuit_Breaker(1); + } + else if(cmd == EquipmentCommand::POWER_OFF) + { + pm->m_lowerCommManager->operate_HVA_bowRudderControlBoxCircuit_Breaker(0); + } + else if(cmd == EquipmentCommand::METER_OFF) + { + pm->m_driver.setDeviceState(pm->m_subDisSysCmd, static_cast(id), (unsigned char)0); + } + else if(cmd == EquipmentCommand::METER_ON) + { + pm->m_driver.setDeviceState(pm->m_subDisSysCmd, static_cast(id), (unsigned char)1); + } + } } } void PowerManagerFsm::handleActuatorCmd(int id, int cmd){ @@ -133,6 +165,38 @@ void PowerManagerFsm::handleActuatorCmd(int id, int cmd){ pm->m_lowerCommManager->operate_HVA_actuatorCircuit_Breaker(1); } } + else if(pm->currentMod == PMMode::Debug) + { + + if(cmd == EquipmentCommand::ON) + { + pm->m_driver.setDeviceState(pm->m_subDisSysCmd, static_cast(id), (unsigned char)cmd); + MOOSPause(5); + pm->m_lowerCommManager->operate_HVA_actuatorCircuit_Breaker(1); + } + else if(cmd == EquipmentCommand::OFF) + { + pm->m_lowerCommManager->operate_HVA_actuatorCircuit_Breaker(0); + MOOSPause(5); + pm->m_driver.setDeviceState(pm->m_subDisSysCmd, static_cast(id), (unsigned char)cmd); + } + else if(cmd == EquipmentCommand::POWER_ON) + { + pm->m_lowerCommManager->operate_HVA_actuatorCircuit_Breaker(1); + } + else if(cmd == EquipmentCommand::POWER_OFF) + { + pm->m_lowerCommManager->operate_HVA_actuatorCircuit_Breaker(0); + } + else if(cmd == EquipmentCommand::METER_OFF) + { + pm->m_driver.setDeviceState(pm->m_subDisSysCmd, static_cast(id), (unsigned char)0); + } + else if(cmd == EquipmentCommand::METER_ON) + { + pm->m_driver.setDeviceState(pm->m_subDisSysCmd, static_cast(id), (unsigned char)1); + } + } } } @@ -173,39 +237,150 @@ void PowerManagerFsm::handleOpenWaterCmd(int id, int cmd) MOOSPause(10); pm->m_lowerCommManager->operate_HVA_openWaterCoverStartCylinderCircuit_Breaker(1); } + else if(pm->currentMod == PMMode::Debug) + { + + if(cmd == EquipmentCommand::ON) + { + pm->m_driver.setDeviceState(pm->m_subDisSysCmd, static_cast(id), (unsigned char)cmd); + MOOSPause(5); + pm->m_lowerCommManager->operate_HVA_openWaterCoverStartCylinderCircuit_Breaker(1); + } + else if(cmd == EquipmentCommand::OFF) + { + pm->m_lowerCommManager->operate_HVA_openWaterCoverStartCylinderCircuit_Breaker(0); + MOOSPause(5); + pm->m_driver.setDeviceState(pm->m_subDisSysCmd, static_cast(id), (unsigned char)cmd); + } + else if(cmd == EquipmentCommand::POWER_ON) + { + pm->m_lowerCommManager->operate_HVA_openWaterCoverStartCylinderCircuit_Breaker(1); + } + else if(cmd == EquipmentCommand::POWER_OFF) + { + pm->m_lowerCommManager->operate_HVA_openWaterCoverStartCylinderCircuit_Breaker(0); + } + else if(cmd == EquipmentCommand::METER_OFF) + { + pm->m_driver.setDeviceState(pm->m_subDisSysCmd, static_cast(id), (unsigned char)0); + } + else if(cmd == EquipmentCommand::METER_ON) + { + pm->m_driver.setDeviceState(pm->m_subDisSysCmd, static_cast(id), (unsigned char)1); + } + } } + } void PowerManagerFsm::handleSternRudderCmd(int id, int cmd) { if(id == DeviceId::sternRudderServo1 || - id == DeviceId::sternRudderServo2 || - id == DeviceId::sternRudderServo3 || - id == DeviceId::sternRudderServo4) + id == DeviceId::sternRudderServo2) { if(pm->currentMod == PMMode::Test) { if(cmd == EquipmentCommand::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); - pm->m_driver.setDeviceState(pm->m_subDisSysCmd, DeviceId::sternRudderServo3, (unsigned char)cmd); - pm->m_driver.setDeviceState(pm->m_subDisSysCmd, DeviceId::sternRudderServo4, (unsigned char)cmd); } else if (cmd == EquipmentCommand::ON) { pm->m_driver.setDeviceState(pm->m_subDisSysCmd, DeviceId::sternRudderServo1, (unsigned char)cmd); pm->m_driver.setDeviceState(pm->m_subDisSysCmd, DeviceId::sternRudderServo2, (unsigned char)cmd); + MOOSPause(10); + pm->m_lowerCommManager->operate_HV_sternRudder1_Breaker(1); + } + } + else if(pm->currentMod == PMMode::Debug) + { + + if(cmd == EquipmentCommand::ON) + { + pm->m_driver.setDeviceState(pm->m_subDisSysCmd, static_cast(id), (unsigned char)cmd); + MOOSPause(5); + pm->m_lowerCommManager->operate_HV_sternRudder1_Breaker(1); + } + else if(cmd == EquipmentCommand::OFF) + { + pm->m_lowerCommManager->operate_HV_sternRudder1_Breaker(0); + MOOSPause(5); + pm->m_driver.setDeviceState(pm->m_subDisSysCmd, static_cast(id), (unsigned char)cmd); + } + else if(cmd == EquipmentCommand::POWER_ON) + { + pm->m_lowerCommManager->operate_HV_sternRudder1_Breaker(1); + } + else if(cmd == EquipmentCommand::POWER_OFF) + { + pm->m_lowerCommManager->operate_HV_sternRudder1_Breaker(0); + } + else if(cmd == EquipmentCommand::METER_OFF) + { + pm->m_driver.setDeviceState(pm->m_subDisSysCmd, static_cast(id), (unsigned char)0); + } + else if(cmd == EquipmentCommand::METER_ON) + { + pm->m_driver.setDeviceState(pm->m_subDisSysCmd, static_cast(id), (unsigned char)1); + } + } + } + + if(id == DeviceId::sternRudderServo3 || + id == DeviceId::sternRudderServo4 ) + { + if(pm->currentMod == PMMode::Test) + { + if(cmd == EquipmentCommand::OFF) + { + pm->m_lowerCommManager->operate_HV_sternRudder2_Breaker(0); + MOOSPause(10); + pm->m_driver.setDeviceState(pm->m_subDisSysCmd, DeviceId::sternRudderServo3, (unsigned char)cmd); + pm->m_driver.setDeviceState(pm->m_subDisSysCmd, DeviceId::sternRudderServo4, (unsigned char)cmd); + + } else if (cmd == EquipmentCommand::ON) + { 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(1); pm->m_lowerCommManager->operate_HV_sternRudder2_Breaker(1); } } + else if(pm->currentMod == PMMode::Debug) + { + + if(cmd == EquipmentCommand::ON) + { + pm->m_driver.setDeviceState(pm->m_subDisSysCmd, static_cast(id), (unsigned char)cmd); + MOOSPause(5); + pm->m_lowerCommManager->operate_HV_sternRudder2_Breaker(1); + } + else if(cmd == EquipmentCommand::OFF) + { + pm->m_lowerCommManager->operate_HV_sternRudder2_Breaker(0); + MOOSPause(5); + pm->m_driver.setDeviceState(pm->m_subDisSysCmd, static_cast(id), (unsigned char)cmd); + } + else if(cmd == EquipmentCommand::POWER_ON) + { + pm->m_lowerCommManager->operate_HV_sternRudder2_Breaker(1); + } + else if(cmd == EquipmentCommand::POWER_OFF) + { + pm->m_lowerCommManager->operate_HV_sternRudder2_Breaker(0); + } + else if(cmd == EquipmentCommand::METER_OFF) + { + pm->m_driver.setDeviceState(pm->m_subDisSysCmd, static_cast(id), (unsigned char)0); + } + else if(cmd == EquipmentCommand::METER_ON) + { + pm->m_driver.setDeviceState(pm->m_subDisSysCmd, static_cast(id), (unsigned char)1); + } + } } } @@ -227,6 +402,38 @@ void PowerManagerFsm::handlePropulsionMotorCmd(int id, int cmd) pm->m_lowerCommManager->operate_HV_propulsionMotor_Breaker(1); } } + else if(pm->currentMod == PMMode::Debug) + { + + if(cmd == EquipmentCommand::ON) + { + pm->m_driver.setDeviceState(pm->m_subDisSysCmd, static_cast(id), (unsigned char)cmd); + MOOSPause(5); + pm->m_lowerCommManager->operate_HV_propulsionMotor_Breaker(1); + } + else if(cmd == EquipmentCommand::OFF) + { + pm->m_lowerCommManager->operate_HV_propulsionMotor_Breaker(0); + MOOSPause(5); + pm->m_driver.setDeviceState(pm->m_subDisSysCmd, static_cast(id), (unsigned char)cmd); + } + else if(cmd == EquipmentCommand::POWER_ON) + { + pm->m_lowerCommManager->operate_HV_propulsionMotor_Breaker(1); + } + else if(cmd == EquipmentCommand::POWER_OFF) + { + pm->m_lowerCommManager->operate_HV_propulsionMotor_Breaker(0); + } + else if(cmd == EquipmentCommand::METER_OFF) + { + pm->m_driver.setDeviceState(pm->m_subDisSysCmd, static_cast(id), (unsigned char)0); + } + else if(cmd == EquipmentCommand::METER_ON) + { + pm->m_driver.setDeviceState(pm->m_subDisSysCmd, static_cast(id), (unsigned char)1); + } + } } } @@ -254,6 +461,38 @@ void PowerManagerFsm::handleBuoyancyAdjustmentCmd(int id, int cmd) pm->m_lowerCommManager->operate_HVA_bowFTDevice123Circuit_Breaker(1); } } + else if(pm->currentMod == PMMode::Debug) + { + + if(cmd == EquipmentCommand::ON) + { + pm->m_driver.setDeviceState(pm->m_subDisSysCmd, static_cast(id), (unsigned char)cmd); + MOOSPause(5); + pm->m_lowerCommManager->operate_HVA_bowFTDevice123Circuit_Breaker(1); + } + else if(cmd == EquipmentCommand::OFF) + { + pm->m_lowerCommManager->operate_HVA_bowFTDevice123Circuit_Breaker(0); + MOOSPause(5); + pm->m_driver.setDeviceState(pm->m_subDisSysCmd, static_cast(id), (unsigned char)cmd); + } + else if(cmd == EquipmentCommand::POWER_ON) + { + pm->m_lowerCommManager->operate_HVA_bowFTDevice123Circuit_Breaker(1); + } + else if(cmd == EquipmentCommand::POWER_OFF) + { + pm->m_lowerCommManager->operate_HVA_bowFTDevice123Circuit_Breaker(0); + } + else if(cmd == EquipmentCommand::METER_OFF) + { + pm->m_driver.setDeviceState(pm->m_subDisSysCmd, static_cast(id), (unsigned char)0); + } + else if(cmd == EquipmentCommand::METER_ON) + { + pm->m_driver.setDeviceState(pm->m_subDisSysCmd, static_cast(id), (unsigned char)1); + } + } } if(id == DeviceId::buoyancyAdjust4 || @@ -275,6 +514,38 @@ void PowerManagerFsm::handleBuoyancyAdjustmentCmd(int id, int cmd) pm->m_lowerCommManager->operate_HV_sternFt45_Breaker(1); } } + else if(pm->currentMod == PMMode::Debug) + { + + if(cmd == EquipmentCommand::ON) + { + pm->m_driver.setDeviceState(pm->m_subDisSysCmd, static_cast(id), (unsigned char)cmd); + MOOSPause(5); + pm->m_lowerCommManager->operate_HV_sternFt45_Breaker(1); + } + else if(cmd == EquipmentCommand::OFF) + { + pm->m_lowerCommManager->operate_HV_sternFt45_Breaker(0); + MOOSPause(5); + pm->m_driver.setDeviceState(pm->m_subDisSysCmd, static_cast(id), (unsigned char)cmd); + } + else if(cmd == EquipmentCommand::POWER_ON) + { + pm->m_lowerCommManager->operate_HV_sternFt45_Breaker(1); + } + else if(cmd == EquipmentCommand::POWER_OFF) + { + pm->m_lowerCommManager->operate_HV_sternFt45_Breaker(0); + } + else if(cmd == EquipmentCommand::METER_OFF) + { + pm->m_driver.setDeviceState(pm->m_subDisSysCmd, static_cast(id), (unsigned char)0); + } + else if(cmd == EquipmentCommand::METER_ON) + { + pm->m_driver.setDeviceState(pm->m_subDisSysCmd, static_cast(id), (unsigned char)1); + } + } } } @@ -296,6 +567,38 @@ void PowerManagerFsm::handleFBSystemCmd(int id, int cmd) pm->m_lowerCommManager->operate_HV_fbReserved_Breaker(1); } } + else if(pm->currentMod == PMMode::Debug) + { + + if(cmd == EquipmentCommand::ON) + { + pm->m_driver.setDeviceState(pm->m_subDisSysCmd, static_cast(id), (unsigned char)cmd); + MOOSPause(5); + pm->m_lowerCommManager->operate_HV_fbReserved_Breaker(1); + } + else if(cmd == EquipmentCommand::OFF) + { + pm->m_lowerCommManager->operate_HV_fbReserved_Breaker(0); + MOOSPause(5); + pm->m_driver.setDeviceState(pm->m_subDisSysCmd, static_cast(id), (unsigned char)cmd); + } + else if(cmd == EquipmentCommand::POWER_ON) + { + pm->m_lowerCommManager->operate_HV_fbReserved_Breaker(1); + } + else if(cmd == EquipmentCommand::POWER_OFF) + { + pm->m_lowerCommManager->operate_HV_fbReserved_Breaker(0); + } + else if(cmd == EquipmentCommand::METER_OFF) + { + pm->m_driver.setDeviceState(pm->m_subDisSysCmd, static_cast(id), (unsigned char)0); + } + else if(cmd == EquipmentCommand::METER_ON) + { + pm->m_driver.setDeviceState(pm->m_subDisSysCmd, static_cast(id), (unsigned char)1); + } + } } } @@ -325,6 +628,38 @@ void PowerManagerFsm::handleSideSonarCmd(int id, int cmd) pm->m_lowerCommManager->operate_HVA_xczCircuit_Breaker(1); } } + else if(pm->currentMod == PMMode::Debug) + { + + if(cmd == EquipmentCommand::ON) + { + pm->m_driver.setDeviceState(pm->m_subDisSysCmd, static_cast(id), (unsigned char)cmd); + MOOSPause(5); + pm->m_lowerCommManager->operate_HVA_xczCircuit_Breaker(1); + } + else if(cmd == EquipmentCommand::OFF) + { + pm->m_lowerCommManager->operate_HVA_xczCircuit_Breaker(0); + MOOSPause(5); + pm->m_driver.setDeviceState(pm->m_subDisSysCmd, static_cast(id), (unsigned char)cmd); + } + else if(cmd == EquipmentCommand::POWER_ON) + { + pm->m_lowerCommManager->operate_HVA_xczCircuit_Breaker(1); + } + else if(cmd == EquipmentCommand::POWER_OFF) + { + pm->m_lowerCommManager->operate_HVA_xczCircuit_Breaker(0); + } + else if(cmd == EquipmentCommand::METER_OFF) + { + pm->m_driver.setDeviceState(pm->m_subDisSysCmd, static_cast(id), (unsigned char)0); + } + else if(cmd == EquipmentCommand::METER_ON) + { + pm->m_driver.setDeviceState(pm->m_subDisSysCmd, static_cast(id), (unsigned char)1); + } + } } } @@ -347,6 +682,38 @@ void PowerManagerFsm::handleMastFoldingSystemCmd(int id, int cmd) pm->m_lowerCommManager->operate_HVA_mastSteeringGearControlBoxCircuit_Breaker(1); } } + else if(pm->currentMod == PMMode::Debug) + { + + if(cmd == EquipmentCommand::ON) + { + pm->m_driver.setDeviceState(pm->m_subDisSysCmd, static_cast(id), (unsigned char)cmd); + MOOSPause(5); + pm->m_lowerCommManager->operate_HVA_mastSteeringGearControlBoxCircuit_Breaker(1); + } + else if(cmd == EquipmentCommand::OFF) + { + pm->m_lowerCommManager->operate_HVA_mastSteeringGearControlBoxCircuit_Breaker(0); + MOOSPause(5); + pm->m_driver.setDeviceState(pm->m_subDisSysCmd, static_cast(id), (unsigned char)cmd); + } + else if(cmd == EquipmentCommand::POWER_ON) + { + pm->m_lowerCommManager->operate_HVA_mastSteeringGearControlBoxCircuit_Breaker(1); + } + else if(cmd == EquipmentCommand::POWER_OFF) + { + pm->m_lowerCommManager->operate_HVA_mastSteeringGearControlBoxCircuit_Breaker(0); + } + else if(cmd == EquipmentCommand::METER_OFF) + { + pm->m_driver.setDeviceState(pm->m_subDisSysCmd, static_cast(id), (unsigned char)0); + } + else if(cmd == EquipmentCommand::METER_ON) + { + pm->m_driver.setDeviceState(pm->m_subDisSysCmd, static_cast(id), (unsigned char)1); + } + } } } @@ -1060,1747 +1427,6 @@ void PowerManagerFsm::getOpenWaterStatus(DriverTable &s) } - -// void PowerManagerFsm::react(DevCmdExt const &e) { -// LOG_F(INFO, "DevCmdExt received - id: %d, cmd: %d", e.id, e.cmd); -// switch (e.id) -// { -// case 0: -// { -// LOG_F(INFO, "DevCmdExt received singleBeamSonar1 - id: %d, cmd: %d", e.id, e.cmd); -// if(e.cmd <=1) -// { -// pm->m_subDisSysCmd.singleBeamSonar1 = e.cmd; -// #ifdef DEBUG -// pm->m_currentDriverState.singleBeamSonar1 = e.cmd; -// #endif -// } -// else -// LOG_F(WARNING, "DevCmdExt received singleBeamSonar1 - id: %d, cmd: %d is out of range", e.id, e.cmd); -// break; -// } -// case 1: -// { -// LOG_F(INFO, "DevCmdExt received singleBeamSonar2 - id: %d, cmd: %d", e.id, e.cmd); -// if (e.cmd <= 1) -// { -// pm->m_subDisSysCmd.singleBeamSonar2 = e.cmd; -// #ifdef DEBUG -// pm->m_currentDriverState.singleBeamSonar2 = e.cmd; -// #endif -// } -// else -// { -// LOG_F(WARNING, "DevCmdExt received singleBeamSonar2 - id: %d, cmd: %d is out of range", e.id, e.cmd); -// } -// break; -// } -// case 2: -// { -// LOG_F(INFO, "DevCmdExt received singleBeamSonar3 - id: %d, cmd: %d", e.id, e.cmd); -// if (e.cmd <= 1) -// { -// pm->m_subDisSysCmd.singleBeamSonar3 = e.cmd; -// #ifdef DEBUG -// pm->m_currentDriverState.singleBeamSonar3 = e.cmd; -// #endif -// } -// else -// { -// LOG_F(WARNING, "DevCmdExt received singleBeamSonar3 - id: %d, cmd: %d is out of range", e.id, e.cmd); -// } -// break; -// } -// case 3: -// { -// LOG_F(INFO, "DevCmdExt received singleBeamSonar4 - id: %d, cmd: %d", e.id, e.cmd); -// if (e.cmd <= 1) -// { -// pm->m_subDisSysCmd.singleBeamSonar4 = e.cmd; -// #ifdef DEBUG -// pm->m_currentDriverState.singleBeamSonar4 = e.cmd; -// #endif -// } -// else -// { -// LOG_F(WARNING, "DevCmdExt received singleBeamSonar4 - id: %d, cmd: %d is out of range", e.id, e.cmd); -// } -// break; -// } -// case 4: -// { -// LOG_F(INFO, "DevCmdExt received singleBeamSonar5 - id: %d, cmd: %d", e.id, e.cmd); -// if (e.cmd <= 1) -// { -// pm->m_subDisSysCmd.singleBeamSonar5 = e.cmd; -// #ifdef DEBUG -// pm->m_currentDriverState.singleBeamSonar5 = e.cmd; -// #endif -// } -// else -// { -// LOG_F(WARNING, "DevCmdExt received singleBeamSonar5 - id: %d, cmd: %d is out of range", e.id, e.cmd); -// } -// break; -// } -// case 5: -// { -// LOG_F(INFO, "DevCmdExt received singleBeamSonar6 - id: %d, cmd: %d", e.id, e.cmd); -// if (e.cmd <= 1) -// { -// pm->m_subDisSysCmd.singleBeamSonar6 = e.cmd; -// #ifdef DEBUG -// pm->m_currentDriverState.singleBeamSonar6 = e.cmd; -// #endif -// } -// else -// { -// LOG_F(WARNING, "DevCmdExt received singleBeamSonar6 - id: %d, cmd: %d is out of range", e.id, e.cmd); -// } -// break; -// } -// case 6: -// { -// LOG_F(INFO, "DevCmdExt received singleBeamSonar7 - id: %d, cmd: %d", e.id, e.cmd); -// if (e.cmd <= 1) -// { -// pm->m_subDisSysCmd.singleBeamSonar7 = e.cmd; -// #ifdef DEBUG -// pm->m_currentDriverState.singleBeamSonar7 = e.cmd; -// #endif -// } -// else -// { -// LOG_F(WARNING, "DevCmdExt received singleBeamSonar7 - id: %d, cmd: %d is out of range", e.id, e.cmd); -// } -// break; -// } -// case 7: -// { -// LOG_F(INFO, "DevCmdExt received singleBeamSonar8 - id: %d, cmd: %d", e.id, e.cmd); -// if (e.cmd <= 1) -// { -// pm->m_subDisSysCmd.singleBeamSonar8 = e.cmd; -// #ifdef DEBUG -// pm->m_currentDriverState.singleBeamSonar8 = e.cmd; -// #endif -// } -// else -// { -// LOG_F(WARNING, "DevCmdExt received singleBeamSonar8 - id: %d, cmd: %d is out of range", e.id, e.cmd); -// } -// break; -// } - -// case 8: -// { -// LOG_F(INFO, "DevCmdExt received forwardSonar - id: %d, cmd: %d", e.id, e.cmd); -// if (e.cmd <= 1) -// { -// pm->m_subDisSysCmd.forwardSonar = e.cmd; -// #ifdef DEBUG -// pm->m_currentDriverState.forwardSonar = e.cmd; -// #endif -// } -// else -// { -// LOG_F(WARNING, "DevCmdExt received forwardSonar - id: %d, cmd: %d is out of range", e.id, e.cmd); -// } -// break; -// } -// case 9: -// { -// LOG_F(INFO, "DevCmdExt received bowCover1 - id: %d, cmd: %d", e.id, e.cmd); -// #ifdef DEBUG -// pm->m_currentDriverState.bowCover1 = e.cmd; -// #endif -// if (e.cmd == 0) -// { -// pm->m_lowerCommManager->operate_HVA_actuatorCircuit_Breaker(BREAK_OFF); -// MOOSPause(10); -// pm->m_subDisSysCmd.bowCover1 = 0; -// //TODO :动力电断电 -// } -// else if (e.cmd == 1) -// { -// //TODO :动力电上电 -// pm->m_lowerCommManager->operate_HVA_actuatorCircuit_Breaker(BREAK_ON); -// MOOSPause(1); -// pm->m_subDisSysCmd.bowCover1 = 1; -// } -// else if (e.cmd == 2) -// { -// pm->m_subDisSysCmd.bowCover1 = 1; -// } -// else if (e.cmd == 3) -// { -// //TODO :动力电上电 -// pm->m_lowerCommManager->operate_HVA_actuatorCircuit_Breaker(BREAK_ON); -// } -// else if (e.cmd == 4) -// { -// pm->m_subDisSysCmd.bowCover1 = 0; -// } -// else if (e.cmd == 5) -// { -// //TODO :动力电断电 -// pm->m_lowerCommManager->operate_HVA_actuatorCircuit_Breaker(BREAK_OFF); -// } -// else -// { -// LOG_F(WARNING, "DevCmdExt received bowCover1 - id: %d, cmd: %d is out of range", e.id, e.cmd); -// } -// break; -// } - -// case 10: -// { -// LOG_F(INFO, "DevCmdExt received bowCover2 - id: %d, cmd: %d", e.id, e.cmd); -// #ifdef DEBUG -// pm->m_currentDriverState.bowCover2 = e.cmd; -// #endif -// if (e.cmd == 0) -// { -// //TODO :动力电断电 -// pm->m_lowerCommManager->operate_HVA_actuatorCircuit_Breaker(BREAK_OFF); -// MOOSPause(1); -// pm->m_subDisSysCmd.bowCover2 = 0; -// } -// else if (e.cmd == 1) -// { -// pm->m_subDisSysCmd.bowCover2 = 1; -// //TODO :动力电上电 -// MOOSPause(1); -// pm->m_lowerCommManager->operate_HVA_actuatorCircuit_Breaker(BREAK_ON); -// } -// else if (e.cmd == 2) -// { -// pm->m_subDisSysCmd.bowCover2 = 1; -// } -// else if (e.cmd == 3) -// { -// //TODO :动力电上电 -// } -// else if (e.cmd == 4) -// { -// pm->m_subDisSysCmd.bowCover2 = 0; -// } -// else if (e.cmd == 5) -// { -// //TODO :动力电断电 -// pm->m_lowerCommManager->operate_HVA_actuatorCircuit_Breaker(BREAK_OFF); -// } -// else -// { -// LOG_F(WARNING, "DevCmdExt received bowCover2 - id: %d, cmd: %d is out of range", e.id, e.cmd); -// } -// break; -// } -// case 11: -// { -// LOG_F(INFO, "DevCmdExt received bowCover3 - id: %d, cmd: %d", e.id, e.cmd); -// #ifdef DEBUG -// pm->m_currentDriverState.bowCover3 = e.cmd; -// #endif -// if (e.cmd == 0) -// { -// pm->m_subDisSysCmd.bowCover3 = 0; -// //TODO :动力电断电 -// MOOSPause(1); -// pm->m_lowerCommManager->operate_HVA_actuatorCircuit_Breaker(BREAK_OFF); -// } -// else if (e.cmd == 1) -// { -// pm->m_subDisSysCmd.bowCover3 = 1; -// //TODO :动力电上电 -// MOOSPause(1); -// pm->m_lowerCommManager->operate_HVA_actuatorCircuit_Breaker(BREAK_ON); -// } -// else if (e.cmd == 2) -// { -// pm->m_subDisSysCmd.bowCover3 = 1; -// } -// else if (e.cmd == 3) -// { -// //TODO :动力电上电 -// pm->m_lowerCommManager->operate_HVA_actuatorCircuit_Breaker(BREAK_ON); -// } -// else if (e.cmd == 4) -// { -// pm->m_subDisSysCmd.bowCover3 = 0; -// } -// else if (e.cmd == 5) -// { -// //TODO :动力电断电 -// pm->m_lowerCommManager->operate_HVA_actuatorCircuit_Breaker(BREAK_OFF); -// } -// else -// { -// LOG_F(WARNING, "DevCmdExt received bowCover2 - id: %d, cmd: %d is out of range", e.id, e.cmd); -// } -// break; -// } -// case 12: -// { -// LOG_F(INFO, "DevCmdExt received bowCover4 - id: %d, cmd: %d", e.id, e.cmd); -// #ifdef DEBUG -// pm->m_currentDriverState.bowCover4 = e.cmd; -// #endif -// if (e.cmd == 0) -// { -// pm->m_subDisSysCmd.bowCover4 = 0; -// //TODO :动力电断电 -// MOOSPause(1); -// pm->m_lowerCommManager->operate_HVA_actuatorCircuit_Breaker(BREAK_OFF); -// } -// else if (e.cmd == 1) -// { -// pm->m_subDisSysCmd.bowCover4 = 1; -// //TODO :动力电上电 -// MOOSPause(1); -// pm->m_lowerCommManager->operate_HVA_actuatorCircuit_Breaker(BREAK_ON); -// } -// else if (e.cmd == 2) -// { -// pm->m_subDisSysCmd.bowCover4 = 1; -// } -// else if (e.cmd == 3) -// { -// //TODO :动力电上电 -// pm->m_lowerCommManager->operate_HVA_actuatorCircuit_Breaker(BREAK_ON); -// } -// else if (e.cmd == 4) -// { -// pm->m_subDisSysCmd.bowCover4 = 0; -// } -// else if (e.cmd == 5) -// { -// //TODO :动力电断电 -// pm->m_lowerCommManager->operate_HVA_actuatorCircuit_Breaker(BREAK_OFF); -// } -// else -// { -// LOG_F(WARNING, "DevCmdExt received bowCover2 - id: %d, cmd: %d is out of range", e.id, e.cmd); -// } -// break; -// } -// case 13: -// { -// LOG_F(INFO, "DevCmdExt received bowCover5 - id: %d, cmd: %d", e.id, e.cmd); -// #ifdef DEBUG -// pm->m_currentDriverState.bowCover5 = e.cmd; -// #endif -// if (e.cmd == 0) -// { -// pm->m_subDisSysCmd.bowCover5 = 0; -// //TODO :动力电断电 -// MOOSPause(1); -// pm->m_lowerCommManager->operate_HVA_actuatorCircuit_Breaker(BREAK_OFF); -// } -// else if (e.cmd == 1) -// { -// pm->m_subDisSysCmd.bowCover5 = 1; -// //TODO :动力电上电 -// MOOSPause(1); -// pm->m_lowerCommManager->operate_HVA_actuatorCircuit_Breaker(BREAK_ON); -// } -// else if (e.cmd == 2) -// { -// pm->m_subDisSysCmd.bowCover5 = 1; -// } -// else if (e.cmd == 3) -// { -// //TODO :动力电上电 -// pm->m_lowerCommManager->operate_HVA_actuatorCircuit_Breaker(BREAK_ON); -// } -// else if (e.cmd == 4) -// { -// pm->m_subDisSysCmd.bowCover5 = 0; -// } -// else if (e.cmd == 5) -// { -// //TODO :动力电断电 -// pm->m_lowerCommManager->operate_HVA_actuatorCircuit_Breaker(BREAK_OFF); -// } -// else -// { -// LOG_F(WARNING, "DevCmdExt received bowCover5 - id: %d, cmd: %d is out of range", e.id, e.cmd); -// } -// break; -// } -// case 14: -// { -// LOG_F(INFO, "DevCmdExt received bowCover6 - id: %d, cmd: %d", e.id, e.cmd); -// #ifdef DEBUG -// pm->m_currentDriverState.bowCover6 = e.cmd; -// #endif -// if (e.cmd == 0) -// { -// pm->m_subDisSysCmd.bowCover6 = 0; -// //TODO :动力电断电 -// MOOSPause(1); -// pm->m_lowerCommManager->operate_HVA_actuatorCircuit_Breaker(BREAK_OFF); -// } -// else if (e.cmd == 1) -// { -// pm->m_subDisSysCmd.bowCover6 = 1; -// //TODO :动力电上电 -// MOOSPause(1); -// pm->m_lowerCommManager->operate_HVA_actuatorCircuit_Breaker(BREAK_ON); -// } -// else if (e.cmd == 2) -// { -// pm->m_subDisSysCmd.bowCover6 = 1; -// } -// else if (e.cmd == 3) -// { -// //TODO :动力电上电 -// pm->m_lowerCommManager->operate_HVA_actuatorCircuit_Breaker(BREAK_ON); -// } -// else if (e.cmd == 4) -// { -// pm->m_subDisSysCmd.bowCover6 = 0; -// } -// else if (e.cmd == 5) -// { -// //TODO :动力电断电 -// pm->m_lowerCommManager->operate_HVA_actuatorCircuit_Breaker(BREAK_OFF); -// } -// else -// { -// LOG_F(WARNING, "DevCmdExt received bowCover6 - id: %d, cmd: %d is out of range", e.id, e.cmd); -// } -// break; -// } -// case 15: -// { -// LOG_F(INFO, "DevCmdExt received bowRudderDeploy - id: %d, cmd: %d", e.id, e.cmd); -// #ifdef DEBUG -// pm->m_currentDriverState.bowRudderDeploy = e.cmd; -// #endif -// if (e.cmd == 0) -// { -// pm->m_subDisSysCmd.bowRudderDeploy = 0; -// //TODO :动力电断电 -// MOOSPause(1); -// pm->m_lowerCommManager->operate_HVA_bowRudderControlBoxCircuit_Breaker(BREAK_OFF); -// } -// else if (e.cmd == 1) -// { -// pm->m_subDisSysCmd.bowRudderDeploy = 1; -// //TODO :动力电上电 -// MOOSPause(1); -// pm->m_lowerCommManager->operate_HVA_bowRudderControlBoxCircuit_Breaker(BREAK_ON); -// } -// else if (e.cmd == 2) -// { -// pm->m_subDisSysCmd.bowRudderDeploy = 1; -// } -// else if (e.cmd == 3) -// { -// //TODO :动力电上电 -// pm->m_lowerCommManager->operate_HVA_bowRudderControlBoxCircuit_Breaker(BREAK_ON); -// } -// else if (e.cmd == 4) -// { -// pm->m_subDisSysCmd.bowRudderDeploy = 0; -// } -// else if (e.cmd == 5) -// { -// //TODO :动力电断电 -// pm->m_lowerCommManager->operate_HVA_bowRudderControlBoxCircuit_Breaker(BREAK_OFF); -// } -// else -// { -// LOG_F(WARNING, "DevCmdExt received bowRudderDeploy - id: %d, cmd: %d is out of range", e.id, e.cmd); -// } -// break; -// } -// case 16: -// { -// LOG_F(INFO, "DevCmdExt received bowRudderServo1 - id: %d, cmd: %d", e.id, e.cmd); -// #ifdef DEBUG -// pm->m_currentDriverState.bowRudderServo1 = e.cmd; -// #endif -// if (e.cmd == 0) -// { -// pm->m_subDisSysCmd.bowRudderServo1 = 0; -// //TODO :动力电断电 -// MOOSPause(1); -// pm->m_lowerCommManager->operate_HVA_bowRudderControlBoxCircuit_Breaker(BREAK_OFF); - -// } -// else if (e.cmd == 1) -// { -// pm->m_subDisSysCmd.bowRudderServo1 = 1; -// //TODO :动力电上电 -// MOOSPause(1); -// pm->m_lowerCommManager->operate_HVA_bowRudderControlBoxCircuit_Breaker(BREAK_ON); -// } -// else if (e.cmd == 2) -// { -// pm->m_subDisSysCmd.bowRudderServo1 = 1; -// } -// else if (e.cmd == 3) -// { -// //TODO :动力电上电 -// pm->m_lowerCommManager->operate_HVA_bowRudderControlBoxCircuit_Breaker(BREAK_ON); -// } -// else if (e.cmd == 4) -// { -// pm->m_subDisSysCmd.bowRudderServo1 = 0; -// } -// else if (e.cmd == 5) -// { -// //TODO :动力电断电 -// pm->m_lowerCommManager->operate_HVA_bowRudderControlBoxCircuit_Breaker(BREAK_OFF); -// } -// else -// { -// LOG_F(WARNING, "DevCmdExt received bowRudderServo1 - id: %d, cmd: %d is out of range", e.id, e.cmd); -// } -// break; -// } -// case 17: -// { -// LOG_F(INFO, "DevCmdExt received bowRudderServo2 - id: %d, cmd: %d", e.id, e.cmd); -// #ifdef DEBUG -// pm->m_currentDriverState.bowRudderServo2 = e.cmd; -// #endif -// if (e.cmd == 0) -// { -// pm->m_subDisSysCmd.bowRudderServo2 = 0; -// //TODO :动力电断电 -// MOOSPause(1); -// pm->m_lowerCommManager->operate_HVA_bowRudderControlBoxCircuit_Breaker(BREAK_OFF); -// } -// else if (e.cmd == 1) -// { -// pm->m_subDisSysCmd.bowRudderServo2 = 1; -// //TODO :动力电上电 -// MOOSPause(1); -// pm->m_lowerCommManager->operate_HVA_bowRudderControlBoxCircuit_Breaker(BREAK_ON); -// } -// else if (e.cmd == 2) -// { -// pm->m_subDisSysCmd.bowRudderServo2 = 1; -// } -// else if (e.cmd == 3) -// { -// //TODO :动力电上电 -// pm->m_lowerCommManager->operate_HVA_bowRudderControlBoxCircuit_Breaker(BREAK_ON); -// } -// else if (e.cmd == 4) -// { -// pm->m_subDisSysCmd.bowRudderServo2 = 0; -// } -// else if (e.cmd == 5) -// { -// //TODO :动力电断电 -// pm->m_lowerCommManager->operate_HVA_bowRudderControlBoxCircuit_Breaker(BREAK_OFF); -// } -// else -// { -// LOG_F(WARNING, "DevCmdExt received bowRudderServo2 - id: %d, cmd: %d is out of range", e.id, e.cmd); -// } -// break; -// } -// case 18: -// { -// LOG_F(INFO, "DevCmdExt received depth1 - id: %d, cmd: %d", e.id, e.cmd); -// #ifdef DEBUG -// pm->m_currentDriverState.depth1 = e.cmd; -// #endif -// if (e.cmd <= 1) -// { -// pm->m_subDisSysCmd.depth1 = e.cmd; -// } -// else -// { -// LOG_F(WARNING, "DevCmdExt received depth1 - id: %d, cmd: %d is out of range", e.id, e.cmd); -// } -// break; -// } -// case 19: -// { -// LOG_F(INFO, "DevCmdExt received depth2 - id: %d, cmd: %d", e.id, e.cmd); -// if (e.cmd <= 1) -// { -// pm->m_subDisSysCmd.depth2 = e.cmd; -// } -// else -// { -// LOG_F(WARNING, "DevCmdExt received depth2 - id: %d, cmd: %d is out of range", e.id, e.cmd); -// } -// break; -// } -// case 20: -// { -// LOG_F(INFO, "DevCmdExt received depth3 - id: %d, cmd: %d", e.id, e.cmd); -// #ifdef DEBUG -// pm->m_currentDriverState.depth3 = e.cmd; -// #endif -// if (e.cmd <= 1) -// { -// pm->m_subDisSysCmd.depth3 = e.cmd; -// } -// else -// { -// LOG_F(WARNING, "DevCmdExt received depth3 - id: %d, cmd: %d is out of range", e.id, e.cmd); -// } -// break; -// } -// case 21: -// { -// LOG_F(INFO, "DevCmdExt received overDeep1 - id: %d, cmd: %d", e.id, e.cmd); -// #ifdef DEBUG -// pm->m_currentDriverState.overDeep1 = e.cmd; -// #endif -// if (e.cmd <= 1) -// { -// pm->m_subDisSysCmd.overDeep1 = e.cmd; -// } -// else -// { -// LOG_F(WARNING, "DevCmdExt received overDeep1 - id: %d, cmd: %d is out of range", e.id, e.cmd); -// } -// break; -// } -// case 22: -// { -// LOG_F(INFO, " - id: %d, cmd: %d", e.id, e.cmd); -// #ifdef DEBUG -// pm->m_currentDriverState.overDeep2 = e.cmd; -// #endif -// if (e.cmd <= 1) -// { -// pm->m_subDisSysCmd.overDeep2 = e.cmd; -// } -// else -// { -// LOG_F(WARNING, "DevCmdExt received overDeep2 - id: %d, cmd: %d is out of range", e.id, e.cmd); -// } -// break; -// } -// case 23: -// { -// LOG_F(INFO, "DevCmdExt received overDeep1 - id: %d, cmd: %d", e.id, e.cmd); -// #ifdef DEBUG -// pm->m_currentDriverState.ctd1 = e.cmd; -// #endif -// if (e.cmd <= 1) -// { -// pm->m_subDisSysCmd.ctd1 = e.cmd; -// } -// else -// { -// LOG_F(WARNING, "DevCmdExt received ctd1 - id: %d, cmd: %d is out of range", e.id, e.cmd); -// } -// break; -// } -// case 24: -// { -// LOG_F(INFO, "DevCmdExt received overDeep1 - id: %d, cmd: %d", e.id, e.cmd); -// #ifdef DEBUG -// pm->m_currentDriverState.ctd2 = e.cmd; -// #endif -// if (e.cmd <= 1) -// { -// pm->m_subDisSysCmd.ctd2 = e.cmd; -// } -// else -// { -// LOG_F(WARNING, "DevCmdExt received ctd2 - id: %d, cmd: %d is out of range", e.id, e.cmd); -// } -// break; -// } -// case 25: -// { -// LOG_F(INFO, "DevCmdExt received overDeep1 - id: %d, cmd: %d", e.id, e.cmd); -// #ifdef DEBUG -// pm->m_currentDriverState.soundVeloc = e.cmd; -// #endif -// if (e.cmd <= 1) -// { -// pm->m_subDisSysCmd.soundVeloc = e.cmd; -// } -// else -// { -// LOG_F(WARNING, "DevCmdExt received soundVeloc - id: %d, cmd: %d is out of range", e.id, e.cmd); -// } -// break; -// } -// case 26: -// { -// LOG_F(INFO, "DevCmdExt received waterInject - id: %d, cmd: %d", e.id, e.cmd); -// #ifdef DEBUG -// pm->m_currentDriverState.waterInject = e.cmd; -// #endif -// if (e.cmd == 0) -// { -// pm->m_subDisSysCmd.waterInject = 0; -// //TODO :动力电断电 -// } -// else if (e.cmd == 1) -// { -// pm->m_subDisSysCmd.waterInject = 1; -// //TODO :动力电上电 -// } -// else if (e.cmd == 2) -// { -// pm->m_subDisSysCmd.waterInject = 1; -// } -// else if (e.cmd == 3) -// { -// //TODO :动力电上电 -// } -// else if (e.cmd == 4) -// { -// pm->m_subDisSysCmd.waterInject = 0; -// } -// else if (e.cmd == 5) -// { -// //TODO :动力电断电 -// } -// else -// { -// LOG_F(WARNING, "DevCmdExt received waterInject - id: %d, cmd: %d is out of range", e.id, e.cmd); -// } -// break; -// } -// case 27: -// { -// LOG_F(INFO, "DevCmdExt received bowWaterInet1 - id: %d, cmd: %d", e.id, e.cmd); -// #ifdef DEBUG -// pm->m_currentDriverState.bowWaterInet1 = e.cmd; -// #endif -// if (e.cmd == 0) -// { -// pm->m_subDisSysCmd.bowWaterInet1 = 0; -// //TODO :动力电断电 -// MOOSPause(1); -// pm->m_lowerCommManager->operate_HVA_openWaterCoverStartCylinderCircuit_Breaker(BREAK_OFF); -// } -// else if (e.cmd == 1) -// { -// pm->m_subDisSysCmd.bowWaterInet1 = 1; -// //TODO :动力电上电 -// MOOSPause(1); -// pm->m_lowerCommManager->operate_HVA_openWaterCoverStartCylinderCircuit_Breaker(BREAK_ON); -// } -// else if (e.cmd == 2) -// { -// pm->m_subDisSysCmd.bowWaterInet1 = 1; -// } -// else if (e.cmd == 3) -// { -// //TODO :动力电上电 -// pm->m_lowerCommManager->operate_HVA_openWaterCoverStartCylinderCircuit_Breaker(BREAK_ON); -// } -// else if (e.cmd == 4) -// { -// pm->m_subDisSysCmd.bowWaterInet1 = 0; -// } -// else if (e.cmd == 5) -// { -// //TODO :动力电断电 -// pm->m_lowerCommManager->operate_HVA_openWaterCoverStartCylinderCircuit_Breaker(BREAK_OFF); -// } -// else -// { -// LOG_F(WARNING, "DevCmdExt received bowWaterInet1 - id: %d, cmd: %d is out of range", e.id, e.cmd); -// } -// break; -// } -// case 28: -// { -// LOG_F(INFO, "DevCmdExt received bowWaterInet2 - id: %d, cmd: %d", e.id, e.cmd); -// #ifdef DEBUG -// pm->m_currentDriverState.bowWaterInet2 = e.cmd; -// #endif -// if (e.cmd == 0) -// { -// pm->m_lowerCommManager->operate_HVA_openWaterCoverStartCylinderCircuit_Breaker(BREAK_OFF); -// MOOSPause(1); -// pm->m_subDisSysCmd.bowWaterInet2 = 0; -// //TODO :动力电断电 - -// } -// else if (e.cmd == 1) -// { -// pm->m_subDisSysCmd.bowWaterInet2 = 1; -// MOOSPause(1); -// pm->m_lowerCommManager->operate_HVA_openWaterCoverStartCylinderCircuit_Breaker(BREAK_ON); -// //TODO :动力电上电 -// } -// else if (e.cmd == 2) -// { -// pm->m_subDisSysCmd.bowWaterInet2 = 1; -// } -// else if (e.cmd == 3) -// { -// //TODO :动力电上电 -// pm->m_lowerCommManager->operate_HVA_openWaterCoverStartCylinderCircuit_Breaker(BREAK_ON); -// } -// else if (e.cmd == 4) -// { -// pm->m_subDisSysCmd.bowWaterInet2 = 0; -// } -// else if (e.cmd == 5) -// { -// //TODO :动力电断电 -// pm->m_lowerCommManager->operate_HVA_openWaterCoverStartCylinderCircuit_Breaker(BREAK_OFF); -// } -// else -// { -// LOG_F(WARNING, "DevCmdExt received bowWaterInet2 - id: %d, cmd: %d is out of range", e.id, e.cmd); -// } -// break; -// } -// case 29: -// { -// LOG_F(INFO, "DevCmdExt received bowWaterInet2 - id: %d, cmd: %d", e.id, e.cmd); -// #ifdef DEBUG -// pm->m_currentDriverState.bowWaterInet3 = e.cmd; -// #endif -// if (e.cmd == 0) -// { -// pm->m_lowerCommManager->operate_HVA_openWaterCoverStartCylinderCircuit_Breaker(BREAK_OFF); -// MOOSPause(1); -// pm->m_subDisSysCmd.bowWaterInet3 = 0; -// //TODO :动力电断电 -// } -// else if (e.cmd == 1) -// { -// pm->m_subDisSysCmd.bowWaterInet3 = 1; -// //TODO :动力电上电 -// MOOSPause(1); -// pm->m_lowerCommManager->operate_HVA_openWaterCoverStartCylinderCircuit_Breaker(BREAK_ON); -// } -// else if (e.cmd == 2) -// { -// pm->m_subDisSysCmd.bowWaterInet3 = 1; -// } -// else if (e.cmd == 3) -// { -// //TODO :动力电上电 -// pm->m_lowerCommManager->operate_HVA_openWaterCoverStartCylinderCircuit_Breaker(BREAK_ON); -// } -// else if (e.cmd == 4) -// { -// pm->m_subDisSysCmd.bowWaterInet3 = 0; -// } -// else if (e.cmd == 5) -// { -// //TODO :动力电断电 -// pm->m_lowerCommManager->operate_HVA_openWaterCoverStartCylinderCircuit_Breaker(BREAK_OFF); -// } -// else -// { -// LOG_F(WARNING, "DevCmdExt received bowWaterInet3 - id: %d, cmd: %d is out of range", e.id, e.cmd); -// } -// break; -// } -// case 30: -// { -// LOG_F(INFO, "DevCmdExt received bowWaterInet4 - id: %d, cmd: %d", e.id, e.cmd); -// #ifdef DEBUG -// pm->m_currentDriverState.bowWaterInet4 = e.cmd; -// #endif -// if (e.cmd == 0) -// { -// pm->m_lowerCommManager->operate_HVA_openWaterCoverStartCylinderCircuit_Breaker(BREAK_OFF); -// MOOSPause(1); -// pm->m_subDisSysCmd.bowWaterInet4 = 0; -// //TODO :动力电断电 -// } -// else if (e.cmd == 1) -// { -// pm->m_subDisSysCmd.bowWaterInet4 = 1; -// //TODO :动力电上电 -// MOOSPause(1); -// pm->m_lowerCommManager->operate_HVA_openWaterCoverStartCylinderCircuit_Breaker(BREAK_ON); -// } -// else if (e.cmd == 2) -// { -// pm->m_subDisSysCmd.bowWaterInet4 = 1; -// } -// else if (e.cmd == 3) -// { -// //TODO :动力电上电 -// pm->m_lowerCommManager->operate_HVA_openWaterCoverStartCylinderCircuit_Breaker(BREAK_ON); -// } -// else if (e.cmd == 4) -// { -// pm->m_subDisSysCmd.bowWaterInet4 = 0; -// } -// else if (e.cmd == 5) -// { -// //TODO :动力电断电 -// pm->m_lowerCommManager->operate_HVA_openWaterCoverStartCylinderCircuit_Breaker(BREAK_OFF); -// } -// else -// { -// LOG_F(WARNING, "DevCmdExt received bowWaterInet4 - id: %d, cmd: %d is out of range", e.id, e.cmd); -// } -// break; -// } -// case 31: -// { -// LOG_F(INFO, "DevCmdExt received bowWaterInet4 - id: %d, cmd: %d", e.id, e.cmd); -// #ifdef DEBUG -// pm->m_currentDriverState.bowWaterInet5 = e.cmd; -// #endif -// if (e.cmd == 0) -// { -// pm->m_subDisSysCmd.bowWaterInet5 = 0; -// //TODO :动力电断电 -// } -// else if (e.cmd == 1) -// { -// pm->m_subDisSysCmd.bowWaterInet5 = 1; -// //TODO :动力电上电 -// } -// else if (e.cmd == 2) -// { -// pm->m_subDisSysCmd.bowWaterInet5 = 1; -// } -// else if (e.cmd == 3) -// { -// //TODO :动力电上电 -// } -// else if (e.cmd == 4) -// { -// pm->m_subDisSysCmd.bowWaterInet5 = 0; -// } -// else if (e.cmd == 5) -// { -// //TODO :动力电断电 -// } -// else -// { -// LOG_F(WARNING, "DevCmdExt received bowWaterInet5 - id: %d, cmd: %d is out of range", e.id, e.cmd); -// } -// break; -// } -// case 32: -// { -// LOG_F(INFO, "DevCmdExt received bowWaterInet6 - id: %d, cmd: %d", e.id, e.cmd); -// #ifdef DEBUG -// pm->m_currentDriverState.bowWaterInet6 = e.cmd; -// #endif -// if (e.cmd == 0) -// { -// pm->m_subDisSysCmd.bowWaterInet6 = 0; -// //TODO :动力电断电 -// } -// else if (e.cmd == 1) -// { -// pm->m_subDisSysCmd.bowWaterInet6 = 1; -// //TODO :动力电上电 -// } -// else if (e.cmd == 2) -// { -// pm->m_subDisSysCmd.bowWaterInet6 = 1; -// } -// else if (e.cmd == 3) -// { -// //TODO :动力电上电 -// } -// else if (e.cmd == 4) -// { -// pm->m_subDisSysCmd.bowWaterInet6 = 0; -// } -// else if (e.cmd == 5) -// { -// //TODO :动力电断电 -// } -// else -// { -// LOG_F(WARNING, "DevCmdExt received bowWaterInet6 - id: %d, cmd: %d is out of range", e.id, e.cmd); -// } -// break; -// } -// case 33: -// { -// LOG_F(INFO, "DevCmdExt received bowWaterInet7 - id: %d, cmd: %d", e.id, e.cmd); -// #ifdef DEBUG -// pm->m_currentDriverState.bowWaterInet7 = e.cmd; -// #endif -// if (e.cmd == 0) -// { -// pm->m_subDisSysCmd.bowWaterInet7 = 0; -// //TODO :动力电断电 -// } -// else if (e.cmd == 1) -// { -// pm->m_subDisSysCmd.bowWaterInet7 = 1; -// //TODO :动力电上电 -// } -// else if (e.cmd == 2) -// { -// pm->m_subDisSysCmd.bowWaterInet7 = 1; -// } -// else if (e.cmd == 3) -// { -// //TODO :动力电上电 -// } -// else if (e.cmd == 4) -// { -// pm->m_subDisSysCmd.bowWaterInet7 = 0; -// } -// else if (e.cmd == 5) -// { -// //TODO :动力电断电 -// } -// else -// { -// LOG_F(WARNING, "DevCmdExt received bowWaterInet7 - id: %d, cmd: %d is out of range", e.id, e.cmd); -// } -// break; -// } -// case 34: -// { -// LOG_F(INFO, "DevCmdExt received bowWaterInet8 - id: %d, cmd: %d", e.id, e.cmd); -// #ifdef DEBUG -// pm->m_currentDriverState.bowWaterInet8 = e.cmd; -// #endif -// if (e.cmd == 0) -// { -// pm->m_subDisSysCmd.bowWaterInet8 = 0; -// //TODO :动力电断电 -// } -// else if (e.cmd == 1) -// { -// pm->m_subDisSysCmd.bowWaterInet8 = 1; -// //TODO :动力电上电 -// } -// else if (e.cmd == 2) -// { -// pm->m_subDisSysCmd.bowWaterInet8 = 1; -// } -// else if (e.cmd == 3) -// { -// //TODO :动力电上电 -// } -// else if (e.cmd == 4) -// { -// pm->m_subDisSysCmd.bowWaterInet8 = 0; -// } -// else if (e.cmd == 5) -// { -// //TODO :动力电断电 -// } -// else -// { -// LOG_F(WARNING, "DevCmdExt received bowWaterInet8 - id: %d, cmd: %d is out of range", e.id, e.cmd); -// } -// break; -// } -// case 35: -// { -// LOG_F(INFO, "DevCmdExt received sideSonar - id: %d, cmd: %d", e.id, e.cmd); -// #ifdef DEBUG -// pm->m_currentDriverState.sideSonar = e.cmd; -// #endif -// if (e.cmd == 0) -// { -// pm->m_subDisSysCmd.sideSonar = 0; -// //TODO :动力电断电 -// } -// else if (e.cmd == 1) -// { -// pm->m_subDisSysCmd.sideSonar = 1; -// //TODO :动力电上电 -// } -// else if (e.cmd == 2) -// { -// pm->m_subDisSysCmd.sideSonar = 1; -// } -// else if (e.cmd == 3) -// { -// //TODO :动力电上电 -// } -// else if (e.cmd == 4) -// { -// pm->m_subDisSysCmd.sideSonar = 0; -// } -// else if (e.cmd == 5) -// { -// //TODO :动力电断电 -// } -// else -// { -// LOG_F(WARNING, "DevCmdExt received sideSonar - id: %d, cmd: %d is out of range", e.id, e.cmd); -// } -// break; -// } -// case 36: -// { -// LOG_F(INFO, "DevCmdExt received overDeep1 - id: %d, cmd: %d", e.id, e.cmd); -// #ifdef DEBUG -// pm->m_currentDriverState.lowFreqSonar = e.cmd; -// #endif -// if (e.cmd <= 1) -// { -// pm->m_subDisSysCmd.lowFreqSonar = e.cmd; -// } -// else -// { -// LOG_F(WARNING, "DevCmdExt received lowFreqSonar - id: %d, cmd: %d is out of range", e.id, e.cmd); -// } -// break; -// } -// case 37: -// { -// LOG_F(INFO, "DevCmdExt received overDeep1 - id: %d, cmd: %d", e.id, e.cmd); -// #ifdef DEBUG -// pm->m_currentDriverState.launchControler = e.cmd; -// #endif -// if (e.cmd <= 1) -// { -// pm->m_subDisSysCmd.launchControler = e.cmd; -// } -// else -// { -// LOG_F(WARNING, "DevCmdExt received launchControler - id: %d, cmd: %d is out of range", e.id, e.cmd); -// } -// break; -// } -// case 38: -// { -// LOG_F(INFO, "DevCmdExt received overDeep1 - id: %d, cmd: %d", e.id, e.cmd); -// #ifdef DEBUG -// pm->m_currentDriverState.photoSensor = e.cmd; -// #endif -// if (e.cmd <= 1) -// { -// pm->m_subDisSysCmd.photoSensor = e.cmd; -// } -// else -// { -// LOG_F(WARNING, "DevCmdExt received photoSensor - id: %d, cmd: %d is out of range", e.id, e.cmd); -// } -// break; -// } -// case 39: -// { -// LOG_F(INFO, "DevCmdExt received overDeep1 - id: %d, cmd: %d", e.id, e.cmd); -// #ifdef DEBUG -// pm->m_currentDriverState.electSensor = e.cmd; -// #endif -// if (e.cmd <= 1) -// { -// pm->m_subDisSysCmd.electSensor = e.cmd; -// } -// else -// { -// LOG_F(WARNING, "DevCmdExt received electSensor - id: %d, cmd: %d is out of range", e.id, e.cmd); -// } -// break; -// } -// case 40: -// { -// LOG_F(INFO, "DevCmdExt received commMast - id: %d, cmd: %d", e.id, e.cmd); -// #ifdef DEBUG -// pm->m_currentDriverState.commMast = e.cmd; -// #endif -// if (e.cmd <= 1) -// { -// pm->m_subDisSysCmd.commMast = e.cmd; -// } -// else -// { -// LOG_F(WARNING, "DevCmdExt received commMast - id: %d, cmd: %d is out of range", e.id, e.cmd); -// } -// break; -// } -// case 41: -// { -// LOG_F(INFO, "DevCmdExt received mastLiftingServo - id: %d, cmd: %d", e.id, e.cmd); -// #ifdef DEBUG -// pm->m_currentDriverState.mastLiftingServo = e.cmd; -// #endif -// if (e.cmd == 0) -// { -// pm->m_subDisSysCmd.mastLiftingServo = 0; -// //TODO :动力电断电 -// } -// else if (e.cmd == 1) -// { -// pm->m_subDisSysCmd.mastLiftingServo = 1; -// //TODO :动力电上电 -// } -// else if (e.cmd == 2) -// { -// pm->m_subDisSysCmd.mastLiftingServo = 1; -// } -// else if (e.cmd == 3) -// { -// //TODO :动力电上电 -// } -// else if (e.cmd == 4) -// { -// pm->m_subDisSysCmd.mastLiftingServo = 0; -// } -// else if (e.cmd == 5) -// { -// //TODO :动力电断电 -// } -// else -// { -// LOG_F(WARNING, "DevCmdExt received mastLiftingServo - id: %d, cmd: %d is out of range", e.id, e.cmd); -// } -// break; -// } -// case 42: -// { -// LOG_F(INFO, "DevCmdExt received USBL - id: %d, cmd: %d", e.id, e.cmd); -// #ifdef DEBUG -// pm->m_currentDriverState.USBL = e.cmd; -// #endif -// if (e.cmd <= 1) -// { -// pm->m_subDisSysCmd.USBL = e.cmd; -// } -// else -// { -// LOG_F(WARNING, "DevCmdExt received USBL - id: %d, cmd: %d is out of range", e.id, e.cmd); -// } -// break; -// } -// case 43: -// { -// LOG_F(INFO, "DevCmdExt received DVL - id: %d, cmd: %d", e.id, e.cmd); -// #ifdef DEBUG -// pm->m_currentDriverState.DVL = e.cmd; -// #endif -// if (e.cmd <= 1) -// { -// pm->m_subDisSysCmd.DVL = e.cmd; -// } -// else -// { -// LOG_F(WARNING, "DevCmdExt received DVL - id: %d, cmd: %d is out of range", e.id, e.cmd); -// } -// break; -// } -// case 44: -// { -// LOG_F(INFO, "DevCmdExt received buoyancyAdjust1 - id: %d, cmd: %d", e.id, e.cmd); -// #ifdef DEBUG -// pm->m_currentDriverState.buoyancyAdjust1 = e.cmd; -// #endif -// if (e.cmd == 0) -// { -// pm->m_subDisSysCmd.buoyancyAdjust1 = 0; -// //TODO :动力电断电 -// } -// else if (e.cmd == 1) -// { -// pm->m_subDisSysCmd.buoyancyAdjust1 = 1; -// //TODO :动力电上电 -// } -// else if (e.cmd == 2) -// { -// pm->m_subDisSysCmd.buoyancyAdjust1 = 1; -// } -// else if (e.cmd == 3) -// { -// //TODO :动力电上电 -// } -// else if (e.cmd == 4) -// { -// pm->m_subDisSysCmd.buoyancyAdjust1 = 0; -// } -// else if (e.cmd == 5) -// { -// //TODO :动力电断电 -// } -// else -// { -// LOG_F(WARNING, "DevCmdExt received buoyancyAdjust1 - id: %d, cmd: %d is out of range", e.id, e.cmd); -// } -// break; -// } -// case 45: -// { -// LOG_F(INFO, "DevCmdExt received buoyancyAdjust2 - id: %d, cmd: %d", e.id, e.cmd); -// #ifdef DEBUG -// pm->m_currentDriverState.buoyancyAdjust2 = e.cmd; -// #endif -// if (e.cmd == 0) -// { -// pm->m_subDisSysCmd.buoyancyAdjust2 = 0; -// //TODO :动力电断电 -// } -// else if (e.cmd == 1) -// { -// pm->m_subDisSysCmd.buoyancyAdjust2 = 1; -// //TODO :动力电上电 -// } -// else if (e.cmd == 2) -// { -// pm->m_subDisSysCmd.buoyancyAdjust2 = 1; -// } -// else if (e.cmd == 3) -// { -// //TODO :动力电上电 -// } -// else if (e.cmd == 4) -// { -// pm->m_subDisSysCmd.buoyancyAdjust2 = 0; -// } -// else if (e.cmd == 5) -// { -// //TODO :动力电断电 -// } -// else -// { -// LOG_F(WARNING, "DevCmdExt received buoyancyAdjust2 - id: %d, cmd: %d is out of range", e.id, e.cmd); -// } -// break; -// } -// case 46: -// { -// LOG_F(INFO, "DevCmdExt received buoyancyAdjust3 - id: %d, cmd: %d", e.id, e.cmd); -// #ifdef DEBUG -// pm->m_currentDriverState.buoyancyAdjust3 = e.cmd; -// #endif -// if (e.cmd == 0) -// { -// pm->m_subDisSysCmd.buoyancyAdjust3 = 0; -// //TODO :动力电断电 -// } -// else if (e.cmd == 1) -// { -// pm->m_subDisSysCmd.buoyancyAdjust3 = 1; -// //TODO :动力电上电 -// } -// else if (e.cmd == 2) -// { -// pm->m_subDisSysCmd.buoyancyAdjust3 = 1; -// } -// else if (e.cmd == 3) -// { -// //TODO :动力电上电 -// } -// else if (e.cmd == 4) -// { -// pm->m_subDisSysCmd.buoyancyAdjust3 = 0; -// } -// else if (e.cmd == 5) -// { -// //TODO :动力电断电 -// } -// else -// { -// LOG_F(WARNING, "DevCmdExt received buoyancyAdjust3 - id: %d, cmd: %d is out of range", e.id, e.cmd); -// } -// break; -// } -// case 47: -// { -// LOG_F(INFO, "DevCmdExt received buoyancyAdjust4 - id: %d, cmd: %d", e.id, e.cmd); -// #ifdef DEBUG -// pm->m_currentDriverState.buoyancyAdjust4 = e.cmd; -// #endif -// if (e.cmd == 0) -// { -// pm->m_subDisSysCmd.buoyancyAdjust4 = 0; -// //TODO :动力电断电 -// } -// else if (e.cmd == 1) -// { -// pm->m_subDisSysCmd.buoyancyAdjust4 = 1; -// //TODO :动力电上电 -// } -// else if (e.cmd == 2) -// { -// pm->m_subDisSysCmd.buoyancyAdjust4 = 1; -// } -// else if (e.cmd == 3) -// { -// //TODO :动力电上电 -// } -// else if (e.cmd == 4) -// { -// pm->m_subDisSysCmd.buoyancyAdjust4 = 0; -// } -// else if (e.cmd == 5) -// { -// //TODO :动力电断电 -// } -// else -// { -// LOG_F(WARNING, "DevCmdExt received buoyancyAdjust4 - id: %d, cmd: %d is out of range", e.id, e.cmd); -// } -// break; -// } -// case 48: -// { -// LOG_F(INFO, "DevCmdExt received buoyancyAdjust5 - id: %d, cmd: %d", e.id, e.cmd); -// #ifdef DEBUG -// pm->m_currentDriverState.buoyancyAdjust5 = e.cmd; -// #endif -// if (e.cmd == 0) -// { -// pm->m_subDisSysCmd.buoyancyAdjust5 = 0; -// //TODO :动力电断电 -// } -// else if (e.cmd == 1) -// { -// pm->m_subDisSysCmd.buoyancyAdjust5 = 1; -// //TODO :动力电上电 -// } -// else if (e.cmd == 2) -// { -// pm->m_subDisSysCmd.buoyancyAdjust5 = 1; -// } -// else if (e.cmd == 3) -// { -// //TODO :动力电上电 -// } -// else if (e.cmd == 4) -// { -// pm->m_subDisSysCmd.buoyancyAdjust5 = 0; -// } -// else if (e.cmd == 5) -// { -// //TODO :动力电断电 -// } -// else -// { -// LOG_F(WARNING, "DevCmdExt received buoyancyAdjust5 - id: %d, cmd: %d is out of range", e.id, e.cmd); -// } -// break; -// } -// case 49: -// { -// LOG_F(INFO, "DevCmdExt received sternRudderServo1 - id: %d, cmd: %d", e.id, e.cmd); -// #ifdef DEBUG -// pm->m_currentDriverState.sternRudderServo1 = e.cmd; -// #endif -// if (e.cmd == 0) -// { -// pm->m_subDisSysCmd.sternRudderServo1 = 0; -// //TODO :动力电断电 -// } -// else if (e.cmd == 1) -// { -// pm->m_subDisSysCmd.sternRudderServo1 = 1; -// //TODO :动力电上电 -// } -// else if (e.cmd == 2) -// { -// pm->m_subDisSysCmd.sternRudderServo1 = 1; -// } -// else if (e.cmd == 3) -// { -// //TODO :动力电上电 -// } -// else if (e.cmd == 4) -// { -// pm->m_subDisSysCmd.sternRudderServo1 = 0; -// } -// else if (e.cmd == 5) -// { -// //TODO :动力电断电 -// } -// else -// { -// LOG_F(WARNING, "DevCmdExt received sternRudderServo1 - id: %d, cmd: %d is out of range", e.id, e.cmd); -// } -// break; -// } -// case 50: -// { -// LOG_F(INFO, "DevCmdExt received sternRudderServo2 - id: %d, cmd: %d", e.id, e.cmd); -// #ifdef DEBUG -// pm->m_currentDriverState.sternRudderServo2 = e.cmd; -// #endif -// if (e.cmd == 0) -// { -// pm->m_subDisSysCmd.sternRudderServo2 = 0; -// //TODO :动力电断电 -// } -// else if (e.cmd == 1) -// { -// pm->m_subDisSysCmd.sternRudderServo2 = 1; -// //TODO :动力电上电 -// } -// else if (e.cmd == 2) -// { -// pm->m_subDisSysCmd.sternRudderServo2 = 1; -// } -// else if (e.cmd == 3) -// { -// //TODO :动力电上电 -// } -// else if (e.cmd == 4) -// { -// pm->m_subDisSysCmd.sternRudderServo2 = 0; -// } -// else if (e.cmd == 5) -// { -// //TODO :动力电断电 -// } -// else -// { -// LOG_F(WARNING, "DevCmdExt received sternRudderServo2 - id: %d, cmd: %d is out of range", e.id, e.cmd); -// } -// break; -// } -// case 51: -// { -// LOG_F(INFO, "DevCmdExt received sternRudderServo3 - id: %d, cmd: %d", e.id, e.cmd); -// #ifdef DEBUG -// pm->m_currentDriverState.sternRudderServo3 = e.cmd; -// #endif -// if (e.cmd == 0) -// { -// pm->m_subDisSysCmd.sternRudderServo3 = 0; -// //TODO :动力电断电 -// } -// else if (e.cmd == 1) -// { -// pm->m_subDisSysCmd.sternRudderServo3 = 1; -// //TODO :动力电上电 -// } -// else if (e.cmd == 2) -// { -// pm->m_subDisSysCmd.sternRudderServo3 = 1; -// } -// else if (e.cmd == 3) -// { -// //TODO :动力电上电 -// } -// else if (e.cmd == 4) -// { -// pm->m_subDisSysCmd.sternRudderServo3 = 0; -// } -// else if (e.cmd == 5) -// { -// //TODO :动力电断电 -// } -// else -// { -// LOG_F(WARNING, "DevCmdExt received sternRudderServo3 - id: %d, cmd: %d is out of range", e.id, e.cmd); -// } -// break; -// } -// case 52: -// { -// LOG_F(INFO, "DevCmdExt received sternRudderServo4 - id: %d, cmd: %d", e.id, e.cmd); -// #ifdef DEBUG -// pm->m_currentDriverState.sternRudderServo4 = e.cmd; -// #endif -// if (e.cmd == 0) -// { -// pm->m_subDisSysCmd.sternRudderServo4 = 0; -// //TODO :动力电断电 -// } -// else if (e.cmd == 1) -// { -// pm->m_subDisSysCmd.sternRudderServo4 = 1; -// //TODO :动力电上电 -// } -// else if (e.cmd == 2) -// { -// pm->m_subDisSysCmd.sternRudderServo4 = 1; -// } -// else if (e.cmd == 3) -// { -// //TODO :动力电上电 -// } -// else if (e.cmd == 4) -// { -// pm->m_subDisSysCmd.sternRudderServo4 = 0; -// } -// else if (e.cmd == 5) -// { -// //TODO :动力电断电 -// } -// else -// { -// LOG_F(WARNING, "DevCmdExt received sternRudderServo4 - id: %d, cmd: %d is out of range", e.id, e.cmd); -// } -// break; -// } -// case 53: -// { -// LOG_F(INFO, "DevCmdExt received thruster - id: %d, cmd: %d", e.id, e.cmd); -// #ifdef DEBUG -// pm->m_currentDriverState.thruster = e.cmd; -// #endif -// if (e.cmd == 0) -// { -// pm->m_subDisSysCmd.thruster = 0; -// //TODO :动力电断电 -// } -// else if (e.cmd == 1) -// { -// pm->m_subDisSysCmd.thruster = 1; -// //TODO :动力电上电 -// } -// else if (e.cmd == 2) -// { -// pm->m_subDisSysCmd.thruster = 1; -// } -// else if (e.cmd == 3) -// { -// //TODO :动力电上电 -// } -// else if (e.cmd == 4) -// { -// pm->m_subDisSysCmd.thruster = 0; -// } -// else if (e.cmd == 5) -// { -// //TODO :动力电断电 -// } -// else -// { -// LOG_F(WARNING, "DevCmdExt received thruster - id: %d, cmd: %d is out of range", e.id, e.cmd); -// } -// break; -// } -// case 54: -// { -// LOG_F(INFO, "DevCmdExt received bowThrow - id: %d, cmd: %d", e.id, e.cmd); -// #ifdef DEBUG -// pm->m_currentDriverState.bowThrow = e.cmd; -// #endif -// if (e.cmd <= 1) -// { -// pm->m_subDisSysCmd.bowThrow = e.cmd; -// } -// else -// { -// LOG_F(WARNING, "DevCmdExt received bowThrow - id: %d, cmd: %d is out of range", e.id, e.cmd); -// } -// break; -// } -// case 55: -// { -// LOG_F(INFO, "DevCmdExt received sternThrow - id: %d, cmd: %d", e.id, e.cmd); -// #ifdef DEBUG -// pm->m_currentDriverState.sternThrow = e.cmd; -// #endif -// if (e.cmd <= 1) -// { -// pm->m_subDisSysCmd.sternThrow = e.cmd; -// } -// else -// { -// LOG_F(WARNING, "DevCmdExt received sternThrow - id: %d, cmd: %d is out of range", e.id, e.cmd); -// } -// break; -// } -// case 56: -// { -// LOG_F(INFO, "DevCmdExt received buoyage - id: %d, cmd: %d", e.id, e.cmd); -// #ifdef DEBUG -// pm->m_currentDriverState.buoyage = e.cmd; -// #endif -// if (e.cmd <= 1) -// { -// pm->m_subDisSysCmd.buoyage = e.cmd; -// } -// else -// { -// LOG_F(WARNING, "DevCmdExt received buoyage - id: %d, cmd: %d is out of range", e.id, e.cmd); -// } -// break; -// } -// case 57: -// { -// { -// LOG_F(INFO, "DevCmdExt received buoyage - id: %d, cmd: %d", e.id, e.cmd); -// #ifdef DEBUG -// pm->m_currentDriverState.ins = e.cmd; -// #endif -// if (e.cmd <= 1) -// { -// pm->m_subDisSysCmd.ins = e.cmd; -// } -// else -// { -// LOG_F(WARNING, "DevCmdExt received ins - id: %d, cmd: %d is out of range", e.id, e.cmd); -// } -// break; -// } -// } -// case 58: -// { -// LOG_F(INFO, "DevCmdExt received buoyage - id: %d, cmd: %d", e.id, e.cmd); -// #ifdef DEBUG -// pm->m_currentDriverState.ntp = e.cmd; -// #endif -// if (e.cmd <= 1) -// { -// pm->m_subDisSysCmd.ntp = e.cmd; -// } -// else -// { -// LOG_F(WARNING, "DevCmdExt received ntp - id: %d, cmd: %d is out of range", e.id, e.cmd); -// } -// break; -// } -// case 59: -// { -// LOG_F(INFO, "DevCmdExt received inputWaterSensor1 - id: %d, cmd: %d", e.id, e.cmd); -// #ifdef DEBUG -// pm->m_currentDriverState.inputWaterSensor1 = e.cmd; -// #endif -// if (e.cmd <= 1) -// { -// pm->m_subDisSysCmd.inputWaterSensor1 = e.cmd; -// } -// else -// { -// LOG_F(WARNING, "DevCmdExt received inputWaterSensor1 - id: %d, cmd: %d is out of range", e.id, e.cmd); -// } -// break; -// } -// case 60: -// { -// LOG_F(INFO, "DevCmdExt received inputWaterSensor2 - id: %d, cmd: %d", e.id, e.cmd); -// #ifdef DEBUG -// pm->m_currentDriverState.inputWaterSensor2 = e.cmd; -// #endif -// if (e.cmd <= 1) -// { -// pm->m_subDisSysCmd.inputWaterSensor2 = e.cmd; -// } -// else -// { -// LOG_F(WARNING, "DevCmdExt received inputWaterSensor2 - id: %d, cmd: %d is out of range", e.id, e.cmd); -// } -// break; -// } -// case 61: -// { -// LOG_F(INFO, "DevCmdExt received inputWaterSensor3 - id: %d, cmd: %d", e.id, e.cmd); -// #ifdef DEBUG -// pm->m_currentDriverState.inputWaterSensor3 = e.cmd; -// #endif -// if (e.cmd <= 1) -// { -// pm->m_subDisSysCmd.inputWaterSensor3 = e.cmd; -// } -// else -// { -// LOG_F(WARNING, "DevCmdExt received inputWaterSensor3 - id: %d, cmd: %d is out of range", e.id, e.cmd); -// } -// break; -// } -// default: -// LOG_F(WARNING, "DevCmdExt received unknown id: %d, cmd: %d", e.id, e.cmd); -// break; -// } -// } - void PowerManagerFsm::basicNavigationFault(FaultEvent const &e) { LOG_F(INFO, "basicNavigationFault"); @@ -3093,43 +1719,71 @@ void PowerManagerFsm::handelPowerCmd(){ //1. 关闭动力电池 pm->m_CcuColCmd.powerBatCmd = BatteryCommand::Stop; MOOSPause(3); + int count=0; while (!(pm->m_systemData->dyn_pos_relay_status == 0x02 && pm->m_systemData->dyn_neg_relay_status == 0x02)) { LOG_F(INFO,"动力锂电池下电中..."); MOOSPause(3); + if(count>10) + { + LOG_F(INFO, "动力锂电池无下电反馈"); + break; + } + count++; } LOG_F(INFO, "动力锂电池已下电"); //2. 断掉所有动力电断路器 //2.1 断开所有艏部高压断路器 pm->m_lowerCommManager->operate_HVA_actuatorCircuit_Breaker(0); + MOOSPause(3); pm->m_lowerCommManager->operate_HVA_bowFTDevice123Circuit_Breaker(0); + MOOSPause(3); pm->m_lowerCommManager->operate_HVA_bowRudderControlBoxCircuit_Breaker(0); + MOOSPause(3); pm->m_lowerCommManager->operate_HVA_mastSteeringGearControlBoxCircuit_Breaker(0); + MOOSPause(3); pm->m_lowerCommManager->operate_HVA_openWaterCoverStartCylinderCircuit_Breaker(0); + MOOSPause(3); pm->m_lowerCommManager->operate_HVA_xczCircuit_Breaker(0); - + MOOSPause(3); //2.2 断开所有艉部高压设备断路器 pm->m_lowerCommManager->operate_HV_propulsionMotor_Breaker(0); + MOOSPause(3); pm->m_lowerCommManager->operate_HV_sternFt45_Breaker(0); + MOOSPause(3); pm->m_lowerCommManager->operate_HV_sternRudder1_Breaker(0); + MOOSPause(3); pm->m_lowerCommManager->operate_HV_sternRudder2_Breaker(0); + MOOSPause(3); pm->m_lowerCommManager->operate_HV_fbReserved_Breaker(0); + MOOSPause(3); pm->m_lowerCommManager->operate_HV_tyzReserved_Breaker(0); + MOOSPause(3); pm->m_lowerCommManager->operate_HV_reserved_Breaker(0); + MOOSPause(3); pm->m_lowerCommManager->operate_HV_dcDc5_Breaker(0); + MOOSPause(3); pm->m_lowerCommManager->operate_HV_coolingSystem_Breaker(0); + MOOSPause(3); //2.3 断开仪表预留断路器 pm->m_lowerCommManager->operate_LV_reservedCircuit1_Breaker(0); + MOOSPause(3); pm->m_lowerCommManager->operate_LV_reservedCircuit2_Breaker(0); + MOOSPause(3); pm->m_lowerCommManager->operate_LVA_reservedCircuit1_Breaker(0); + MOOSPause(3); pm->m_lowerCommManager->operate_LVA_reservedCircuit2_Breaker(0); + MOOSPause(3); pm->m_lowerCommManager->operate_LVA_bowPZDeviceCircuit_Breaker(0); + MOOSPause(3); //2.4 断开应急电池断路器 pm->m_lowerCommManager->operate_LV_mergencyLithiumBatteryGroup2Circuit_Breaker(0); + MOOSPause(3); pm->m_lowerCommManager->operate_LVA_mergencyLithiumBatteryGroup1Circuit_Breaker(0); - + MOOSPause(3); + //3. 次级配电系统恢复待机 pm->m_driver.getSTANDBYTable(&pm->m_subDisSysCmd); MOOSPause(30); @@ -3140,13 +1794,18 @@ void PowerManagerFsm::handelPowerCmd(){ case 1: { LOG_F(INFO, "收到上位机控制指令:动力电上电"); - //闭合动力电断路器 - if(pm->m_lowerCommManager->operate_HV_powerLithiumBattery_Breaker(1)) - LOG_F(INFO,"动力锂电池断路器闭合成功"); - else - LOG_F(INFO,"动力锂电池断路器闭合操作失败"); //1. 动力锂电池上电 pm->m_CcuColCmd.powerBatCmd = BatteryCommand::Start; + //2. 闭合动力电断路器 + pm->m_lowerCommManager->operate_HV_powerLithiumBattery_Breaker(1); + MOOSPause(3); + pm->m_lowerCommManager->operate_HV_dcDc5Module_Breaker(1); + MOOSPause(3); + pm->m_lowerCommManager->operate_HV_dcDc5_Breaker(1); + pm->m_lowerCommManager->operate_HV_coolingSystem_Breaker(1); + MOOSPause(10); + pm->m_lowerCommManager->operate_HV_bowHighVoltageBox_Breaker(1); + MOOSPause(3); //2. 燃料电池上电 break; } @@ -3162,18 +1821,33 @@ void PowerManagerFsm::handelPowerCmd(){ case 3: { LOG_F(INFO, "收到上位机控制指令:燃料电池上电"); - //备用 break; } case 4: { LOG_F(INFO, "收到上位机控制指令:锂动力电下电"); //1. 动力锂电池下电 + pm->m_lowerCommManager->operate_HV_bowHighVoltageBox_Breaker(0); MOOSPause(3); + pm->m_lowerCommManager->operate_HV_dcDc5_Breaker(0); + MOOSPause(3); + pm->m_lowerCommManager->operate_HV_coolingSystem_Breaker(0); + MOOSPause(3); + pm->m_lowerCommManager->operate_HV_dcDc5Module_Breaker(0); + MOOSPause(3); + pm->m_lowerCommManager->operate_HV_powerLithiumBattery_Breaker(0); + MOOSPause(3); + int count=0; while (!(pm->m_systemData->dyn_pos_relay_status == 0x02 && pm->m_systemData->dyn_neg_relay_status == 0x02)) { LOG_F(INFO,"动力锂电池下电中..."); MOOSPause(3); + if(count>10) + { + LOG_F(INFO, "动力锂电池无下电反馈"); + break; + } + count++; } LOG_F(INFO, "动力锂电池已下电"); break; @@ -3208,6 +1882,8 @@ void PowerManagerFsm::handelPowerCmd(){ default: break; } + //清空指令 + pm->m_msCmd.powerCMD = 99; } void PowerManagerFsm::handleWorkCmd(){ @@ -3260,6 +1936,8 @@ void PowerManagerFsm::handleWorkCmd(){ default: break; } + //清空指令 + pm->m_msCmd.workCMD = 99; } void PowerManagerFsm::handleModCmd(){ @@ -3281,6 +1959,8 @@ void PowerManagerFsm::handleModCmd(){ break; } LOG_F(INFO, "当前工作模式: %d", pm->currentMod); + // 清空指令 + pm->m_msCmd.modCMD = 99; } void PowerManagerFsm::handleDeviceCmd() { diff --git a/src/pPowerManger/systemData.h b/src/pPowerManger/systemData.h index e1916b9..e8e6190 100644 --- a/src/pPowerManger/systemData.h +++ b/src/pPowerManger/systemData.h @@ -162,8 +162,7 @@ public: //锂电池故障字段 unsigned char powfaultCode; unsigned char insfaultCode; - //配电系统故障码 - std::set disSysFaultCode; + // MOOSD 状态 bool moosd_status; @@ -477,6 +476,7 @@ public: SystemData(){ //初始化变量全部为0 memset(this, 0, sizeof(SystemData)); + disSysFaultCode.clear(); }; ~SystemData(){}; @@ -656,16 +656,19 @@ public: //心跳计数器 heartbeat = data.heartbeat; } - // std::mutex faultCodeMutex; // 添加互斥锁 + std::set disSysFaultCode; + mutable std::mutex faultCodeMutex; void updateBreakerFault(unsigned char& breakerStatus, unsigned char rawStatus, unsigned int faultCode) { - // std::lock_guard lock(faultCodeMutex); - breakerStatus = rawStatus == 0x55 ? 1 : (rawStatus == 0xAA ? 0 : 2); - // if(breakerStatus == 2) { - // disSysFaultCode.insert(faultCode); - // } else { - // disSysFaultCode.erase(faultCode); - // } + std::lock_guard lock(faultCodeMutex); + unsigned char newStatus = rawStatus == 0x55 ? 1 : (rawStatus == 0xAA ? 0 : 2); + breakerStatus = newStatus; // 保证状态更新也是原子的 + + if(newStatus == 2) { + disSysFaultCode.insert(faultCode); + } else { + disSysFaultCode.erase(faultCode); + } } void updateSystemData(disHighVolBusState data){ updateBreakerFault(power_bus_status.fuelCellCircuitBreaker, data.fuelCellCircuitBreaker, 1); @@ -699,7 +702,15 @@ public: // if(power_bus_status.meterPowerLossSignal == 1) disSysFaultCode.insert(36); else disSysFaultCode.erase(36); power_bus_status.emergencyPowerLossSignal = data.emergencyPowerLossSignal == 0x55 ? 0 : 1; + // if(power_bus_status.emergencyPowerLossSignal == 1) disSysFaultCode.insert(37); else disSysFaultCode.erase(37); + { + std::lock_guard lock(faultCodeMutex); + if(power_bus_status.emergencyPowerLossSignal == 1) disSysFaultCode.insert(37); else disSysFaultCode.erase(37); + if(power_bus_status.meterPowerLossSignal == 1) disSysFaultCode.insert(36); else disSysFaultCode.erase(36); + if(power_bus_status.aBusInsulationStatus == 1) disSysFaultCode.insert(35); else disSysFaultCode.erase(35); + if(power_bus_status.powerBusInsulationStatus == 1) disSysFaultCode.insert(34); else disSysFaultCode.erase(34); + } //温度 power_bus_status.dcDcTemperature = data.dcDcTemperature-40; @@ -740,6 +751,11 @@ public: power_a_bus_status.emergencyPowerFailureSignal = data.emergencyPowerFailureSignal == 0x55 ? 0 : 1; // if(power_a_bus_status.emergencyPowerFailureSignal == 1) disSysFaultCode.insert(39); else disSysFaultCode.erase(39); + { + std::lock_guard lock(faultCodeMutex); + if(power_a_bus_status.emergencyPowerFailureSignal == 1) disSysFaultCode.insert(39); else disSysFaultCode.erase(39); + if(power_a_bus_status.instrumentPowerFailureSignal == 1) disSysFaultCode.insert(38); else disSysFaultCode.erase(38); + } //浸水报警 power_a_bus_status.waterIngressionAlarm = data.waterIngressionAlarm; @@ -775,6 +791,12 @@ public: //绝缘状态 instrument_main_bus_status.instrumentBusbarInsulationLow = data.instrumentBusbarInsulationLow == 0x55 ? 0 : 1; // if(instrument_main_bus_status.instrumentBusbarInsulationLow == 1) disSysFaultCode.insert(42); else disSysFaultCode.erase(43); + { + std::lock_guard lock(faultCodeMutex); + if(instrument_main_bus_status.instrumentBusbarInsulationLow == 1) disSysFaultCode.insert(42); else disSysFaultCode.erase(43); + if(instrument_main_bus_status.emergencyPowerFailureSignal == 1) disSysFaultCode.insert(41); else disSysFaultCode.erase(42); + if(instrument_main_bus_status.instrumentPowerFailureSignal == 1) disSysFaultCode.insert(40); else disSysFaultCode.erase(41); + } //电压电流参数 instrument_main_bus_status.instrumentBusbarVoltage = data.instrumentBusbarVoltage * 0.1; @@ -807,6 +829,11 @@ public: instrument_bus_status.emergencyPowerFailureSignal = data.emergencyPowerFailureSignal == 0x55 ? 0 : 1; // if(instrument_bus_status.emergencyPowerFailureSignal == 1) disSysFaultCode.insert(45); else disSysFaultCode.erase(45); + { + std::lock_guard lock(faultCodeMutex); + if(instrument_bus_status.emergencyPowerFailureSignal == 1) disSysFaultCode.insert(45); else disSysFaultCode.erase(45); + if(instrument_bus_status.powerFailureSignal == 1) disSysFaultCode.insert(44); else disSysFaultCode.erase(44); + } //浸水报警 instrument_bus_status.waterIngressionAlarm = data.waterIngressionAlarm; @@ -823,6 +850,4 @@ public: instrument_bus_status.emergency1BusbarVoltage = data.emergency1BusbarVoltage * 0.1; } }; - - #endif diff --git a/src/pPowerManger/upmsg/uDevice_secdistState.h b/src/pPowerManger/upmsg/uDevice_secdistState.h index 057765a..cedcafb 100644 --- a/src/pPowerManger/upmsg/uDevice_secdistState.h +++ b/src/pPowerManger/upmsg/uDevice_secdistState.h @@ -4,6 +4,7 @@ #include #include "../driver.h" #include "../logc/loguru.hpp" +#include class uDevice_secdistStateMsg { @@ -329,7 +330,7 @@ public: state.bowThrow = driver.bowThrow; state.depth2 = driver.depth2; state.thruster = driver.thruster; - state.haulingMachine = 0; // No corresponding field in DriverTable + state.haulingMachine = 2; // No corresponding field in DriverTable state.buoyancyAdjust4 = driver.buoyancyAdjust4; state.buoyancyAdjust5 = driver.buoyancyAdjust5; state.sternRudderServo1 = driver.sternRudderServo1; @@ -337,7 +338,7 @@ public: state.sternRudderServo3 = driver.sternRudderServo3; state.sternRudderServo4 = driver.sternRudderServo4; state.ctd2 = driver.ctd2; - state.commDevStern = 0; // No corresponding field in DriverTable + state.commDevStern = 2; // No corresponding field in DriverTable state.inOutLetWater3 = driver.inputWaterSensor3; // UNIT5 @@ -350,7 +351,7 @@ public: // driver.overDeep1 // driver.overDeep2 // driver.ntp - state.dragSonar = 0; // Assuming dragSonar is same as lowFreqSonar + state.dragSonar = 2; // Assuming dragSonar is same as lowFreqSonar return true; @@ -449,6 +450,46 @@ public: converToDriverTable(s,driver); return true; }; + + std::string buildMsg(DriverTable driver, DriverTable driver_state){ + DeviceSecdistState s; + DriverTable driverCopy = driver; + for (size_t i = 0; i < sizeof(DriverTable); ++i) { + unsigned char* driverCopyPtr = reinterpret_cast(&driverCopy) + i; + unsigned char* statePtr = reinterpret_cast(&driver_state) + i; + if (*driverCopyPtr == *statePtr) { + *driverCopyPtr = 2; + } + } + converFromDriverTable(s, driverCopy); + // std::cout << (int)s.depth1 << std::endl; + // std::cout << buildSecdistStateToJson(s) << std::endl; + return buildSecdistStateToJson(s); + }; + + std::string buildMsg(DriverTable driver, DriverTable driver_state, unsigned int nCheck){ + static size_t callCount = 0; // 静态变量,记录函数调用次数 + DeviceSecdistState s; + DriverTable driverCopy = driver; + if (nCheck > 0 && callCount % nCheck == 0) + { + for (size_t i = 0; i < sizeof(DriverTable); ++i) { + unsigned char* driverCopyPtr = reinterpret_cast(&driverCopy) + i; + unsigned char* statePtr = reinterpret_cast(&driver_state) + i; + if (*driverCopyPtr == *statePtr) { + *driverCopyPtr = 2; + } + } + } + else { + memset(&driverCopy, 2, sizeof(DriverTable)); + } + callCount ++; + converFromDriverTable(s, driverCopy); + // std::cout << (int)s.depth1 << std::endl; + // std::cout << buildSecdistStateToJson(s) << std::endl; + return buildSecdistStateToJson(s); + }; }; diff --git a/src/pPowerManger/upmsg/uPlan_taskStart.h b/src/pPowerManger/upmsg/uPlan_taskStart.h index 0c5a11c..164fa3a 100644 --- a/src/pPowerManger/upmsg/uPlan_taskStart.h +++ b/src/pPowerManger/upmsg/uPlan_taskStart.h @@ -4,14 +4,14 @@ #include "../pmSysvariable.h" #include "../logc/loguru.hpp" //决策消息 -#define DB_TO_PM_MISSION "uPlan_taskStart_cmd" +#define DB_TO_PM_MISSION "uPlan_taskStart_st" class uPlan_taskStartMsg { private: /* data */ public: - std::string key = "uPlan_taskStart_cmd"; + std::string key = "uPlan_taskStart_st"; uPlan_taskStartMsg(/* args */){}; ~uPlan_taskStartMsg(){}; diff --git a/src/pPowerManger/upmsg/uPower_disSysState.h b/src/pPowerManger/upmsg/uPower_disSysState.h index 589f5a9..987c5fa 100644 --- a/src/pPowerManger/upmsg/uPower_disSysState.h +++ b/src/pPowerManger/upmsg/uPower_disSysState.h @@ -133,8 +133,9 @@ public: } } }m_state_of_bus_lv_a; - - std::string buildMsg(SystemData data,disSysBreakerList currentDisBreakerState) + + // std::string buildMsg(SystemData data,disSysBreakerList currentDisBreakerState) + std::string buildMsg(const SystemData& data,disSysBreakerList currentDisBreakerState) { //构建配电系统状态报告 Json::Value dis; @@ -182,11 +183,14 @@ public: 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.disSysFaultCode) { - faultCodeDis_array.append(val); + std::lock_guard lock(data.faultCodeMutex); + for(auto val : data.disSysFaultCode) + { + faultCodeDis_array.append(val); + } } dis["faultCode_array"] = faultCodeDis_array; diff --git a/src/pPowerManger/upmsg/uPower_fcsState.h b/src/pPowerManger/upmsg/uPower_fcsState.h index 4ce8eee..72c8dff 100644 --- a/src/pPowerManger/upmsg/uPower_fcsState.h +++ b/src/pPowerManger/upmsg/uPower_fcsState.h @@ -24,7 +24,8 @@ public: unsigned int errorCode : 8; // 错误代码 } state; - std::string buildMsg(SystemData data) + // std::string buildMsg(SystemData data) + std::string buildMsg(const SystemData& data) { //TODO:根据最新协议修改 Json::Value fcs; diff --git a/src/pPowerManger/upmsg/uPower_liBatState.h b/src/pPowerManger/upmsg/uPower_liBatState.h index 5678fb6..7e9fe5a 100644 --- a/src/pPowerManger/upmsg/uPower_liBatState.h +++ b/src/pPowerManger/upmsg/uPower_liBatState.h @@ -15,8 +15,8 @@ public: ~uPower_liBatStateMsg() {}; std::string key = "uPower_liBatState_st"; - - std::string buildMsg(SystemData data) + // std::string buildMsg(SystemData data) + std::string buildMsg(const SystemData& data) { //TODO:根据最新协议修改 Json::Value lbs; diff --git a/test/disSysTest/PowerManagerApp.py b/test/disSysTest/PowerManagerApp.py index 8a5b968..8d82521 100644 --- a/test/disSysTest/PowerManagerApp.py +++ b/test/disSysTest/PowerManagerApp.py @@ -56,6 +56,8 @@ class PowerManagerApp: # 上位机端口 self.udp_control_port = 5001 self.udp_control_host = "192.168.0.223" + # self.udp_control_host = "127.0.0.1" + # 下位机端口 # self.udp_ip = "127.0.0.1" self.udp_ip = "192.168.0.140"