From 75575f935c85ec15eac64f8ec7790bda12976d45 Mon Sep 17 00:00:00 2001 From: zhaojingkui <1553836110@qq.com> Date: Wed, 19 Feb 2025 17:18:39 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BA=86=E4=BA=A4=E4=BA=92?= =?UTF-8?q?=E5=8F=98=E9=87=8F=E7=9A=84=E7=8A=B6=E6=80=81,=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E4=BA=86=E8=AE=BE=E5=A4=87=E7=8A=B6=E6=80=81=E5=92=8C?= =?UTF-8?q?=E8=AE=BE=E5=A4=87=E8=A1=A8=E7=9A=84json=E8=A7=A3=E6=9E=90?= =?UTF-8?q?=E5=92=8C=E7=94=9F=E6=88=90=E5=87=BD=E6=95=B0,=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E4=BA=86=E8=AE=BE=E5=A4=87=E8=A1=A8=E7=B1=BB=E5=92=8C?= =?UTF-8?q?=E9=80=9A=E4=BF=A1=E5=8D=8F=E8=AE=AE=E4=B8=AD=E4=B8=8D=E5=90=8C?= =?UTF-8?q?=E7=9A=84=E5=9C=B0=E6=96=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vscode/settings.json | 3 +- data/msg/uPower_currentState_st.json | 52 +-- data/msg/uPower_disSysState_st.json | 6 +- data/msg/uPower_fcsState_st.json | 54 +-- data/msg/uPower_liBatState_st.json | 52 +-- data/subDisSysCmd.json | 64 +++ src/pPowerManger/PowerManger.cpp | 115 ++--- src/pPowerManger/PowerManger.h | 16 +- src/pPowerManger/driver.cpp | 655 +++++++++++++++++++-------- src/pPowerManger/driver.h | 53 ++- 10 files changed, 724 insertions(+), 346 deletions(-) create mode 100644 data/subDisSysCmd.json diff --git a/.vscode/settings.json b/.vscode/settings.json index 4c3850a..c211e4a 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -73,7 +73,8 @@ "stop_token": "cpp", "thread": "cpp", "typeindex": "cpp", - "variant": "cpp" + "variant": "cpp", + "*.ipp": "cpp" }, "C_Cpp.errorSquiggles": "disabled", "marscode.chatLanguage": "cn", diff --git a/data/msg/uPower_currentState_st.json b/data/msg/uPower_currentState_st.json index a8a0701..e4ee19c 100644 --- a/data/msg/uPower_currentState_st.json +++ b/data/msg/uPower_currentState_st.json @@ -1,43 +1,43 @@ { "HVABFTDev123Cur_uint16": 0, "HVABactCur_uint16": 0, - "HVABbowRudCur_uint16": 0, + "HVABbowRudCur_uint16": 58353, "HVABbusBCur_uint16": 0, "HVABbusBVol_uint16": 0, "HVABmastSteGeaCur_uint16": 0, - "HVABopenWaterCur_uint16": 0, - "HVABxczCur_uint16": 1, - "HVBBCCUCur_uint16": 0, + "HVABopenWaterCur_uint16": 52412, + "HVABxczCur_uint16": 18176, + "HVBBCCUCur_uint16": 193, "HVBBFCSSecurSysCur_uint16": 0, - "HVBBbatInsCur_uint16": 0, - "HVBBbowLowVolDisBoxCur_uint16": 0, - "HVBBdcC1InsCur_uint16": 0, - "HVBBemer2BusVol_uint16": 0, - "HVBBemerBatCur_uint16": 0, - "HVBBinsBusVol_uint16": 0, + "HVBBbatInsCur_uint16": 22321, + "HVBBbowLowVolDisBoxCur_uint16": 22321, + "HVBBdcC1InsCur_uint16": 64995, + "HVBBemer2BusVol_uint16": 22272, + "HVBBemerBatCur_uint16": 47104, + "HVBBinsBusVol_uint16": 49152, "HVBBplcCur_uint16": 0, - "HVBBreservedCur1_uint16": 0, - "HVBBreservedCur2_uint16": 0, - "HVBBunit4Cur_uint16": 0, - "HVBFTDev45Cur_uint16": 0, - "HVBbatGroupCur_uint16": 0, - "HVBbowHVolDisBoxCur_uint16": 0, + "HVBBreservedCur1_uint16": 127, + "HVBBreservedCur2_uint16": 127, + "HVBBunit4Cur_uint16": 64995, + "HVBFTDev45Cur_uint16": 32716, + "HVBbatGroupCur_uint16": 64208, + "HVBbowHVolDisBoxCur_uint16": 48482, "HVBbusACur_uint16": 0, - "HVBbusAVol_uint16": 0, + "HVBbusAVol_uint16": 48479, "HVBdcDc5Cur_uint16": 0, - "HVBfbCur_uint16": 0, - "HVBmotorCur_uint16": 0, - "HVBpowerBusCur_uint16": 0, + "HVBfbCur_uint16": 12532, + "HVBmotorCur_uint16": 32716, + "HVBpowerBusCur_uint16": 55488, "HVBpowerBusVol_uint16": 0, - "HVBreservedCur1_uint16": 0, + "HVBreservedCur1_uint16": 58199, "HVBreservedCur2_uint16": 0, - "HVBreservedCur3_uint16": 0, - "HVBsternRud1Cur_uint16": 0, - "HVBsternRud2Cur_uint16": 0, + "HVBreservedCur3_uint16": 58199, + "HVBsternRud1Cur_uint16": 12536, + "HVBsternRud2Cur_uint16": 32765, "HVBtyzCur_uint16": 0, "LVBBbowPZDevCur_uint16": 0, - "LVBBemerBatCur_uint16": 0, - "LVBBemerBusVol_uint16": 0, + "LVBBemerBatCur_uint16": 64768, + "LVBBemerBusVol_uint16": 44966, "LVBBinsBusCur_uint16": 0, "LVBBunit1Cur_uint16": 0, "LVBBunit2Cur_uint16": 0, diff --git a/data/msg/uPower_disSysState_st.json b/data/msg/uPower_disSysState_st.json index 90bc4ac..3abd690 100644 --- a/data/msg/uPower_disSysState_st.json +++ b/data/msg/uPower_disSysState_st.json @@ -1,8 +1,8 @@ { "HVolABusBreaker_unit16": 0, - "HVolBBusBreaker_unit16": 79, - "HVolBusBreaker_uint16": 58, - "LVolBusBreaker_uint16": 159, + "HVolBBusBreaker_unit16": 1640, + "HVolBusBreaker_uint16": 21943, + "LVolBusBreaker_uint16": 48483, "faultCode_array": [ 0 diff --git a/data/msg/uPower_fcsState_st.json b/data/msg/uPower_fcsState_st.json index c2c70a5..7ce59bd 100644 --- a/data/msg/uPower_fcsState_st.json +++ b/data/msg/uPower_fcsState_st.json @@ -1,30 +1,30 @@ { - "backpressure1_fp32": 8.0, - "backpressure2_fp32": 9.0, - "ch4oConcent1_fp32": 53.0, - "ch4oConcent2_fp32": 81.0, - "ch4o_fp32": 0.0, - "excTemp_fp32": 84.0, - "faultCode1_uint16": 0, - "faultCode2_uint16": 0, - "faultCode3_uint16": 0, - "fcuCurIns_fp32": 0.0, + "backpressure1_fp32": 1.129433109780545e-38, + "backpressure2_fp32": 1.1736554268475541e-38, + "ch4oConcent1_fp32": -1.6155215737897056e+25, + "ch4oConcent2_fp32": 1.9618178500547439e-44, + "ch4o_fp32": 1.1736554268475541e-38, + "excTemp_fp32": 1.1736552867177076e-38, + "faultCode1_uint16": 36880, + "faultCode2_uint16": 48384, + "faultCode3_uint16": 32716, + "fcuCurIns_fp32": 8.602403116674333e-40, "fcuCurPower_fp32": 0.0, - "fcuCur_fp32": 14.0, - "fcuFaultLeve_uint8": 0, - "fcuOutIns_fp32": 56.0, - "fcuOutPower_fp32": 386.0, - "fcuState_uint8": 0, - "fcuVolIns_fp32": 0.0, - "fcuVolPower_fp32": 0.0, - "fcuVol_fp32": 382.0, - "flameDet_uint8": 1, - "h2Concent1_fp32": 5.0, - "h2Concent2_fp32": 3.0, - "o2Concent1_fp32": 80.0, - "o2Concent2_fp32": 82.0, - "o2Level_fp32": 0.0, - "o2_fp32": 0.0, - "powLimit_fp32": 10.0, - "powerGen_fp32": 390.0 + "fcuCur_fp32": -1.1078134507391041e+21, + "fcuFaultLeve_uint8": 96, + "fcuOutIns_fp32": 1.1754185405753675e-38, + "fcuOutPower_fp32": 194012262694912.0, + "fcuState_uint8": 92, + "fcuVolIns_fp32": 6.4791036039165641e+19, + "fcuVolPower_fp32": 1.1736554268475541e-38, + "fcuVol_fp32": 3.4331812375958018e-43, + "flameDet_uint8": 0, + "h2Concent1_fp32": 6.3595330338098774e+19, + "h2Concent2_fp32": 1.1736554268475541e-38, + "o2Concent1_fp32": 2.7580044118016918e+19, + "o2Concent2_fp32": 1.1736554268475541e-38, + "o2Level_fp32": 1.1736552867177076e-38, + "o2_fp32": -1.7820938281008955e+23, + "powLimit_fp32": 1.1736554268475541e-38, + "powerGen_fp32": 2.9084246393558663e+19 } \ No newline at end of file diff --git a/data/msg/uPower_liBatState_st.json b/data/msg/uPower_liBatState_st.json index 07052d2..5766379 100644 --- a/data/msg/uPower_liBatState_st.json +++ b/data/msg/uPower_liBatState_st.json @@ -1,38 +1,38 @@ { "fcuCurToInsLimit1_uint8": 0, "fcuCurToinsLimit2_uint8": 0, - "insBatCurElect_uint16": 0, - "insBatLimit_uint16": 89, - "insBatSoc_uint8": 57, - "insBatTotalElect_uint16": 829, - "insChargeState_uint8": 0, - "insCurSocHold1_uint8": 0, + "insBatCurElect_uint16": 32716, + "insBatLimit_uint16": 58199, + "insBatSoc_uint8": 0, + "insBatTotalElect_uint16": 24778, + "insChargeState_uint8": 209, + "insCurSocHold1_uint8": 48, "insCurSocHold2_uint8": 0, "insCurSocHold3_uint8": 0, - "insCurrent_uint16": 77, + "insCurrent_uint16": 0, "insLinkVol_uint16": 0, - "insNegRelayState_uint8": 1, - "insNegRes_uint16": 0, + "insNegRelayState_uint8": 0, + "insNegRes_uint16": 48480, "insPackVol_uint16": 0, "insPosRelayState_uint8": 0, - "insPosRes_uint16": 0, - "insfaultCode_uint8": 0, + "insPosRes_uint16": 23716, + "insfaultCode_uint8": 228, "powBatCurElect_uint16": 0, - "powBatSoc_uint8": 55, - "powBatTotalElect_uint16": 924, - "powChargeState_uint8": 0, + "powBatSoc_uint8": 0, + "powBatTotalElect_uint16": 48480, + "powChargeState_uint8": 18, "powCurSocHold1_uint8": 0, - "powCurSocHold2_uint8": 0, - "powCurSocHold3_uint8": 0, - "powCurToInsLimit1_uint8": 0, - "powCurToinsLimit2_uint8": 0, - "powCur_uint16": 74, - "powLinkVol_uint16": 0, - "powNegRelayState_uint8": 0, - "powNegRes_uint16": 0, - "powPosRelayState_uint8": 0, - "powPosRes_uint16": 0, - "powerBatLimit_uint16": 53, + "powCurSocHold2_uint8": 244, + "powCurSocHold3_uint8": 212, + "powCurToInsLimit1_uint8": 95, + "powCurToinsLimit2_uint8": 189, + "powCur_uint16": 64208, + "powLinkVol_uint16": 32716, + "powNegRelayState_uint8": 48, + "powNegRes_uint16": 32716, + "powPosRelayState_uint8": 180, + "powPosRes_uint16": 48482, + "powerBatLimit_uint16": 32765, "powerPackVol_uint16": 0, - "powfaultCode_uint8": 0 + "powfaultCode_uint8": 85 } \ No newline at end of file diff --git a/data/subDisSysCmd.json b/data/subDisSysCmd.json new file mode 100644 index 0000000..32f5f8d --- /dev/null +++ b/data/subDisSysCmd.json @@ -0,0 +1,64 @@ +{ + "CTD1" : 0, + "CTD2" : 0, + "DVL" : 0, + "USBL" : 0, + "bowCover1" : 0, + "bowCover2" : 0, + "bowCover3" : 0, + "bowCover4" : 0, + "bowCover5" : 0, + "bowCover6" : 0, + "bowRudderDeploy" : 0, + "bowRudderServo1" : 0, + "bowRudderServo2" : 0, + "bowThrow" : 0, + "bowWaterlnet1" : 0, + "bowWaterlnet2" : 0, + "bowWaterlnet3" : 0, + "bowWaterlnet4" : 0, + "bowWaterlnet5" : 0, + "bowWaterlnet6" : 0, + "bowWaterlnet7" : 0, + "bowWaterlnet8" : 0, + "buoyage" : 0, + "buoyancyAdjust1" : 0, + "buoyancyAdjust2" : 0, + "buoyancyAdjust3" : 0, + "buoyancyAdjust4" : 0, + "buoyancyAdjust5" : 0, + "commMast" : 0, + "depth1" : 0, + "depth2" : 0, + "depth3" : 0, + "electSensor" : 0, + "forwardSonar" : 0, + "inputWaterSensor1" : 0, + "inputWaterSensor2" : 0, + "inputWaterSensor3" : 0, + "ins" : 0, + "launchControler" : 0, + "lowFreqSonar" : 0, + "mastLiftingServo" : 0, + "ntp" : 0, + "overDeep1" : 0, + "overDeep2" : 0, + "photoSensor" : 0, + "sideSonar" : 0, + "singleBeamSonar1" : 0, + "singleBeamSonar2" : 0, + "singleBeamSonar3" : 0, + "singleBeamSonar4" : 0, + "singleBeamSonar5" : 0, + "singleBeamSonar6" : 0, + "singleBeamSonar7" : 0, + "singleBeamSonar8" : 0, + "soundVeloc" : 0, + "sternRudderServo1" : 0, + "sternRudderServo2" : 0, + "sternRudderServo3" : 0, + "sternRudderServo4" : 0, + "sternThrow" : 0, + "thruster" : 0, + "waterInject" : 0 +} diff --git a/src/pPowerManger/PowerManger.cpp b/src/pPowerManger/PowerManger.cpp index 5eeff30..1c053e4 100644 --- a/src/pPowerManger/PowerManger.cpp +++ b/src/pPowerManger/PowerManger.cpp @@ -161,6 +161,10 @@ bool PowerManger::Iterate() //c. 上位机反馈 buildPowerSysReport(); } + /////////////////////// + string a = m_driver.getSubDisCmdJson(&m_subDisSysCmd); + saveStringToJsonFile(a,"/home/zjk/project/H100/H100PowerManger/data/subDisSysCmd.json"); + /////////////////////// //4. 打印错误信息 if(!m_udpComm.sError.empty()) { @@ -353,6 +357,23 @@ bool PowerManger::updatePmState() m_pmCurrentState.bus1State = m_disHighVolBusCurrentState.data; m_db->insertDisHighVolBusData(m_disHighVolBusCurrentState.data); //写入数据库 msg_disHighVolBusFbMsg_Update_time = time; + + disBus1Breaker* pdis1=new disBus1Breaker; + (m_pmCurrentState.bus1State.fuelCellCircuitBreaker == BREAK_ON) ? pdis1 -> fuelCellCircuitBreaker = 1 : pdis1 -> fuelCellCircuitBreaker = 0; + (m_pmCurrentState.bus1State.powerLithiumBatteryCircuitBreaker == BREAK_ON) ? pdis1 -> powerLithiumBatteryCircuitBreaker = 1 : pdis1 -> powerLithiumBatteryCircuitBreaker = 0; + (m_pmCurrentState.bus1State.propulsionMotorCircuitBreaker == BREAK_ON) ? pdis1 -> propulsionMotorCircuitBreaker = 1 : pdis1 -> propulsionMotorCircuitBreaker = 0; + (m_pmCurrentState.bus1State.lithiumBatteryGroupInstrumentCircuitBreaker == BREAK_ON) ? pdis1 -> lithiumBatteryGroupInstrumentCircuitBreaker = 1 : pdis1 -> lithiumBatteryGroupInstrumentCircuitBreaker = 0; + (m_pmCurrentState.bus1State.dcDc5ModuleCircuitBreaker == BREAK_ON) ? pdis1 -> dcDc5ModuleCircuitBreaker = 1 : pdis1 -> dcDc5ModuleCircuitBreaker = 0; + (m_pmCurrentState.bus1State.bowHighVoltageDistributionBoxCircuitBreaker == BREAK_ON) ? pdis1 -> bowHighVoltageDistributionBoxCircuitBreaker = 1 : pdis1 -> bowHighVoltageDistributionBoxCircuitBreaker = 0; + (m_pmCurrentState.bus1State.sternFTDevice45CircuitBreaker == BREAK_ON) ? pdis1 -> sternFTDevice45CircuitBreaker = 1 : pdis1 -> sternFTDevice45CircuitBreaker = 0; + (m_pmCurrentState.bus1State.sternRudderSwitch1CircuitBreaker == BREAK_ON) ? pdis1 -> sternRudderSwitch1CircuitBreaker = 1 : pdis1 -> sternRudderSwitch1CircuitBreaker = 0; + (m_pmCurrentState.bus1State.sternRudderSwitch2CircuitBreaker == BREAK_ON) ? pdis1 -> sternRudderSwitch2CircuitBreaker = 1 : pdis1 -> sternRudderSwitch2CircuitBreaker = 0; + (m_pmCurrentState.bus1State.fbReservedCircuitBreaker == BREAK_ON) ? pdis1 -> fbReservedCircuitBreaker = 1 : pdis1 -> fbReservedCircuitBreaker = 0; + (m_pmCurrentState.bus1State.tyzReservedCircuitBreaker == BREAK_ON) ? pdis1 -> tyzReservedCircuitBreaker = 1 : pdis1 -> tyzReservedCircuitBreaker = 0; + (m_pmCurrentState.bus1State.reservedCircuitBreaker == BREAK_ON) ? pdis1 -> reservedCircuitBreaker = 1 : pdis1 -> reservedCircuitBreaker = 0; + pdis1 -> paceholder = 0; + m_currentDisBreakerState.bus1Breaker = *pdis1; + delete pdis1; } if(!m_udpComm.m_qReceiveDisHighAVolBusBuffer.empty()) { @@ -361,6 +382,17 @@ bool PowerManger::updatePmState() m_pmCurrentState.bus2State = m_disHighAVolBusCurrentState.data; m_db->insertDisHighAVolBusData(m_disHighAVolBusCurrentState.data); //写入数据库 msg_disHighAVolBusFbMsg_Update_time = time; + + disBus2Breaker* pdis2=new disBus2Breaker; + (m_pmCurrentState.bus2State.bowFTDevice123CircuitBreaker == BREAK_ON)? pdis2 -> bowFTDevice123CircuitBreaker = 1 : pdis2 -> bowFTDevice123CircuitBreaker = 0; + (m_pmCurrentState.bus2State.actuatorCircuitBreaker == BREAK_ON)? pdis2 -> actuatorCircuitBreaker = 1 : pdis2 -> actuatorCircuitBreaker = 0; + (m_pmCurrentState.bus2State.mastSteeringGearControlBoxCircuitBreaker == BREAK_ON)? pdis2 -> mastSteeringGearControlBoxCircuitBreaker = 1 : pdis2 -> mastSteeringGearControlBoxCircuitBreaker = 0; + (m_pmCurrentState.bus2State.xczCircuitBreaker == BREAK_ON)? pdis2 -> xczCircuitBreaker = 1 : pdis2 -> xczCircuitBreaker = 0; + (m_pmCurrentState.bus2State.bowRudderControlBoxCircuitBreaker == BREAK_ON)? pdis2 -> bowRudderControlBoxCircuitBreaker = 1 : pdis2 -> bowRudderControlBoxCircuitBreaker = 0; + (m_pmCurrentState.bus2State.openWaterCoverStartCylinderCircuitBreaker == BREAK_ON)? pdis2 -> openWaterCoverStartCylinderCircuitBreaker = 1 : pdis2 -> openWaterCoverStartCylinderCircuitBreaker = 0; + pdis2 -> paceholder = 0; + m_currentDisBreakerState.bus2Breaker = *pdis2; + delete pdis2; } if(!m_udpComm.m_qReceiveDisHighBVolBusBuffer.empty()) { @@ -369,6 +401,18 @@ bool PowerManger::updatePmState() m_pmCurrentState.bus3State = m_disHighBVolBusCurrentState.data; m_db->insertDisHighBVolBusData(m_disHighBVolBusCurrentState.data); //写入数据库 msg_disHighBVolBusFbMsg_Update_time = time; + + disBus3Breaker* pdis3=new disBus3Breaker; + (m_pmCurrentState.bus3State.lithiumBatteryGroupInstrumentCircuitBreaker == BREAK_ON)? pdis3 -> lithiumBatteryGroupInstrumentCircuitBreaker = 1 : pdis3 -> lithiumBatteryGroupInstrumentCircuitBreaker = 0; + (m_pmCurrentState.bus3State.bowLowVoltageDistributionBoxCircuitBreaker == BREAK_ON)? pdis3 -> bowLowVoltageDistributionBoxCircuitBreaker = 1 : pdis3 -> bowLowVoltageDistributionBoxCircuitBreaker = 0; + (m_pmCurrentState.bus3State.unit4InstrumentDC48VCircuitBreaker == BREAK_ON)? pdis3 -> unit4InstrumentDC48VCircuitBreaker = 1 : pdis3 -> unit4InstrumentDC48VCircuitBreaker = 0; + (m_pmCurrentState.bus3State.dcC1DCDistributionPanelCircuitBreaker == BREAK_ON)? pdis3 -> dcC1DCDistributionPanelCircuitBreaker = 1 : pdis3 -> dcC1DCDistributionPanelCircuitBreaker = 0; + (m_pmCurrentState.bus3State.reservedCircuitBreaker1 == BREAK_ON)? pdis3 -> reservedCircuitBreaker1 = 1 : pdis3 -> reservedCircuitBreaker1 = 0; + (m_pmCurrentState.bus3State.reservedCircuitBreaker2 == BREAK_ON)? pdis3 -> reservedCircuitBreaker2 = 1 : pdis3 -> reservedCircuitBreaker2 = 0; + (m_pmCurrentState.bus3State.emergencyLithiumBatteryGroup2CircuitBreaker == BREAK_ON)? pdis3 -> emergencyLithiumBatteryGroup2CircuitBreaker = 1 : pdis3 -> emergencyLithiumBatteryGroup2CircuitBreaker = 0; + pdis3->paceholder = 0; + m_currentDisBreakerState.bus3Breaker = *pdis3; + delete pdis3; } if(!m_udpComm.m_qReceiveDisLowBusBuffer.empty()) { @@ -377,6 +421,19 @@ bool PowerManger::updatePmState() m_pmCurrentState.bus4State = m_disLowBusState.data; m_db->insertDisLowBusData(m_disLowBusState.data); //写入数据库 msg_disLowBusFbMsg_Update_time = time; + + disBus4Breaker* pdis4=new disBus4Breaker; + (m_pmCurrentState.bus4State.unit1CircuitBreaker == BREAK_ON)? pdis4 -> unit1CircuitBreaker = 1 : pdis4 -> unit1CircuitBreaker = 0; + (m_pmCurrentState.bus4State.unit2CircuitBreaker == BREAK_ON)? pdis4 -> unit2CircuitBreaker = 1 : pdis4 -> unit2CircuitBreaker = 0; + (m_pmCurrentState.bus4State.unit3CircuitBreaker == BREAK_ON)? pdis4 -> unit3CircuitBreaker = 1 : pdis4 -> unit3CircuitBreaker = 0; + (m_pmCurrentState.bus4State.unit5CircuitBreaker == BREAK_ON)? pdis4 -> unit5CircuitBreaker = 1 : pdis4 -> unit5CircuitBreaker = 0; + (m_pmCurrentState.bus4State.bowPZDeviceCircuitBreaker == BREAK_ON)? pdis4 -> bowPZDeviceCircuitBreaker = 1 : pdis4 -> bowPZDeviceCircuitBreaker = 0; + (m_pmCurrentState.bus4State.reservedCircuitBreaker1 == BREAK_ON)? pdis4 -> reservedCircuitBreaker1 = 1 : pdis4 -> reservedCircuitBreaker1 = 0; + (m_pmCurrentState.bus4State.reservedCircuitBreaker2 == BREAK_ON)? pdis4 -> reservedCircuitBreaker2 = 1 : pdis4 -> reservedCircuitBreaker2 = 0; + (m_pmCurrentState.bus4State.emergencyLithiumBatteryGroup1CircuitBreaker == BREAK_ON)? pdis4 -> emergencyLithiumBatteryGroup1CircuitBreaker = 1 : pdis4 -> emergencyLithiumBatteryGroup1CircuitBreaker = 0; + pdis4 -> paceholder = 0; + m_currentDisBreakerState.bus4Breaker = *pdis4; + delete pdis4; } return true; } @@ -400,63 +457,8 @@ void PowerManger::ccuOption() } void PowerManger::disSysOption() { - //1.更新断路器的状态 - disBus1Breaker* pdis1=new disBus1Breaker; - (m_pmCurrentState.bus1State.fuelCellCircuitBreaker == BREAK_ON) ? pdis1 -> fuelCellCircuitBreaker = 1 : pdis1 -> fuelCellCircuitBreaker = 0; - (m_pmCurrentState.bus1State.powerLithiumBatteryCircuitBreaker == BREAK_ON) ? pdis1 -> powerLithiumBatteryCircuitBreaker = 1 : pdis1 -> powerLithiumBatteryCircuitBreaker = 0; - (m_pmCurrentState.bus1State.propulsionMotorCircuitBreaker == BREAK_ON) ? pdis1 -> propulsionMotorCircuitBreaker = 1 : pdis1 -> propulsionMotorCircuitBreaker = 0; - (m_pmCurrentState.bus1State.lithiumBatteryGroupInstrumentCircuitBreaker == BREAK_ON) ? pdis1 -> lithiumBatteryGroupInstrumentCircuitBreaker = 1 : pdis1 -> lithiumBatteryGroupInstrumentCircuitBreaker = 0; - (m_pmCurrentState.bus1State.dcDc5ModuleCircuitBreaker == BREAK_ON) ? pdis1 -> dcDc5ModuleCircuitBreaker = 1 : pdis1 -> dcDc5ModuleCircuitBreaker = 0; - (m_pmCurrentState.bus1State.bowHighVoltageDistributionBoxCircuitBreaker == BREAK_ON) ? pdis1 -> bowHighVoltageDistributionBoxCircuitBreaker = 1 : pdis1 -> bowHighVoltageDistributionBoxCircuitBreaker = 0; - (m_pmCurrentState.bus1State.sternFTDevice45CircuitBreaker == BREAK_ON) ? pdis1 -> sternFTDevice45CircuitBreaker = 1 : pdis1 -> sternFTDevice45CircuitBreaker = 0; - (m_pmCurrentState.bus1State.sternRudderSwitch1CircuitBreaker == BREAK_ON) ? pdis1 -> sternRudderSwitch1CircuitBreaker = 1 : pdis1 -> sternRudderSwitch1CircuitBreaker = 0; - (m_pmCurrentState.bus1State.sternRudderSwitch2CircuitBreaker == BREAK_ON) ? pdis1 -> sternRudderSwitch2CircuitBreaker = 1 : pdis1 -> sternRudderSwitch2CircuitBreaker = 0; - (m_pmCurrentState.bus1State.fbReservedCircuitBreaker == BREAK_ON) ? pdis1 -> fbReservedCircuitBreaker = 1 : pdis1 -> fbReservedCircuitBreaker = 0; - (m_pmCurrentState.bus1State.tyzReservedCircuitBreaker == BREAK_ON) ? pdis1 -> tyzReservedCircuitBreaker = 1 : pdis1 -> tyzReservedCircuitBreaker = 0; - (m_pmCurrentState.bus1State.reservedCircuitBreaker == BREAK_ON) ? pdis1 -> reservedCircuitBreaker = 1 : pdis1 -> reservedCircuitBreaker = 0; - pdis1 -> paceholder = 0; - disBus2Breaker* pdis2=new disBus2Breaker; - (m_pmCurrentState.bus2State.bowFTDevice123CircuitBreaker == BREAK_ON)? pdis2 -> bowFTDevice123CircuitBreaker = 1 : pdis2 -> bowFTDevice123CircuitBreaker = 0; - (m_pmCurrentState.bus2State.actuatorCircuitBreaker == BREAK_ON)? pdis2 -> actuatorCircuitBreaker = 1 : pdis2 -> actuatorCircuitBreaker = 0; - (m_pmCurrentState.bus2State.mastSteeringGearControlBoxCircuitBreaker == BREAK_ON)? pdis2 -> mastSteeringGearControlBoxCircuitBreaker = 1 : pdis2 -> mastSteeringGearControlBoxCircuitBreaker = 0; - (m_pmCurrentState.bus2State.xczCircuitBreaker == BREAK_ON)? pdis2 -> xczCircuitBreaker = 1 : pdis2 -> xczCircuitBreaker = 0; - (m_pmCurrentState.bus2State.bowRudderControlBoxCircuitBreaker == BREAK_ON)? pdis2 -> bowRudderControlBoxCircuitBreaker = 1 : pdis2 -> bowRudderControlBoxCircuitBreaker = 0; - (m_pmCurrentState.bus2State.openWaterCoverStartCylinderCircuitBreaker == BREAK_ON)? pdis2 -> openWaterCoverStartCylinderCircuitBreaker = 1 : pdis2 -> openWaterCoverStartCylinderCircuitBreaker = 0; - pdis2 -> paceholder = 0; - - disBus3Breaker* pdis3=new disBus3Breaker; - (m_pmCurrentState.bus3State.lithiumBatteryGroupInstrumentCircuitBreaker == BREAK_ON)? pdis3 -> lithiumBatteryGroupInstrumentCircuitBreaker = 1 : pdis3 -> lithiumBatteryGroupInstrumentCircuitBreaker = 0; - (m_pmCurrentState.bus3State.bowLowVoltageDistributionBoxCircuitBreaker == BREAK_ON)? pdis3 -> bowLowVoltageDistributionBoxCircuitBreaker = 1 : pdis3 -> bowLowVoltageDistributionBoxCircuitBreaker = 0; - (m_pmCurrentState.bus3State.unit4InstrumentDC48VCircuitBreaker == BREAK_ON)? pdis3 -> unit4InstrumentDC48VCircuitBreaker = 1 : pdis3 -> unit4InstrumentDC48VCircuitBreaker = 0; - (m_pmCurrentState.bus3State.dcC1DCDistributionPanelCircuitBreaker == BREAK_ON)? pdis3 -> dcC1DCDistributionPanelCircuitBreaker = 1 : pdis3 -> dcC1DCDistributionPanelCircuitBreaker = 0; - (m_pmCurrentState.bus3State.reservedCircuitBreaker1 == BREAK_ON)? pdis3 -> reservedCircuitBreaker1 = 1 : pdis3 -> reservedCircuitBreaker1 = 0; - (m_pmCurrentState.bus3State.reservedCircuitBreaker2 == BREAK_ON)? pdis3 -> reservedCircuitBreaker2 = 1 : pdis3 -> reservedCircuitBreaker2 = 0; - (m_pmCurrentState.bus3State.emergencyLithiumBatteryGroup2CircuitBreaker == BREAK_ON)? pdis3 -> emergencyLithiumBatteryGroup2CircuitBreaker = 1 : pdis3 -> emergencyLithiumBatteryGroup2CircuitBreaker = 0; - pdis3->paceholder = 0; - - disBus4Breaker* pdis4=new disBus4Breaker; - (m_pmCurrentState.bus4State.unit1CircuitBreaker == BREAK_ON)? pdis4 -> unit1CircuitBreaker = 1 : pdis4 -> unit1CircuitBreaker = 0; - (m_pmCurrentState.bus4State.unit2CircuitBreaker == BREAK_ON)? pdis4 -> unit2CircuitBreaker = 1 : pdis4 -> unit2CircuitBreaker = 0; - (m_pmCurrentState.bus4State.unit3CircuitBreaker == BREAK_ON)? pdis4 -> unit3CircuitBreaker = 1 : pdis4 -> unit3CircuitBreaker = 0; - (m_pmCurrentState.bus4State.unit5CircuitBreaker == BREAK_ON)? pdis4 -> unit5CircuitBreaker = 1 : pdis4 -> unit5CircuitBreaker = 0; - (m_pmCurrentState.bus4State.bowPZDeviceCircuitBreaker == BREAK_ON)? pdis4 -> bowPZDeviceCircuitBreaker = 1 : pdis4 -> bowPZDeviceCircuitBreaker = 0; - (m_pmCurrentState.bus4State.reservedCircuitBreaker1 == BREAK_ON)? pdis4 -> reservedCircuitBreaker1 = 1 : pdis4 -> reservedCircuitBreaker1 = 0; - (m_pmCurrentState.bus4State.reservedCircuitBreaker2 == BREAK_ON)? pdis4 -> reservedCircuitBreaker2 = 1 : pdis4 -> reservedCircuitBreaker2 = 0; - (m_pmCurrentState.bus4State.emergencyLithiumBatteryGroup1CircuitBreaker == BREAK_ON)? pdis4 -> emergencyLithiumBatteryGroup1CircuitBreaker = 1 : pdis4 -> emergencyLithiumBatteryGroup1CircuitBreaker = 0; - pdis4 -> paceholder = 0; - - m_currentDisBreakerState.bus1Breaker = *pdis1; - m_currentDisBreakerState.bus2Breaker = *pdis2; - m_currentDisBreakerState.bus3Breaker = *pdis3; - m_currentDisBreakerState.bus4Breaker = *pdis4; - - delete pdis1; - delete pdis2; - delete pdis3; - delete pdis4; - - //2.根据目标状态进行断路器操作 + //根据目标状态进行断路器操作 //a. 高压母线的断路器 disHighVolBusCmd a; a.fuelCellCircuitBreaker = getBreakerOption(m_targetDisBreakerState.bus1Breaker.fuelCellCircuitBreaker); @@ -502,7 +504,6 @@ void PowerManger::disSysOption() d.reservedCircuitBreaker2 = getBreakerOption(m_targetDisBreakerState.bus4Breaker.reservedCircuitBreaker2); d.emergencyLithiumBatteryGroup1CircuitBreaker = getBreakerOption(m_targetDisBreakerState.bus4Breaker.emergencyLithiumBatteryGroup1CircuitBreaker); m_udpComm.sendDisSysCmd(d); - //将指令写入数据库 m_db->insertDisSysCmd(a); m_db->insertDisSysCmd(b); diff --git a/src/pPowerManger/PowerManger.h b/src/pPowerManger/PowerManger.h index b011605..b70559a 100644 --- a/src/pPowerManger/PowerManger.h +++ b/src/pPowerManger/PowerManger.h @@ -101,6 +101,16 @@ class PowerManger : public AppCastingMOOSApp protected: + //===========================交互状态变量================================== + Driver m_driver; + pmState m_pmCurrentState; //能源系统的当前状态 + disSysBreakerList m_currentDisBreakerState; //配电断路器状态 + disSysBreakerList m_targetDisBreakerState; + DriverTable m_currentDriverState; + DriverTable m_MSDriverCmd; + DriverTable m_subDisSysCmd; + DriverTable m_subDisSysState; +//=========================================================================== //系统运行状态 unsigned char workCondition; unsigned char currentMod; @@ -109,7 +119,7 @@ class PowerManger : public AppCastingMOOSApp vector faultCode; unsigned int soc; unsigned int sustainableTime; - pmState m_pmCurrentState; //能源系统的当前状态 + // 配电和CCU的反馈状态 msg_CcuStateFbMsg m_CcuCurrentState; @@ -120,8 +130,6 @@ class PowerManger : public AppCastingMOOSApp //下位机操作函数 //断路器状态 - disSysBreakerList m_currentDisBreakerState; - disSysBreakerList m_targetDisBreakerState; ccuColCmd m_CcuColCmd; void disSysOption(); void ccuOption(); @@ -146,8 +154,6 @@ class PowerManger : public AppCastingMOOSApp unsigned int m_faultNum; unsigned int m_ticker; - - public: //===========================状态机实现============================================== void printState(FSM_State st, string desp); diff --git a/src/pPowerManger/driver.cpp b/src/pPowerManger/driver.cpp index ba2e0d5..16ee49a 100644 --- a/src/pPowerManger/driver.cpp +++ b/src/pPowerManger/driver.cpp @@ -65,16 +65,20 @@ void Driver::getSTANDBYTable(DriverTable* driverTable) driverTable->depth3 = DRIVER_FULL_POWER_ON; driverTable->overDeep1 = DRIVER_FULL_POWER_ON; driverTable->overDeep2 = DRIVER_FULL_POWER_ON; - driverTable->CTD1 = DRIVER_FULL_POWER_ON; - driverTable->CTD2 = DRIVER_FULL_POWER_ON; + driverTable->ctd1 = DRIVER_FULL_POWER_ON; + driverTable->ctd2 = DRIVER_FULL_POWER_ON; driverTable->soundVeloc = DRIVER_FULL_POWER_ON; driverTable->commMast = DRIVER_FULL_POWER_ON; driverTable->ins = DRIVER_FULL_POWER_ON; driverTable->ntp = DRIVER_FULL_POWER_ON; + driverTable->inputWaterSensor1 = DRIVER_FULL_POWER_ON; + driverTable->inputWaterSensor2 = DRIVER_FULL_POWER_ON; + driverTable->inputWaterSensor3 = DRIVER_FULL_POWER_ON; + //关闭所有负载 driverTable->photoSensor = DRIVER_STANDBY; driverTable->electSensor = DRIVER_STANDBY; - driverTable->zhfk = DRIVER_STANDBY; + driverTable->launchControler = DRIVER_STANDBY; driverTable->sideSonar = DRIVER_POWER_OFF; driverTable->buoyage = DRIVER_POWER_OFF; //关闭所有水声设备 @@ -88,31 +92,33 @@ void Driver::getSTANDBYTable(DriverTable* driverTable) driverTable->singleBeamSonar8 = DRIVER_POWER_OFF; driverTable->DVL = DRIVER_POWER_OFF; driverTable->forwardSonar = DRIVER_POWER_OFF; - driverTable->zdp = DRIVER_POWER_OFF; - driverTable->usbl = DRIVER_POWER_OFF; + driverTable->lowFreqSonar = DRIVER_POWER_OFF; + driverTable->USBL = DRIVER_POWER_OFF; //关闭所有执行机构 - driverTable->bowOpen1 = DRIVER_POWER_OFF; - driverTable->bowOpen2 = DRIVER_POWER_OFF; - driverTable->bowOpen3 = DRIVER_POWER_OFF; - driverTable->bowOpen4 = DRIVER_POWER_OFF; - driverTable->bowOpen5 = DRIVER_POWER_OFF; - driverTable->bowOpen6 = DRIVER_POWER_OFF; - driverTable->bowRudderDeploy = DRIVER_POWER_OFF; - driverTable->bowRudderServo1 = DRIVER_POWER_OFF; - driverTable->bowRudderServo2 = DRIVER_POWER_OFF; driverTable->bowCover1 = DRIVER_POWER_OFF; driverTable->bowCover2 = DRIVER_POWER_OFF; driverTable->bowCover3 = DRIVER_POWER_OFF; driverTable->bowCover4 = DRIVER_POWER_OFF; driverTable->bowCover5 = DRIVER_POWER_OFF; driverTable->bowCover6 = DRIVER_POWER_OFF; - driverTable->bowCover7 = DRIVER_POWER_OFF; - driverTable->bowCover8 = DRIVER_POWER_OFF; + driverTable->bowRudderDeploy = DRIVER_POWER_OFF; + driverTable->bowRudderServo1 = DRIVER_POWER_OFF; + driverTable->bowRudderServo2 = DRIVER_POWER_OFF; + driverTable->bowWaterlnet1 = DRIVER_POWER_OFF; + driverTable->bowWaterlnet2 = DRIVER_POWER_OFF; + driverTable->bowWaterlnet3 = DRIVER_POWER_OFF; + driverTable->bowWaterlnet4 = DRIVER_POWER_OFF; + driverTable->bowWaterlnet5 = DRIVER_POWER_OFF; + driverTable->bowWaterlnet6 = DRIVER_POWER_OFF; + driverTable->bowWaterlnet7 = DRIVER_POWER_OFF; + driverTable->bowWaterlnet8 = DRIVER_POWER_OFF; driverTable->waterInject = DRIVER_POWER_OFF; - driverTable->wgDJ = DRIVER_POWER_OFF; + driverTable->mastLiftingServo = DRIVER_POWER_OFF; driverTable->buoyancyAdjust1 = DRIVER_POWER_OFF; driverTable->buoyancyAdjust2 = DRIVER_POWER_OFF; driverTable->buoyancyAdjust3 = DRIVER_POWER_OFF; + driverTable->buoyancyAdjust4 = DRIVER_POWER_OFF; + driverTable->buoyancyAdjust5 = DRIVER_POWER_OFF; driverTable->sternRudderServo1 = DRIVER_POWER_OFF; driverTable->sternRudderServo2 = DRIVER_POWER_OFF; driverTable->sternRudderServo3 = DRIVER_POWER_OFF; @@ -130,18 +136,21 @@ void Driver::getSHORE_BASED_READYable(DriverTable* driverTable) driverTable->depth3 = DRIVER_FULL_POWER_ON; driverTable->overDeep1 = DRIVER_FULL_POWER_ON; driverTable->overDeep2 = DRIVER_FULL_POWER_ON; - driverTable->CTD1 = DRIVER_FULL_POWER_ON; - driverTable->CTD2 = DRIVER_FULL_POWER_ON; + driverTable->ctd1 = DRIVER_FULL_POWER_ON; + driverTable->ctd2 = DRIVER_FULL_POWER_ON; driverTable->soundVeloc = DRIVER_FULL_POWER_ON; driverTable->commMast = DRIVER_FULL_POWER_ON; driverTable->ins = DRIVER_FULL_POWER_ON; driverTable->ntp = DRIVER_FULL_POWER_ON; - + driverTable->inputWaterSensor1 = DRIVER_FULL_POWER_ON; + driverTable->inputWaterSensor2 = DRIVER_FULL_POWER_ON; + driverTable->inputWaterSensor3 = DRIVER_FULL_POWER_ON; + // 允许启动负载 // 关闭xcz driverTable->photoSensor = DRIVER_STANDBY; driverTable->electSensor = DRIVER_STANDBY; - driverTable->zhfk = DRIVER_STANDBY; + driverTable->launchControler = DRIVER_STANDBY; driverTable->sideSonar = DRIVER_POWER_OFF; driverTable->buoyage = DRIVER_STANDBY; @@ -156,32 +165,34 @@ void Driver::getSHORE_BASED_READYable(DriverTable* driverTable) driverTable->singleBeamSonar8 = DRIVER_POWER_OFF; driverTable->DVL = DRIVER_POWER_OFF; driverTable->forwardSonar = DRIVER_POWER_OFF; - driverTable->zdp = DRIVER_POWER_OFF; - driverTable->usbl = DRIVER_POWER_OFF; + driverTable->lowFreqSonar = DRIVER_POWER_OFF; + driverTable->USBL = DRIVER_POWER_OFF; // 打开必要的执行机构 - driverTable->bowOpen1 = DRIVER_FULL_POWER_ON; - driverTable->bowOpen2 = DRIVER_FULL_POWER_ON; - driverTable->bowOpen3 = DRIVER_FULL_POWER_ON; - driverTable->bowOpen4 = DRIVER_FULL_POWER_ON; - driverTable->bowOpen5 = DRIVER_FULL_POWER_ON; - driverTable->bowOpen6 = DRIVER_FULL_POWER_ON; - driverTable->bowRudderDeploy = DRIVER_FULL_POWER_ON; - driverTable->bowRudderServo1 = DRIVER_FULL_POWER_ON; - driverTable->bowRudderServo2 = DRIVER_FULL_POWER_ON; driverTable->bowCover1 = DRIVER_FULL_POWER_ON; driverTable->bowCover2 = DRIVER_FULL_POWER_ON; driverTable->bowCover3 = DRIVER_FULL_POWER_ON; driverTable->bowCover4 = DRIVER_FULL_POWER_ON; driverTable->bowCover5 = DRIVER_FULL_POWER_ON; driverTable->bowCover6 = DRIVER_FULL_POWER_ON; - driverTable->bowCover7 = DRIVER_FULL_POWER_ON; - driverTable->bowCover8 = DRIVER_FULL_POWER_ON; + driverTable->bowRudderDeploy = DRIVER_FULL_POWER_ON; + driverTable->bowRudderServo1 = DRIVER_FULL_POWER_ON; + driverTable->bowRudderServo2 = DRIVER_FULL_POWER_ON; + driverTable->bowWaterlnet1 = DRIVER_FULL_POWER_ON; + driverTable->bowWaterlnet2 = DRIVER_FULL_POWER_ON; + driverTable->bowWaterlnet3 = DRIVER_FULL_POWER_ON; + driverTable->bowWaterlnet4 = DRIVER_FULL_POWER_ON; + driverTable->bowWaterlnet5 = DRIVER_FULL_POWER_ON; + driverTable->bowWaterlnet6 = DRIVER_FULL_POWER_ON; + driverTable->bowWaterlnet7 = DRIVER_FULL_POWER_ON; + driverTable->bowWaterlnet8 = DRIVER_FULL_POWER_ON; driverTable->waterInject = DRIVER_FULL_POWER_ON; - driverTable->wgDJ = DRIVER_FULL_POWER_ON; + driverTable->mastLiftingServo = DRIVER_FULL_POWER_ON; driverTable->buoyancyAdjust1 = DRIVER_FULL_POWER_ON; driverTable->buoyancyAdjust2 = DRIVER_FULL_POWER_ON; driverTable->buoyancyAdjust3 = DRIVER_FULL_POWER_ON; + driverTable->buoyancyAdjust4 = DRIVER_FULL_POWER_ON; + driverTable->buoyancyAdjust5 = DRIVER_FULL_POWER_ON; driverTable->sternRudderServo1 = DRIVER_FULL_POWER_ON; driverTable->sternRudderServo2 = DRIVER_FULL_POWER_ON; driverTable->sternRudderServo3 = DRIVER_FULL_POWER_ON; @@ -199,17 +210,20 @@ void Driver::getWATER_BASED_READYable(DriverTable* driverTable) driverTable->depth3 = DRIVER_FULL_POWER_ON; driverTable->overDeep1 = DRIVER_FULL_POWER_ON; driverTable->overDeep2 = DRIVER_FULL_POWER_ON; - driverTable->CTD1 = DRIVER_FULL_POWER_ON; - driverTable->CTD2 = DRIVER_FULL_POWER_ON; + driverTable->ctd1 = DRIVER_FULL_POWER_ON; + driverTable->ctd2 = DRIVER_FULL_POWER_ON; driverTable->soundVeloc = DRIVER_FULL_POWER_ON; driverTable->commMast = DRIVER_FULL_POWER_ON; driverTable->ins = DRIVER_FULL_POWER_ON; driverTable->ntp = DRIVER_FULL_POWER_ON; - + driverTable->inputWaterSensor1 = DRIVER_FULL_POWER_ON; + driverTable->inputWaterSensor2 = DRIVER_FULL_POWER_ON; + driverTable->inputWaterSensor3 = DRIVER_FULL_POWER_ON; + // 允许启动负载 driverTable->photoSensor = DRIVER_STANDBY; driverTable->electSensor = DRIVER_STANDBY; - driverTable->zhfk = DRIVER_STANDBY; + driverTable->launchControler = DRIVER_STANDBY; driverTable->sideSonar = DRIVER_STANDBY; driverTable->buoyage = DRIVER_STANDBY; @@ -225,32 +239,34 @@ void Driver::getWATER_BASED_READYable(DriverTable* driverTable) driverTable->singleBeamSonar8 = DRIVER_STANDBY; driverTable->DVL = DRIVER_FULL_POWER_ON; driverTable->forwardSonar = DRIVER_STANDBY; - driverTable->zdp = DRIVER_STANDBY; - driverTable->usbl = DRIVER_STANDBY; + driverTable->lowFreqSonar = DRIVER_STANDBY; + driverTable->USBL = DRIVER_STANDBY; // 打开必要的执行机构 - driverTable->bowOpen1 = DRIVER_FULL_POWER_ON; - driverTable->bowOpen2 = DRIVER_FULL_POWER_ON; - driverTable->bowOpen3 = DRIVER_FULL_POWER_ON; - driverTable->bowOpen4 = DRIVER_FULL_POWER_ON; - driverTable->bowOpen5 = DRIVER_FULL_POWER_ON; - driverTable->bowOpen6 = DRIVER_FULL_POWER_ON; - driverTable->bowRudderDeploy = DRIVER_FULL_POWER_ON; - driverTable->bowRudderServo1 = DRIVER_FULL_POWER_ON; - driverTable->bowRudderServo2 = DRIVER_FULL_POWER_ON; driverTable->bowCover1 = DRIVER_FULL_POWER_ON; driverTable->bowCover2 = DRIVER_FULL_POWER_ON; driverTable->bowCover3 = DRIVER_FULL_POWER_ON; driverTable->bowCover4 = DRIVER_FULL_POWER_ON; driverTable->bowCover5 = DRIVER_FULL_POWER_ON; driverTable->bowCover6 = DRIVER_FULL_POWER_ON; - driverTable->bowCover7 = DRIVER_FULL_POWER_ON; - driverTable->bowCover8 = DRIVER_FULL_POWER_ON; + driverTable->bowRudderDeploy = DRIVER_FULL_POWER_ON; + driverTable->bowRudderServo1 = DRIVER_FULL_POWER_ON; + driverTable->bowRudderServo2 = DRIVER_FULL_POWER_ON; + driverTable->bowWaterlnet1 = DRIVER_FULL_POWER_ON; + driverTable->bowWaterlnet2 = DRIVER_FULL_POWER_ON; + driverTable->bowWaterlnet3 = DRIVER_FULL_POWER_ON; + driverTable->bowWaterlnet4 = DRIVER_FULL_POWER_ON; + driverTable->bowWaterlnet5 = DRIVER_FULL_POWER_ON; + driverTable->bowWaterlnet6 = DRIVER_FULL_POWER_ON; + driverTable->bowWaterlnet7 = DRIVER_FULL_POWER_ON; + driverTable->bowWaterlnet8 = DRIVER_FULL_POWER_ON; driverTable->waterInject = DRIVER_FULL_POWER_ON; - driverTable->wgDJ = DRIVER_FULL_POWER_ON; + driverTable->mastLiftingServo = DRIVER_FULL_POWER_ON; driverTable->buoyancyAdjust1 = DRIVER_FULL_POWER_ON; driverTable->buoyancyAdjust2 = DRIVER_FULL_POWER_ON; driverTable->buoyancyAdjust3 = DRIVER_FULL_POWER_ON; + driverTable->buoyancyAdjust4 = DRIVER_FULL_POWER_ON; + driverTable->buoyancyAdjust5 = DRIVER_FULL_POWER_ON; driverTable->sternRudderServo1 = DRIVER_FULL_POWER_ON; driverTable->sternRudderServo2 = DRIVER_FULL_POWER_ON; driverTable->sternRudderServo3 = DRIVER_FULL_POWER_ON; @@ -268,44 +284,49 @@ void Driver::getCRUISE_MODEable(DriverTable* driverTable) driverTable->depth3 = DRIVER_FULL_POWER_ON; driverTable->overDeep1 = DRIVER_FULL_POWER_ON; driverTable->overDeep2 = DRIVER_FULL_POWER_ON; - driverTable->CTD1 = DRIVER_FULL_POWER_ON; - driverTable->CTD2 = DRIVER_FULL_POWER_ON; + driverTable->ctd1 = DRIVER_FULL_POWER_ON; + driverTable->ctd2 = DRIVER_FULL_POWER_ON; driverTable->soundVeloc = DRIVER_FULL_POWER_ON; driverTable->commMast = DRIVER_FULL_POWER_ON; driverTable->ins = DRIVER_FULL_POWER_ON; driverTable->ntp = DRIVER_FULL_POWER_ON; - + driverTable->inputWaterSensor1 = DRIVER_FULL_POWER_ON; + driverTable->inputWaterSensor2 = DRIVER_FULL_POWER_ON; + driverTable->inputWaterSensor3 = DRIVER_FULL_POWER_ON; + // 所有负载设备关机 driverTable->photoSensor = DRIVER_POWER_OFF; driverTable->electSensor = DRIVER_POWER_OFF; - driverTable->zhfk = DRIVER_POWER_OFF; + driverTable->launchControler = DRIVER_POWER_OFF; driverTable->sideSonar = DRIVER_POWER_OFF; driverTable->buoyage = DRIVER_POWER_OFF; // 打开必要的执行机构 // 关闭非必要的执行机构 - driverTable->bowOpen1 = DRIVER_POWER_OFF; - driverTable->bowOpen2 = DRIVER_POWER_OFF; - driverTable->bowOpen3 = DRIVER_POWER_OFF; - driverTable->bowOpen4 = DRIVER_POWER_OFF; - driverTable->bowOpen5 = DRIVER_POWER_OFF; - driverTable->bowOpen6 = DRIVER_POWER_OFF; - driverTable->bowRudderDeploy = DRIVER_FULL_POWER_ON; - driverTable->bowRudderServo1 = DRIVER_FULL_POWER_ON; - driverTable->bowRudderServo2 = DRIVER_FULL_POWER_ON; driverTable->bowCover1 = DRIVER_POWER_OFF; driverTable->bowCover2 = DRIVER_POWER_OFF; driverTable->bowCover3 = DRIVER_POWER_OFF; driverTable->bowCover4 = DRIVER_POWER_OFF; driverTable->bowCover5 = DRIVER_POWER_OFF; driverTable->bowCover6 = DRIVER_POWER_OFF; - driverTable->bowCover7 = DRIVER_POWER_OFF; - driverTable->bowCover8 = DRIVER_POWER_OFF; + driverTable->bowRudderDeploy = DRIVER_FULL_POWER_ON; + driverTable->bowRudderServo1 = DRIVER_FULL_POWER_ON; + driverTable->bowRudderServo2 = DRIVER_FULL_POWER_ON; + driverTable->bowWaterlnet1 = DRIVER_POWER_OFF; + driverTable->bowWaterlnet2 = DRIVER_POWER_OFF; + driverTable->bowWaterlnet3 = DRIVER_POWER_OFF; + driverTable->bowWaterlnet4 = DRIVER_POWER_OFF; + driverTable->bowWaterlnet5 = DRIVER_POWER_OFF; + driverTable->bowWaterlnet6 = DRIVER_POWER_OFF; + driverTable->bowWaterlnet7 = DRIVER_POWER_OFF; + driverTable->bowWaterlnet8 = DRIVER_POWER_OFF; driverTable->waterInject = DRIVER_POWER_OFF; - driverTable->wgDJ = DRIVER_FULL_POWER_ON; + driverTable->mastLiftingServo = DRIVER_FULL_POWER_ON; driverTable->buoyancyAdjust1 = DRIVER_FULL_POWER_ON; driverTable->buoyancyAdjust2 = DRIVER_FULL_POWER_ON; driverTable->buoyancyAdjust3 = DRIVER_FULL_POWER_ON; + driverTable->buoyancyAdjust4 = DRIVER_FULL_POWER_ON; + driverTable->buoyancyAdjust5 = DRIVER_FULL_POWER_ON; driverTable->sternRudderServo1 = DRIVER_FULL_POWER_ON; driverTable->sternRudderServo2 = DRIVER_FULL_POWER_ON; driverTable->sternRudderServo3 = DRIVER_FULL_POWER_ON; @@ -324,44 +345,49 @@ void Driver::getHIGH_SPEED_MODEable(DriverTable* driverTable) driverTable->depth3 = DRIVER_FULL_POWER_ON; driverTable->overDeep1 = DRIVER_FULL_POWER_ON; driverTable->overDeep2 = DRIVER_FULL_POWER_ON; - driverTable->CTD1 = DRIVER_FULL_POWER_ON; - driverTable->CTD2 = DRIVER_FULL_POWER_ON; + driverTable->ctd1 = DRIVER_FULL_POWER_ON; + driverTable->ctd2 = DRIVER_FULL_POWER_ON; driverTable->soundVeloc = DRIVER_FULL_POWER_ON; driverTable->commMast = DRIVER_FULL_POWER_ON; driverTable->ins = DRIVER_FULL_POWER_ON; driverTable->ntp = DRIVER_FULL_POWER_ON; - + driverTable->inputWaterSensor1 = DRIVER_FULL_POWER_ON; + driverTable->inputWaterSensor2 = DRIVER_FULL_POWER_ON; + driverTable->inputWaterSensor3 = DRIVER_FULL_POWER_ON; + // 所有负载设备关机 driverTable->photoSensor = DRIVER_POWER_OFF; driverTable->electSensor = DRIVER_POWER_OFF; - driverTable->zhfk = DRIVER_POWER_OFF; + driverTable->launchControler = DRIVER_POWER_OFF; driverTable->sideSonar = DRIVER_POWER_OFF; driverTable->buoyage = DRIVER_POWER_OFF; // 打开必要的执行机构,只打开操纵机构 // 关闭非必要的执行机构 - driverTable->bowOpen1 = DRIVER_POWER_OFF; - driverTable->bowOpen2 = DRIVER_POWER_OFF; - driverTable->bowOpen3 = DRIVER_POWER_OFF; - driverTable->bowOpen4 = DRIVER_POWER_OFF; - driverTable->bowOpen5 = DRIVER_POWER_OFF; - driverTable->bowOpen6 = DRIVER_POWER_OFF; - driverTable->bowRudderDeploy = DRIVER_FULL_POWER_ON; - driverTable->bowRudderServo1 = DRIVER_FULL_POWER_ON; - driverTable->bowRudderServo2 = DRIVER_FULL_POWER_ON; driverTable->bowCover1 = DRIVER_POWER_OFF; driverTable->bowCover2 = DRIVER_POWER_OFF; driverTable->bowCover3 = DRIVER_POWER_OFF; driverTable->bowCover4 = DRIVER_POWER_OFF; driverTable->bowCover5 = DRIVER_POWER_OFF; driverTable->bowCover6 = DRIVER_POWER_OFF; - driverTable->bowCover7 = DRIVER_POWER_OFF; - driverTable->bowCover8 = DRIVER_POWER_OFF; + driverTable->bowRudderDeploy = DRIVER_FULL_POWER_ON; + driverTable->bowRudderServo1 = DRIVER_FULL_POWER_ON; + driverTable->bowRudderServo2 = DRIVER_FULL_POWER_ON; + driverTable->bowWaterlnet1 = DRIVER_POWER_OFF; + driverTable->bowWaterlnet2 = DRIVER_POWER_OFF; + driverTable->bowWaterlnet3 = DRIVER_POWER_OFF; + driverTable->bowWaterlnet4 = DRIVER_POWER_OFF; + driverTable->bowWaterlnet5 = DRIVER_POWER_OFF; + driverTable->bowWaterlnet6 = DRIVER_POWER_OFF; + driverTable->bowWaterlnet7 = DRIVER_POWER_OFF; + driverTable->bowWaterlnet8 = DRIVER_POWER_OFF; driverTable->waterInject = DRIVER_POWER_OFF; - driverTable->wgDJ = DRIVER_POWER_OFF; + driverTable->mastLiftingServo = DRIVER_POWER_OFF; driverTable->buoyancyAdjust1 = DRIVER_POWER_OFF; driverTable->buoyancyAdjust2 = DRIVER_POWER_OFF; driverTable->buoyancyAdjust3 = DRIVER_POWER_OFF; + driverTable->buoyancyAdjust4 = DRIVER_POWER_OFF; + driverTable->buoyancyAdjust5 = DRIVER_POWER_OFF; driverTable->sternRudderServo1 = DRIVER_FULL_POWER_ON; driverTable->sternRudderServo2 = DRIVER_FULL_POWER_ON; driverTable->sternRudderServo3 = DRIVER_FULL_POWER_ON; @@ -380,44 +406,49 @@ void Driver::getASCEND_DESCENDable(DriverTable* driverTable) driverTable->depth3 = DRIVER_FULL_POWER_ON; driverTable->overDeep1 = DRIVER_FULL_POWER_ON; driverTable->overDeep2 = DRIVER_FULL_POWER_ON; - driverTable->CTD1 = DRIVER_FULL_POWER_ON; - driverTable->CTD2 = DRIVER_FULL_POWER_ON; + driverTable->ctd1 = DRIVER_FULL_POWER_ON; + driverTable->ctd2 = DRIVER_FULL_POWER_ON; driverTable->soundVeloc = DRIVER_FULL_POWER_ON; driverTable->commMast = DRIVER_FULL_POWER_ON; driverTable->ins = DRIVER_FULL_POWER_ON; driverTable->ntp = DRIVER_FULL_POWER_ON; - + driverTable->inputWaterSensor1 = DRIVER_FULL_POWER_ON; + driverTable->inputWaterSensor2 = DRIVER_FULL_POWER_ON; + driverTable->inputWaterSensor3 = DRIVER_FULL_POWER_ON; + // 所有负载设备关机 driverTable->photoSensor = DRIVER_POWER_OFF; driverTable->electSensor = DRIVER_POWER_OFF; - driverTable->zhfk = DRIVER_POWER_OFF; + driverTable->launchControler = DRIVER_POWER_OFF; driverTable->sideSonar = DRIVER_POWER_OFF; driverTable->buoyage = DRIVER_POWER_OFF; // 打开必要的执行机构 // 关闭非必要的执行机构 - driverTable->bowOpen1 = DRIVER_POWER_OFF; - driverTable->bowOpen2 = DRIVER_POWER_OFF; - driverTable->bowOpen3 = DRIVER_POWER_OFF; - driverTable->bowOpen4 = DRIVER_POWER_OFF; - driverTable->bowOpen5 = DRIVER_POWER_OFF; - driverTable->bowOpen6 = DRIVER_POWER_OFF; - driverTable->bowRudderDeploy = DRIVER_FULL_POWER_ON; - driverTable->bowRudderServo1 = DRIVER_FULL_POWER_ON; - driverTable->bowRudderServo2 = DRIVER_FULL_POWER_ON; driverTable->bowCover1 = DRIVER_POWER_OFF; driverTable->bowCover2 = DRIVER_POWER_OFF; driverTable->bowCover3 = DRIVER_POWER_OFF; driverTable->bowCover4 = DRIVER_POWER_OFF; driverTable->bowCover5 = DRIVER_POWER_OFF; driverTable->bowCover6 = DRIVER_POWER_OFF; - driverTable->bowCover7 = DRIVER_POWER_OFF; - driverTable->bowCover8 = DRIVER_POWER_OFF; + driverTable->bowRudderDeploy = DRIVER_FULL_POWER_ON; + driverTable->bowRudderServo1 = DRIVER_FULL_POWER_ON; + driverTable->bowRudderServo2 = DRIVER_FULL_POWER_ON; + driverTable->bowWaterlnet1 = DRIVER_POWER_OFF; + driverTable->bowWaterlnet2 = DRIVER_POWER_OFF; + driverTable->bowWaterlnet3 = DRIVER_POWER_OFF; + driverTable->bowWaterlnet4 = DRIVER_POWER_OFF; + driverTable->bowWaterlnet5 = DRIVER_POWER_OFF; + driverTable->bowWaterlnet6 = DRIVER_POWER_OFF; + driverTable->bowWaterlnet7 = DRIVER_POWER_OFF; + driverTable->bowWaterlnet8 = DRIVER_POWER_OFF; driverTable->waterInject = DRIVER_POWER_OFF; - driverTable->wgDJ = DRIVER_FULL_POWER_ON; + driverTable->mastLiftingServo = DRIVER_FULL_POWER_ON; driverTable->buoyancyAdjust1 = DRIVER_FULL_POWER_ON; driverTable->buoyancyAdjust2 = DRIVER_FULL_POWER_ON; driverTable->buoyancyAdjust3 = DRIVER_FULL_POWER_ON; + driverTable->buoyancyAdjust4 = DRIVER_FULL_POWER_ON; + driverTable->buoyancyAdjust5 = DRIVER_FULL_POWER_ON; driverTable->sternRudderServo1 = DRIVER_FULL_POWER_ON; driverTable->sternRudderServo2 = DRIVER_FULL_POWER_ON; driverTable->sternRudderServo3 = DRIVER_FULL_POWER_ON; @@ -436,44 +467,49 @@ void Driver::getBUOYANCY_ADJUSTable(DriverTable* driverTable) driverTable->depth3 = DRIVER_FULL_POWER_ON; driverTable->overDeep1 = DRIVER_FULL_POWER_ON; driverTable->overDeep2 = DRIVER_FULL_POWER_ON; - driverTable->CTD1 = DRIVER_FULL_POWER_ON; - driverTable->CTD2 = DRIVER_FULL_POWER_ON; + driverTable->ctd1 = DRIVER_FULL_POWER_ON; + driverTable->ctd2 = DRIVER_FULL_POWER_ON; driverTable->soundVeloc = DRIVER_FULL_POWER_ON; driverTable->commMast = DRIVER_FULL_POWER_ON; driverTable->ins = DRIVER_FULL_POWER_ON; driverTable->ntp = DRIVER_FULL_POWER_ON; - + driverTable->inputWaterSensor1 = DRIVER_FULL_POWER_ON; + driverTable->inputWaterSensor2 = DRIVER_FULL_POWER_ON; + driverTable->inputWaterSensor3 = DRIVER_FULL_POWER_ON; + // 所有负载设备关机 driverTable->photoSensor = DRIVER_POWER_OFF; driverTable->electSensor = DRIVER_POWER_OFF; - driverTable->zhfk = DRIVER_POWER_OFF; + driverTable->launchControler = DRIVER_POWER_OFF; driverTable->sideSonar = DRIVER_POWER_OFF; driverTable->buoyage = DRIVER_POWER_OFF; // 打开必要的执行机构 // 关闭非必要的执行机构 - driverTable->bowOpen1 = DRIVER_POWER_OFF; - driverTable->bowOpen2 = DRIVER_POWER_OFF; - driverTable->bowOpen3 = DRIVER_POWER_OFF; - driverTable->bowOpen4 = DRIVER_POWER_OFF; - driverTable->bowOpen5 = DRIVER_POWER_OFF; - driverTable->bowOpen6 = DRIVER_POWER_OFF; - driverTable->bowRudderDeploy = DRIVER_FULL_POWER_ON; - driverTable->bowRudderServo1 = DRIVER_FULL_POWER_ON; - driverTable->bowRudderServo2 = DRIVER_FULL_POWER_ON; driverTable->bowCover1 = DRIVER_POWER_OFF; driverTable->bowCover2 = DRIVER_POWER_OFF; driverTable->bowCover3 = DRIVER_POWER_OFF; driverTable->bowCover4 = DRIVER_POWER_OFF; driverTable->bowCover5 = DRIVER_POWER_OFF; driverTable->bowCover6 = DRIVER_POWER_OFF; - driverTable->bowCover7 = DRIVER_POWER_OFF; - driverTable->bowCover8 = DRIVER_POWER_OFF; + driverTable->bowRudderDeploy = DRIVER_FULL_POWER_ON; + driverTable->bowRudderServo1 = DRIVER_FULL_POWER_ON; + driverTable->bowRudderServo2 = DRIVER_FULL_POWER_ON; + driverTable->bowWaterlnet1 = DRIVER_POWER_OFF; + driverTable->bowWaterlnet2 = DRIVER_POWER_OFF; + driverTable->bowWaterlnet3 = DRIVER_POWER_OFF; + driverTable->bowWaterlnet4 = DRIVER_POWER_OFF; + driverTable->bowWaterlnet5 = DRIVER_POWER_OFF; + driverTable->bowWaterlnet6 = DRIVER_POWER_OFF; + driverTable->bowWaterlnet7 = DRIVER_POWER_OFF; + driverTable->bowWaterlnet8 = DRIVER_POWER_OFF; driverTable->waterInject = DRIVER_POWER_OFF; - driverTable->wgDJ = DRIVER_FULL_POWER_ON; + driverTable->mastLiftingServo = DRIVER_FULL_POWER_ON; driverTable->buoyancyAdjust1 = DRIVER_FULL_POWER_ON; driverTable->buoyancyAdjust2 = DRIVER_FULL_POWER_ON; driverTable->buoyancyAdjust3 = DRIVER_FULL_POWER_ON; + driverTable->buoyancyAdjust4 = DRIVER_FULL_POWER_ON; + driverTable->buoyancyAdjust5 = DRIVER_FULL_POWER_ON; driverTable->sternRudderServo1 = DRIVER_FULL_POWER_ON; driverTable->sternRudderServo2 = DRIVER_FULL_POWER_ON; driverTable->sternRudderServo3 = DRIVER_FULL_POWER_ON; @@ -492,44 +528,49 @@ void Driver::getUNDERWATER_RECONable(DriverTable* driverTable) driverTable->depth3 = DRIVER_FULL_POWER_ON; driverTable->overDeep1 = DRIVER_FULL_POWER_ON; driverTable->overDeep2 = DRIVER_FULL_POWER_ON; - driverTable->CTD1 = DRIVER_FULL_POWER_ON; - driverTable->CTD2 = DRIVER_FULL_POWER_ON; + driverTable->ctd1 = DRIVER_FULL_POWER_ON; + driverTable->ctd2 = DRIVER_FULL_POWER_ON; driverTable->soundVeloc = DRIVER_FULL_POWER_ON; driverTable->commMast = DRIVER_FULL_POWER_ON; driverTable->ins = DRIVER_FULL_POWER_ON; driverTable->ntp = DRIVER_FULL_POWER_ON; - + driverTable->inputWaterSensor1 = DRIVER_FULL_POWER_ON; + driverTable->inputWaterSensor2 = DRIVER_FULL_POWER_ON; + driverTable->inputWaterSensor3 = DRIVER_FULL_POWER_ON; + // 所有负载设备关机 driverTable->photoSensor = DRIVER_POWER_OFF; driverTable->electSensor = DRIVER_POWER_OFF; - driverTable->zhfk = DRIVER_POWER_OFF; + driverTable->launchControler = DRIVER_POWER_OFF; driverTable->sideSonar = DRIVER_STANDBY; driverTable->buoyage = DRIVER_POWER_OFF; // 打开必要的执行机构 // 关闭非必要的执行机构 - driverTable->bowOpen1 = DRIVER_POWER_OFF; - driverTable->bowOpen2 = DRIVER_POWER_OFF; - driverTable->bowOpen3 = DRIVER_POWER_OFF; - driverTable->bowOpen4 = DRIVER_POWER_OFF; - driverTable->bowOpen5 = DRIVER_POWER_OFF; - driverTable->bowOpen6 = DRIVER_POWER_OFF; - driverTable->bowRudderDeploy = DRIVER_FULL_POWER_ON; - driverTable->bowRudderServo1 = DRIVER_FULL_POWER_ON; - driverTable->bowRudderServo2 = DRIVER_FULL_POWER_ON; driverTable->bowCover1 = DRIVER_POWER_OFF; driverTable->bowCover2 = DRIVER_POWER_OFF; driverTable->bowCover3 = DRIVER_POWER_OFF; driverTable->bowCover4 = DRIVER_POWER_OFF; driverTable->bowCover5 = DRIVER_POWER_OFF; driverTable->bowCover6 = DRIVER_POWER_OFF; - driverTable->bowCover7 = DRIVER_POWER_OFF; - driverTable->bowCover8 = DRIVER_POWER_OFF; + driverTable->bowRudderDeploy = DRIVER_FULL_POWER_ON; + driverTable->bowRudderServo1 = DRIVER_FULL_POWER_ON; + driverTable->bowRudderServo2 = DRIVER_FULL_POWER_ON; + driverTable->bowWaterlnet1 = DRIVER_POWER_OFF; + driverTable->bowWaterlnet2 = DRIVER_POWER_OFF; + driverTable->bowWaterlnet3 = DRIVER_POWER_OFF; + driverTable->bowWaterlnet4 = DRIVER_POWER_OFF; + driverTable->bowWaterlnet5 = DRIVER_POWER_OFF; + driverTable->bowWaterlnet6 = DRIVER_POWER_OFF; + driverTable->bowWaterlnet7 = DRIVER_POWER_OFF; + driverTable->bowWaterlnet8 = DRIVER_POWER_OFF; driverTable->waterInject = DRIVER_POWER_OFF; - driverTable->wgDJ = DRIVER_POWER_OFF; + driverTable->mastLiftingServo = DRIVER_POWER_OFF; driverTable->buoyancyAdjust1 = DRIVER_FULL_POWER_ON; driverTable->buoyancyAdjust2 = DRIVER_FULL_POWER_ON; driverTable->buoyancyAdjust3 = DRIVER_FULL_POWER_ON; + driverTable->buoyancyAdjust4 = DRIVER_FULL_POWER_ON; + driverTable->buoyancyAdjust5 = DRIVER_FULL_POWER_ON; driverTable->sternRudderServo1 = DRIVER_FULL_POWER_ON; driverTable->sternRudderServo2 = DRIVER_FULL_POWER_ON; driverTable->sternRudderServo3 = DRIVER_FULL_POWER_ON; @@ -548,44 +589,49 @@ void Driver::getSURFACE_RECONable(DriverTable* driverTable) driverTable->depth3 = DRIVER_FULL_POWER_ON; driverTable->overDeep1 = DRIVER_FULL_POWER_ON; driverTable->overDeep2 = DRIVER_FULL_POWER_ON; - driverTable->CTD1 = DRIVER_FULL_POWER_ON; - driverTable->CTD2 = DRIVER_FULL_POWER_ON; + driverTable->ctd1 = DRIVER_FULL_POWER_ON; + driverTable->ctd2 = DRIVER_FULL_POWER_ON; driverTable->soundVeloc = DRIVER_FULL_POWER_ON; driverTable->commMast = DRIVER_FULL_POWER_ON; driverTable->ins = DRIVER_FULL_POWER_ON; driverTable->ntp = DRIVER_FULL_POWER_ON; - + driverTable->inputWaterSensor1 = DRIVER_FULL_POWER_ON; + driverTable->inputWaterSensor2 = DRIVER_FULL_POWER_ON; + driverTable->inputWaterSensor3 = DRIVER_FULL_POWER_ON; + // 所有负载设备关机 driverTable->photoSensor = DRIVER_STANDBY; driverTable->electSensor = DRIVER_STANDBY; - driverTable->zhfk = DRIVER_POWER_OFF; + driverTable->launchControler = DRIVER_POWER_OFF; driverTable->sideSonar = DRIVER_POWER_OFF; driverTable->buoyage = DRIVER_POWER_OFF; // 打开必要的执行机构 // 关闭非必要的执行机构 - driverTable->bowOpen1 = DRIVER_POWER_OFF; - driverTable->bowOpen2 = DRIVER_POWER_OFF; - driverTable->bowOpen3 = DRIVER_POWER_OFF; - driverTable->bowOpen4 = DRIVER_POWER_OFF; - driverTable->bowOpen5 = DRIVER_POWER_OFF; - driverTable->bowOpen6 = DRIVER_POWER_OFF; - driverTable->bowRudderDeploy = DRIVER_FULL_POWER_ON; - driverTable->bowRudderServo1 = DRIVER_FULL_POWER_ON; - driverTable->bowRudderServo2 = DRIVER_FULL_POWER_ON; driverTable->bowCover1 = DRIVER_POWER_OFF; driverTable->bowCover2 = DRIVER_POWER_OFF; driverTable->bowCover3 = DRIVER_POWER_OFF; driverTable->bowCover4 = DRIVER_POWER_OFF; driverTable->bowCover5 = DRIVER_POWER_OFF; driverTable->bowCover6 = DRIVER_POWER_OFF; - driverTable->bowCover7 = DRIVER_POWER_OFF; - driverTable->bowCover8 = DRIVER_POWER_OFF; + driverTable->bowRudderDeploy = DRIVER_FULL_POWER_ON; + driverTable->bowRudderServo1 = DRIVER_FULL_POWER_ON; + driverTable->bowRudderServo2 = DRIVER_FULL_POWER_ON; + driverTable->bowWaterlnet1 = DRIVER_POWER_OFF; + driverTable->bowWaterlnet2 = DRIVER_POWER_OFF; + driverTable->bowWaterlnet3 = DRIVER_POWER_OFF; + driverTable->bowWaterlnet4 = DRIVER_POWER_OFF; + driverTable->bowWaterlnet5 = DRIVER_POWER_OFF; + driverTable->bowWaterlnet6 = DRIVER_POWER_OFF; + driverTable->bowWaterlnet7 = DRIVER_POWER_OFF; + driverTable->bowWaterlnet8 = DRIVER_POWER_OFF; driverTable->waterInject = DRIVER_POWER_OFF; - driverTable->wgDJ = DRIVER_FULL_POWER_ON; + driverTable->mastLiftingServo = DRIVER_FULL_POWER_ON; driverTable->buoyancyAdjust1 = DRIVER_FULL_POWER_ON; driverTable->buoyancyAdjust2 = DRIVER_FULL_POWER_ON; driverTable->buoyancyAdjust3 = DRIVER_FULL_POWER_ON; + driverTable->buoyancyAdjust4 = DRIVER_FULL_POWER_ON; + driverTable->buoyancyAdjust5 = DRIVER_FULL_POWER_ON; driverTable->sternRudderServo1 = DRIVER_FULL_POWER_ON; driverTable->sternRudderServo2 = DRIVER_FULL_POWER_ON; driverTable->sternRudderServo3 = DRIVER_FULL_POWER_ON; @@ -603,44 +649,49 @@ void Driver::getDJ_MODEable(DriverTable* driverTable) driverTable->depth3 = DRIVER_FULL_POWER_ON; driverTable->overDeep1 = DRIVER_FULL_POWER_ON; driverTable->overDeep2 = DRIVER_FULL_POWER_ON; - driverTable->CTD1 = DRIVER_FULL_POWER_ON; - driverTable->CTD2 = DRIVER_FULL_POWER_ON; + driverTable->ctd1 = DRIVER_FULL_POWER_ON; + driverTable->ctd2 = DRIVER_FULL_POWER_ON; driverTable->soundVeloc = DRIVER_FULL_POWER_ON; driverTable->commMast = DRIVER_FULL_POWER_ON; driverTable->ins = DRIVER_FULL_POWER_ON; driverTable->ntp = DRIVER_FULL_POWER_ON; + driverTable->inputWaterSensor1 = DRIVER_FULL_POWER_ON; + driverTable->inputWaterSensor2 = DRIVER_FULL_POWER_ON; + driverTable->inputWaterSensor3 = DRIVER_FULL_POWER_ON; // 所有负载设备关机 driverTable->photoSensor = DRIVER_POWER_OFF; driverTable->electSensor = DRIVER_POWER_OFF; - driverTable->zhfk = DRIVER_FULL_POWER_ON; + driverTable->launchControler = DRIVER_FULL_POWER_ON; driverTable->sideSonar = DRIVER_POWER_OFF; driverTable->buoyage = DRIVER_STANDBY; // 打开必要的执行机构 // 关闭非必要的执行机构 - driverTable->bowOpen1 = DRIVER_FULL_POWER_ON; - driverTable->bowOpen2 = DRIVER_FULL_POWER_ON; - driverTable->bowOpen3 = DRIVER_FULL_POWER_ON; - driverTable->bowOpen4 = DRIVER_FULL_POWER_ON; - driverTable->bowOpen5 = DRIVER_FULL_POWER_ON; - driverTable->bowOpen6 = DRIVER_FULL_POWER_ON; - driverTable->bowRudderDeploy = DRIVER_FULL_POWER_ON; - driverTable->bowRudderServo1 = DRIVER_FULL_POWER_ON; - driverTable->bowRudderServo2 = DRIVER_FULL_POWER_ON; driverTable->bowCover1 = DRIVER_FULL_POWER_ON; driverTable->bowCover2 = DRIVER_FULL_POWER_ON; driverTable->bowCover3 = DRIVER_FULL_POWER_ON; driverTable->bowCover4 = DRIVER_FULL_POWER_ON; driverTable->bowCover5 = DRIVER_FULL_POWER_ON; driverTable->bowCover6 = DRIVER_FULL_POWER_ON; - driverTable->bowCover7 = DRIVER_FULL_POWER_ON; - driverTable->bowCover8 = DRIVER_FULL_POWER_ON; + driverTable->bowRudderDeploy = DRIVER_FULL_POWER_ON; + driverTable->bowRudderServo1 = DRIVER_FULL_POWER_ON; + driverTable->bowRudderServo2 = DRIVER_FULL_POWER_ON; + driverTable->bowWaterlnet1 = DRIVER_FULL_POWER_ON; + driverTable->bowWaterlnet2 = DRIVER_FULL_POWER_ON; + driverTable->bowWaterlnet3 = DRIVER_FULL_POWER_ON; + driverTable->bowWaterlnet4 = DRIVER_FULL_POWER_ON; + driverTable->bowWaterlnet5 = DRIVER_FULL_POWER_ON; + driverTable->bowWaterlnet6 = DRIVER_FULL_POWER_ON; + driverTable->bowWaterlnet7 = DRIVER_FULL_POWER_ON; + driverTable->bowWaterlnet8 = DRIVER_FULL_POWER_ON; driverTable->waterInject = DRIVER_POWER_OFF; - driverTable->wgDJ = DRIVER_FULL_POWER_ON; + driverTable->mastLiftingServo = DRIVER_FULL_POWER_ON; driverTable->buoyancyAdjust1 = DRIVER_FULL_POWER_ON; driverTable->buoyancyAdjust2 = DRIVER_FULL_POWER_ON; driverTable->buoyancyAdjust3 = DRIVER_FULL_POWER_ON; + driverTable->buoyancyAdjust4 = DRIVER_FULL_POWER_ON; + driverTable->buoyancyAdjust5 = DRIVER_FULL_POWER_ON; driverTable->sternRudderServo1 = DRIVER_FULL_POWER_ON; driverTable->sternRudderServo2 = DRIVER_FULL_POWER_ON; driverTable->sternRudderServo3 = DRIVER_FULL_POWER_ON; @@ -660,12 +711,16 @@ std::string Driver::saveDriverTableToJson(const DriverTable* driverTable) root["depth3"] = driverTable->depth3; root["overDeep1"] = driverTable->overDeep1; root["overDeep2"] = driverTable->overDeep2; - root["CTD1"] = driverTable->CTD1; - root["CTD2"] = driverTable->CTD2; + root["ctd1"] = driverTable->ctd1; + root["ctd2"] = driverTable->ctd2; root["soundVeloc"] = driverTable->soundVeloc; root["commMast"] = driverTable->commMast; root["ins"] = driverTable->ins; root["ntp"] = driverTable->ntp; + root["inputWaterSensor1"] = driverTable->inputWaterSensor1; + root["inputWaterSensor2"] = driverTable->inputWaterSensor2; + root["inputWaterSensor3"] = driverTable->inputWaterSensor3; + root["singleBeamSonar1"] = driverTable->singleBeamSonar1; root["singleBeamSonar2"] = driverTable->singleBeamSonar2; root["singleBeamSonar3"] = driverTable->singleBeamSonar3; @@ -676,30 +731,32 @@ std::string Driver::saveDriverTableToJson(const DriverTable* driverTable) root["singleBeamSonar8"] = driverTable->singleBeamSonar8; root["forwardSonar"] = driverTable->forwardSonar; root["DVL"] = driverTable->DVL; - root["zdp"] = driverTable->zdp; - root["usbl"] = driverTable->usbl; - root["bowOpen1"] = driverTable->bowOpen1; - root["bowOpen2"] = driverTable->bowOpen2; - root["bowOpen3"] = driverTable->bowOpen3; - root["bowOpen4"] = driverTable->bowOpen4; - root["bowOpen5"] = driverTable->bowOpen5; - root["bowOpen6"] = driverTable->bowOpen6; - root["bowRudderDeploy"] = driverTable->bowRudderDeploy; - root["bowRudderServo1"] = driverTable->bowRudderServo1; - root["bowRudderServo2"] = driverTable->bowRudderServo2; + root["lowFreqSonar"] = driverTable->lowFreqSonar; + root["USBL"] = driverTable->USBL; root["bowCover1"] = driverTable->bowCover1; root["bowCover2"] = driverTable->bowCover2; root["bowCover3"] = driverTable->bowCover3; root["bowCover4"] = driverTable->bowCover4; root["bowCover5"] = driverTable->bowCover5; root["bowCover6"] = driverTable->bowCover6; - root["bowCover7"] = driverTable->bowCover7; - root["bowCover8"] = driverTable->bowCover8; + root["bowRudderDeploy"] = driverTable->bowRudderDeploy; + root["bowRudderServo1"] = driverTable->bowRudderServo1; + root["bowRudderServo2"] = driverTable->bowRudderServo2; + root["bowWaterlnet1"] = driverTable->bowWaterlnet1; + root["bowWaterlnet2"] = driverTable->bowWaterlnet2; + root["bowWaterlnet3"] = driverTable->bowWaterlnet3; + root["bowWaterlnet4"] = driverTable->bowWaterlnet4; + root["bowWaterlnet5"] = driverTable->bowWaterlnet5; + root["bowWaterlnet6"] = driverTable->bowWaterlnet6; + root["bowWaterlnet7"] = driverTable->bowWaterlnet7; + root["bowWaterlnet8"] = driverTable->bowWaterlnet8; root["waterInject"] = driverTable->waterInject; - root["wgDJ"] = driverTable->wgDJ; + root["mastLiftingServo"] = driverTable->mastLiftingServo; root["buoyancyAdjust1"] = driverTable->buoyancyAdjust1; root["buoyancyAdjust2"] = driverTable->buoyancyAdjust2; root["buoyancyAdjust3"] = driverTable->buoyancyAdjust3; + root["buoyancyAdjust4"] = driverTable->buoyancyAdjust4; + root["buoyancyAdjust5"] = driverTable->buoyancyAdjust5; root["sternRudderServo1"] = driverTable->sternRudderServo1; root["sternRudderServo2"] = driverTable->sternRudderServo2; root["sternRudderServo3"] = driverTable->sternRudderServo3; @@ -709,13 +766,249 @@ std::string Driver::saveDriverTableToJson(const DriverTable* driverTable) root["sternThrow"] = driverTable->sternThrow; root["photoSensor"] = driverTable->photoSensor; root["electSensor"] = driverTable->electSensor; - root["zhfk"] = driverTable->zhfk; + root["launchControler"] = driverTable->launchControler; root["sideSonar"] = driverTable->sideSonar; root["buoyage"] = driverTable->buoyage; + return root.toStyledString(); } std::string Driver::getDriverTableJson() { return saveDriverTableToJson(currentDriverTable); +} + +std::string Driver::getSubDisCmdJson(const DriverTable* driverTable) +{ + return saveDriverTableToJson(currentDriverTable); +} + +std::string Driver::getDriveStateJson(const DriverTable* driverTable) +{ + return saveDriverTableToJson(currentDriverTable); +} + + +int Driver::SafeReadUInt(const Json::Value& root, const std::string& key, unsigned char& value) { + if (!root.isMember(key)) { + std::cerr << "错误: 缺少字段 " << key << std::endl; + return -1; // 返回-1表示缺少字段 + } + + if (!root[key].isUInt()) { + std::cerr << "错误: 字段 " << key << " 数据类型不正确,应为无符号整数" << std::endl; + return -2; // 返回-2表示数据类型错误 + } + + value = root[key].asUInt(); + return 0; // 成功读取 +} + +int Driver::loadDriverTableFromJson(const std::string &strJson, DriverTable& table) +{ + Json::CharReaderBuilder builder; + Json::Value root; + std::string errs; + + // 解析JSON字符串 + std::istringstream s(strJson); + if (!Json::parseFromStream(builder, s, &root, &errs)) + { + std::cerr << "JSON解析失败: " << errs << std::endl; + return -3; // 解析失败 + } + + // 读取 JSON 数据并填充结构体,逐个字段检查 + int error_code = 0; + + error_code = SafeReadUInt(root, "depth1", table.depth1); + if (error_code != 0) return error_code; + + error_code = SafeReadUInt(root, "depth2", table.depth2); + if (error_code != 0) return error_code; + + error_code = SafeReadUInt(root, "depth3", table.depth3); + if (error_code != 0) return error_code; + + error_code = SafeReadUInt(root, "overDeep1", table.overDeep1); + if (error_code != 0) return error_code; + + error_code = SafeReadUInt(root, "overDeep2", table.overDeep2); + if (error_code != 0) return error_code; + + error_code = SafeReadUInt(root, "ctd1", table.ctd1); + if (error_code != 0) return error_code; + + error_code = SafeReadUInt(root, "ctd2", table.ctd2); + if (error_code != 0) return error_code; + + error_code = SafeReadUInt(root, "soundVeloc", table.soundVeloc); + if (error_code != 0) return error_code; + + error_code = SafeReadUInt(root, "commMast", table.commMast); + if (error_code != 0) return error_code; + + error_code = SafeReadUInt(root, "ins", table.ins); + if (error_code != 0) return error_code; + + error_code = SafeReadUInt(root, "ntp", table.ntp); + if (error_code != 0) return error_code; + + error_code = SafeReadUInt(root, "inputWaterSensor1", table.inputWaterSensor1); + if (error_code != 0) return error_code; + + error_code = SafeReadUInt(root, "inputWaterSensor2", table.inputWaterSensor2); + if (error_code != 0) return error_code; + + error_code = SafeReadUInt(root, "inputWaterSensor3", table.inputWaterSensor3); + if (error_code != 0) return error_code; + + // 水声设备 + error_code = SafeReadUInt(root, "singleBeamSonar1", table.singleBeamSonar1); + if (error_code != 0) return error_code; + + error_code = SafeReadUInt(root, "singleBeamSonar2", table.singleBeamSonar2); + if (error_code != 0) return error_code; + + error_code = SafeReadUInt(root, "singleBeamSonar3", table.singleBeamSonar3); + if (error_code != 0) return error_code; + + error_code = SafeReadUInt(root, "singleBeamSonar4", table.singleBeamSonar4); + if (error_code != 0) return error_code; + + error_code = SafeReadUInt(root, "singleBeamSonar5", table.singleBeamSonar5); + if (error_code != 0) return error_code; + + error_code = SafeReadUInt(root, "singleBeamSonar6", table.singleBeamSonar6); + if (error_code != 0) return error_code; + + error_code = SafeReadUInt(root, "singleBeamSonar7", table.singleBeamSonar7); + if (error_code != 0) return error_code; + + error_code = SafeReadUInt(root, "singleBeamSonar8", table.singleBeamSonar8); + if (error_code != 0) return error_code; + + error_code = SafeReadUInt(root, "forwardSonar", table.forwardSonar); + if (error_code != 0) return error_code; + + error_code = SafeReadUInt(root, "DVL", table.DVL); + if (error_code != 0) return error_code; + + error_code = SafeReadUInt(root, "lowFreqSonar", table.lowFreqSonar); + if (error_code != 0) return error_code; + + error_code = SafeReadUInt(root, "USBL", table.USBL); + if (error_code != 0) return error_code; + + // 执行机构 + error_code = SafeReadUInt(root, "bowWaterlnet1", table.bowWaterlnet1); + if (error_code != 0) return error_code; + + error_code = SafeReadUInt(root, "bowWaterlnet2", table.bowWaterlnet2); + if (error_code != 0) return error_code; + + error_code = SafeReadUInt(root, "bowWaterlnet3", table.bowWaterlnet3); + if (error_code != 0) return error_code; + + error_code = SafeReadUInt(root, "bowWaterlnet4", table.bowWaterlnet4); + if (error_code != 0) return error_code; + + error_code = SafeReadUInt(root, "bowWaterlnet5", table.bowWaterlnet5); + if (error_code != 0) return error_code; + + error_code = SafeReadUInt(root, "bowWaterlnet6", table.bowWaterlnet6); + if (error_code != 0) return error_code; + + error_code = SafeReadUInt(root, "bowWaterlnet7", table.bowWaterlnet7); + if (error_code != 0) return error_code; + + error_code = SafeReadUInt(root, "bowWaterlnet8", table.bowWaterlnet8); + if (error_code != 0) return error_code; + + error_code = SafeReadUInt(root, "bowRudderDeploy", table.bowRudderDeploy); + if (error_code != 0) return error_code; + + error_code = SafeReadUInt(root, "bowRudderServo1", table.bowRudderServo1); + if (error_code != 0) return error_code; + + error_code = SafeReadUInt(root, "bowRudderServo2", table.bowRudderServo2); + if (error_code != 0) return error_code; + + error_code = SafeReadUInt(root, "bowCover1", table.bowCover1); + if (error_code != 0) return error_code; + + error_code = SafeReadUInt(root, "bowCover2", table.bowCover2); + if (error_code != 0) return error_code; + + error_code = SafeReadUInt(root, "bowCover3", table.bowCover3); + if (error_code != 0) return error_code; + + error_code = SafeReadUInt(root, "bowCover4", table.bowCover4); + if (error_code != 0) return error_code; + + error_code = SafeReadUInt(root, "bowCover5", table.bowCover5); + if (error_code != 0) return error_code; + + error_code = SafeReadUInt(root, "bowCover6", table.bowCover6); + if (error_code != 0) return error_code; + + error_code = SafeReadUInt(root, "waterInject", table.waterInject); + if (error_code != 0) return error_code; + + error_code = SafeReadUInt(root, "mastLiftingServo", table.mastLiftingServo); + if (error_code != 0) return error_code; + + error_code = SafeReadUInt(root, "buoyancyAdjust1", table.buoyancyAdjust1); + if (error_code != 0) return error_code; + + error_code = SafeReadUInt(root, "buoyancyAdjust2", table.buoyancyAdjust2); + if (error_code != 0) return error_code; + + error_code = SafeReadUInt(root, "buoyancyAdjust3", table.buoyancyAdjust3); + if (error_code != 0) return error_code; + + error_code = SafeReadUInt(root, "buoyancyAdjust4", table.buoyancyAdjust4); + if (error_code != 0) return error_code; + + error_code = SafeReadUInt(root, "buoyancyAdjust5", table.buoyancyAdjust5); + if (error_code != 0) return error_code; + + error_code = SafeReadUInt(root, "sternRudderServo1", table.sternRudderServo1); + if (error_code != 0) return error_code; + + error_code = SafeReadUInt(root, "sternRudderServo2", table.sternRudderServo2); + if (error_code != 0) return error_code; + + error_code = SafeReadUInt(root, "sternRudderServo3", table.sternRudderServo3); + if (error_code != 0) return error_code; + + error_code = SafeReadUInt(root, "sternRudderServo4", table.sternRudderServo4); + if (error_code != 0) return error_code; + + error_code = SafeReadUInt(root, "thruster", table.thruster); + if (error_code != 0) return error_code; + + error_code = SafeReadUInt(root, "bowThrow", table.bowThrow); + if (error_code != 0) return error_code; + + error_code = SafeReadUInt(root, "sternThrow", table.sternThrow); + if (error_code != 0) return error_code; + + // 负载 + error_code = SafeReadUInt(root, "photoSensor", table.photoSensor); + if (error_code != 0) return error_code; + + error_code = SafeReadUInt(root, "electSensor", table.electSensor); + if (error_code != 0) return error_code; + + error_code = SafeReadUInt(root, "launchControler", table.launchControler); + if (error_code != 0) return error_code; + + error_code = SafeReadUInt(root, "sideSonar", table.sideSonar); + if (error_code != 0) return error_code; + + error_code = SafeReadUInt(root, "buoyage", table.buoyage); + if (error_code != 0) return error_code; + + return 0; // 返回0表示所有数据成功读取 } \ No newline at end of file diff --git a/src/pPowerManger/driver.h b/src/pPowerManger/driver.h index d33200c..e17d2ca 100644 --- a/src/pPowerManger/driver.h +++ b/src/pPowerManger/driver.h @@ -2,6 +2,8 @@ #define DRIVER_H #include "json/json.h" #include "iostream" +#include + #define DRIVER_POWER_OFF 0x00 #define DRIVER_FULL_POWER_ON 0x01 @@ -16,12 +18,15 @@ struct DriverTable unsigned char depth3; unsigned char overDeep1; unsigned char overDeep2; - unsigned char CTD1; - unsigned char CTD2; + unsigned char ctd1; + unsigned char ctd2; unsigned char soundVeloc; unsigned char commMast; unsigned char ins; unsigned char ntp; + unsigned char inputWaterSensor1; + unsigned char inputWaterSensor2; + unsigned char inputWaterSensor3; //水声设备 unsigned char singleBeamSonar1; unsigned char singleBeamSonar2; @@ -33,15 +38,17 @@ struct DriverTable unsigned char singleBeamSonar8; unsigned char forwardSonar; unsigned char DVL; - unsigned char zdp; - unsigned char usbl; + unsigned char lowFreqSonar; + unsigned char USBL; //执行机构 - unsigned char bowOpen1; - unsigned char bowOpen2; - unsigned char bowOpen3; - unsigned char bowOpen4; - unsigned char bowOpen5; - unsigned char bowOpen6; + unsigned char bowWaterlnet1; + unsigned char bowWaterlnet2; + unsigned char bowWaterlnet3; + unsigned char bowWaterlnet4; + unsigned char bowWaterlnet5; + unsigned char bowWaterlnet6; + unsigned char bowWaterlnet7; + unsigned char bowWaterlnet8; unsigned char bowRudderDeploy; unsigned char bowRudderServo1; unsigned char bowRudderServo2; @@ -51,13 +58,13 @@ struct DriverTable unsigned char bowCover4; unsigned char bowCover5; unsigned char bowCover6; - unsigned char bowCover7; - unsigned char bowCover8; unsigned char waterInject; - unsigned char wgDJ; + unsigned char mastLiftingServo; unsigned char buoyancyAdjust1; unsigned char buoyancyAdjust2; unsigned char buoyancyAdjust3; + unsigned char buoyancyAdjust4; + unsigned char buoyancyAdjust5; unsigned char sternRudderServo1; unsigned char sternRudderServo2; unsigned char sternRudderServo3; @@ -68,17 +75,17 @@ struct DriverTable //负载 unsigned char photoSensor; unsigned char electSensor; - unsigned char zhfk; + unsigned char launchControler; unsigned char sideSonar; unsigned char buoyage; }; enum DriverState { - POWER_OFF, // 断电 + POWER_OFF, // 断电 FULL_POWER_ON, // 全电 - INSTRUMENT_POWER_ON, // 仪表电上电 - MOTIVE_POWER_ON, // 动力电上电 + INSTRUMENT_POWER_ON, // 仪表电上电 + MOTIVE_POWER_ON, // 动力电上电 }; enum workCondition @@ -119,12 +126,18 @@ public: void getUNDERWATER_RECONable(DriverTable* driverTable); void getSURFACE_RECONable(DriverTable* driverTable); void getDJ_MODEable(DriverTable* driverTable); - - std::string saveDriverTableToJson(const DriverTable* driverTable); - + std::string getDriverTableJson(); + std::string getSubDisCmdJson(const DriverTable* driverTable); + std::string getDriveStateJson(const DriverTable* driverTable); + + std::string saveDriverTableToJson(const DriverTable* driverTable); + int loadDriverTableFromJson(const std::string &strJson, DriverTable& table); + + int SafeReadUInt(const Json::Value& root, const std::string& key, unsigned char& value); private: + bool debug; };