增加了交互变量的状态,增加了设备状态和设备表的json解析和生成函数,修复了设备表类和通信协议中不同的地方

This commit is contained in:
zjk
2025-02-19 17:18:39 +08:00
parent 5b9934c6f2
commit 75575f935c
10 changed files with 724 additions and 346 deletions
+474 -181
View File
@@ -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表示所有数据成功读取
}