增加部分状态显示

This commit is contained in:
zjk
2025-05-21 09:33:44 +08:00
parent fea319d3bf
commit af8e7a1ed1
11 changed files with 206 additions and 119 deletions
+23 -83
View File
@@ -675,7 +675,7 @@ std::string Driver::saveDriverTableToJson(const DriverTable* driverTable)
root["ctd1_uint8"] = driverTable->ctd1;
root["ctd2_uint8"] = driverTable->ctd2;
root["soundVeloc_uint8"] = driverTable->soundVeloc;
root["commMast_uint8"] = driverTable->commMast;
root["commDev_uint8"] = driverTable->commMast;
root["ins_uint8"] = driverTable->ins;
root["ntp_uint8"] = driverTable->ntp;
root["inputWaterSensor1_uint8"] = driverTable->inputWaterSensor1;
@@ -750,7 +750,7 @@ std::string Driver::getDriveStateJson(const DriverTable* driverTable)
int Driver::SafeReadUInt(const Json::Value& root, const std::string& key, unsigned char& value) {
if (!root.isMember(key)) {
std::cerr << "错误: 缺少字段 " << key << std::endl;
// std::cerr << "错误: 缺少字段 " << key << std::endl;
return -1; // 返回-1表示缺少字段
}
@@ -777,27 +777,27 @@ vector<DriverCommand> Driver::loadDriverIdFromJson(const std::string &strJson) {
}
// 设备字段名到ID的映射
const std::map<std::string, int> fieldToId = {
{"depth1", 18}, {"depth2", 19}, {"depth3", 20},
{"overDeep1", 21}, {"overDeep2", 22},
{"ctd1", 23}, {"ctd2", 24}, {"soundVeloc", 25},
{"commMast", 40}, {"ins", 57}, {"ntp", 58},
{"inputWaterSensor1", 59}, {"inputWaterSensor2", 60}, {"inputWaterSensor3", 61},
{"singleBeamSonar1", 0}, {"singleBeamSonar2", 1}, {"singleBeamSonar3", 2},
{"singleBeamSonar4", 3}, {"singleBeamSonar5", 4}, {"singleBeamSonar6", 5},
{"singleBeamSonar7", 6}, {"singleBeamSonar8", 7}, {"forwardSonar", 8},
{"DVL", 43}, {"lowFreqSonar", 36}, {"USBL", 42},
{"bowCover1", 9}, {"bowCover2", 10}, {"bowCover3", 11},
{"bowCover4", 12}, {"bowCover5", 13}, {"bowCover6", 14},
{"bowRudderDeploy", 15}, {"bowRudderServo1", 16}, {"bowRudderServo2", 17},
{"bowWaterInet1", 27}, {"bowWaterInet2", 28}, {"bowWaterInet3", 29},
{"bowWaterInet4", 30}, {"bowWaterInet5", 31}, {"bowWaterInet6", 32},
{"bowWaterInet7", 33}, {"bowWaterInet8", 34}, {"waterInject", 26},
{"mastLiftingServo", 41}, {"buoyancyAdjust1", 44}, {"buoyancyAdjust2", 45},
{"buoyancyAdjust3", 46}, {"buoyancyAdjust4", 47}, {"buoyancyAdjust5", 48},
{"sternRudderServo1", 49}, {"sternRudderServo2", 50}, {"sternRudderServo3", 51},
{"sternRudderServo4", 52}, {"thruster", 53}, {"bowThrow", 54},
{"sternThrow", 55}, {"photoSensor", 38}, {"electSensor", 39},
{"launchControler", 37}, {"sideSonar", 35}, {"buoyage", 56}
{"depth1_uint8", 18}, {"depth2_uint8", 19}, {"depth3_uint8", 20},
{"overDeep1_uint8", 21}, {"overDeep2_uint8", 22},
{"ctd1_uint8", 23}, {"ctd2_uint8", 24}, {"soundVeloc_uint8", 25},
{"commDev_uint8", 40}, {"ins_uint8", 57}, {"ntp_uint8", 58},
{"inputWaterSensor1_uint8", 59}, {"inputWaterSensor2_uint8", 60}, {"inputWaterSensor3_uint8", 61},
{"singleBeamSonar1_uint8", 0}, {"singleBeamSonar2_uint8", 1}, {"singleBeamSonar3_uint8", 2},
{"singleBeamSonar4_uint8", 3}, {"singleBeamSonar5_uint8", 4}, {"singleBeamSonar6_uint8", 5},
{"singleBeamSonar7_uint8", 6}, {"singleBeamSonar8_uint8", 7}, {"forwardSonar_uint8", 8},
{"DVL_uint8", 43}, {"lowFreqSonar_uint8", 36}, {"USBL_uint8", 42},
{"bowCover1_uint8", 9}, {"bowCover2_uint8", 10}, {"bowCover3_uint8", 11},
{"bowCover4_uint8", 12}, {"bowCover5_uint8", 13}, {"bowCover6_uint8", 14},
{"bowRudderDeploy_uint8", 15}, {"bowRudderServo1_uint8", 16}, {"bowRudderServo2_uint8", 17},
{"bowWaterInet1_uint8", 27}, {"bowWaterInet2_uint8", 28}, {"bowWaterInet3_uint8", 29},
{"bowWaterInet4_uint8", 30}, {"bowWaterInet5_uint8", 31}, {"bowWaterInet6_uint8", 32},
{"bowWaterInet7_uint8", 33}, {"bowWaterInet8_uint8", 34}, {"waterInject_uint8", 26},
{"mastLiftingServo_uint8_uint8", 41}, {"buoyancyAdjust1_uint8", 44}, {"buoyancyAdjust2_uint8", 45},
{"buoyancyAdjust3_uint8", 46}, {"buoyancyAdjust4_uint8", 47}, {"buoyancyAdjust5_uint8", 48},
{"sternRudderServo1_uint8", 49}, {"sternRudderServo2_uint8", 50}, {"sternRudderServo3_uint8", 51},
{"sternRudderServo4_uint8", 52}, {"thruster_uint8", 53}, {"bowThrow_uint8", 54},
{"sternThrow_uint8", 55}, {"photoSensor_uint8", 38}, {"electSensor_uint8", 39},
{"launchControler_uint8", 37}, {"sideSonar_uint8", 35}, {"buoyage_uint8", 56}
};
for (const auto& [field, id] : fieldToId) {
@@ -831,13 +831,10 @@ int Driver::loadDriverTableFromJson(const std::string &strJson, DriverTable& tab
int error_code = 0;
error_code = SafeReadUInt(root, "depth1_uint8", table.depth1);
if (error_code != 0) return error_code;
error_code = SafeReadUInt(root, "depth2_uint8", table.depth2);
if (error_code != 0) return error_code;
error_code = SafeReadUInt(root, "depth3_uint8", table.depth3);
if (error_code != 0) return error_code;
// error_code = SafeReadUInt(root, "overDeep1_uint8", table.overDeep1);
// if (error_code != 0) return error_code;
@@ -846,178 +843,121 @@ int Driver::loadDriverTableFromJson(const std::string &strJson, DriverTable& tab
// if (error_code != 0) return error_code;
error_code = SafeReadUInt(root, "ctd1_uint8", table.ctd1);
if (error_code != 0) return error_code;
error_code = SafeReadUInt(root, "ctd2_uint8", table.ctd2);
if (error_code != 0) return error_code;
error_code = SafeReadUInt(root, "soundVeloc_uint8", table.soundVeloc);
if (error_code != 0) return error_code;
error_code = SafeReadUInt(root, "commDev_uint8", table.commMast);
if (error_code != 0) return error_code;
error_code = SafeReadUInt(root, "ins_uint8", table.ins);
if (error_code != 0) return error_code;
error_code = SafeReadUInt(root, "ntp_uint8", table.ntp);
if (error_code != 0) return error_code;
error_code = SafeReadUInt(root, "inputWaterSensor1_uint8", table.inputWaterSensor1);
if (error_code != 0) return error_code;
error_code = SafeReadUInt(root, "inputWaterSensor2_uint8", table.inputWaterSensor2);
if (error_code != 0) return error_code;
error_code = SafeReadUInt(root, "inputWaterSensor3_uint8", table.inputWaterSensor3);
if (error_code != 0) return error_code;
// 水声设备
error_code = SafeReadUInt(root, "singleBeamSonar1_uint8", table.singleBeamSonar1);
if (error_code != 0) return error_code;
error_code = SafeReadUInt(root, "singleBeamSonar2_uint8", table.singleBeamSonar2);
if (error_code != 0) return error_code;
error_code = SafeReadUInt(root, "singleBeamSonar3_uint8", table.singleBeamSonar3);
if (error_code != 0) return error_code;
error_code = SafeReadUInt(root, "singleBeamSonar4_uint8", table.singleBeamSonar4);
if (error_code != 0) return error_code;
error_code = SafeReadUInt(root, "singleBeamSonar5_uint8", table.singleBeamSonar5);
if (error_code != 0) return error_code;
error_code = SafeReadUInt(root, "singleBeamSonar6_uint8", table.singleBeamSonar6);
if (error_code != 0) return error_code;
error_code = SafeReadUInt(root, "singleBeamSonar7_uint8", table.singleBeamSonar7);
if (error_code != 0) return error_code;
error_code = SafeReadUInt(root, "singleBeamSonar8_uint8", table.singleBeamSonar8);
if (error_code != 0) return error_code;
error_code = SafeReadUInt(root, "forwardSonar_uint8", table.forwardSonar);
if (error_code != 0) return error_code;
error_code = SafeReadUInt(root, "DVL_uint8", table.DVL);
if (error_code != 0) return error_code;
error_code = SafeReadUInt(root, "lowFreqSonar_uint8", table.lowFreqSonar);
if (error_code != 0) return error_code;
error_code = SafeReadUInt(root, "USBL_uint8", table.USBL);
if (error_code != 0) return error_code;
// 执行机构
error_code = SafeReadUInt(root, "bowWaterInet1_uint8", table.bowWaterInet1);
if (error_code != 0) return error_code;
error_code = SafeReadUInt(root, "bowWaterInet2_uint8", table.bowWaterInet2);
if (error_code != 0) return error_code;
error_code = SafeReadUInt(root, "bowWaterInet3_uint8", table.bowWaterInet3);
if (error_code != 0) return error_code;
error_code = SafeReadUInt(root, "bowWaterInet4_uint8", table.bowWaterInet4);
if (error_code != 0) return error_code;
error_code = SafeReadUInt(root, "bowWaterInet5_uint8", table.bowWaterInet5);
if (error_code != 0) return error_code;
error_code = SafeReadUInt(root, "bowWaterInet6_uint8", table.bowWaterInet6);
if (error_code != 0) return error_code;
error_code = SafeReadUInt(root, "bowWaterInet7_uint8", table.bowWaterInet7);
if (error_code != 0) return error_code;
error_code = SafeReadUInt(root, "bowWaterInet8_uint8", table.bowWaterInet8);
if (error_code != 0) return error_code;
error_code = SafeReadUInt(root, "bowRudderDeploy_uint8", table.bowRudderDeploy);
if (error_code != 0) return error_code;
error_code = SafeReadUInt(root, "bowRudderServo1_uint8", table.bowRudderServo1);
if (error_code != 0) return error_code;
error_code = SafeReadUInt(root, "bowRudderServo2_uint8", table.bowRudderServo2);
if (error_code != 0) return error_code;
error_code = SafeReadUInt(root, "bowCover1_uint8", table.bowCover1);
if (error_code != 0) return error_code;
error_code = SafeReadUInt(root, "bowCover2_uint8", table.bowCover2);
if (error_code != 0) return error_code;
error_code = SafeReadUInt(root, "bowCover3_uint8", table.bowCover3);
if (error_code != 0) return error_code;
error_code = SafeReadUInt(root, "bowCover4_uint8", table.bowCover4);
if (error_code != 0) return error_code;
error_code = SafeReadUInt(root, "bowCover5_uint8", table.bowCover5);
if (error_code != 0) return error_code;
error_code = SafeReadUInt(root, "bowCover6_uint8", table.bowCover6);
if (error_code != 0) return error_code;
error_code = SafeReadUInt(root, "waterInject_uint8", table.waterInject);
if (error_code != 0) return error_code;
error_code = SafeReadUInt(root, "mastLiftingServo_uint8", table.mastLiftingServo);
if (error_code != 0) return error_code;
error_code = SafeReadUInt(root, "buoyancyAdjust1_uint8", table.buoyancyAdjust1);
if (error_code != 0) return error_code;
error_code = SafeReadUInt(root, "buoyancyAdjust2_uint8", table.buoyancyAdjust2);
if (error_code != 0) return error_code;
error_code = SafeReadUInt(root, "buoyancyAdjust3_uint8", table.buoyancyAdjust3);
if (error_code != 0) return error_code;
error_code = SafeReadUInt(root, "buoyancyAdjust4_uint8", table.buoyancyAdjust4);
if (error_code != 0) return error_code;
error_code = SafeReadUInt(root, "buoyancyAdjust5_uint8", table.buoyancyAdjust5);
if (error_code != 0) return error_code;
error_code = SafeReadUInt(root, "sternRudderServo1_uint8", table.sternRudderServo1);
if (error_code != 0) return error_code;
error_code = SafeReadUInt(root, "sternRudderServo2_uint8", table.sternRudderServo2);
if (error_code != 0) return error_code;
error_code = SafeReadUInt(root, "sternRudderServo3_uint8", table.sternRudderServo3);
if (error_code != 0) return error_code;
error_code = SafeReadUInt(root, "sternRudderServo4_uint8", table.sternRudderServo4);
if (error_code != 0) return error_code;
error_code = SafeReadUInt(root, "thruster_uint8", table.thruster);
if (error_code != 0) return error_code;
error_code = SafeReadUInt(root, "bowThrow_uint8", table.bowThrow);
if (error_code != 0) return error_code;
error_code = SafeReadUInt(root, "sternThrow_uint8", table.sternThrow);
if (error_code != 0) return error_code;
// 负载
error_code = SafeReadUInt(root, "photoSensor_uint8", table.photoSensor);
if (error_code != 0) return error_code;
error_code = SafeReadUInt(root, "electSensor_uint8", table.electSensor);
if (error_code != 0) return error_code;
error_code = SafeReadUInt(root, "launchControler_uint8", table.launchControler);
if (error_code != 0) return error_code;
error_code = SafeReadUInt(root, "sideSonar_uint8", table.sideSonar);
if (error_code != 0) return error_code;
error_code = SafeReadUInt(root, "buoyage_uint8", table.buoyage);
if (error_code != 0) return error_code;
return 0; // 返回0表示所有数据成功读取
}