进行了水面端测试
This commit is contained in:
@@ -41,6 +41,7 @@ TARGET_LINK_LIBRARIES(pPowerManger
|
||||
pthread
|
||||
jsoncpp
|
||||
${SYSTEM_LIBS}
|
||||
dl
|
||||
# SQLiteDB
|
||||
# sqlite3
|
||||
)
|
||||
|
||||
+1994
-179
File diff suppressed because it is too large
Load Diff
@@ -9,6 +9,7 @@
|
||||
#include <cxxabi.h> // 新增头文件,用于demangle功能
|
||||
#include "pmSysvariable.h"
|
||||
#include "driver.h"
|
||||
#include "PowerManger.h"
|
||||
// 前向声明
|
||||
class PowerManger;
|
||||
|
||||
@@ -21,13 +22,17 @@ enum class PowerSystemState {
|
||||
//==================状态切换事件=============================
|
||||
struct InitEvent : tinyfsm::Event { };
|
||||
struct StandbyEvent : tinyfsm::Event { };
|
||||
struct FaultEvent : tinyfsm::Event {
|
||||
unsigned int faultCode;
|
||||
FaultEvent(unsigned int code) : faultCode(code) {}
|
||||
};
|
||||
struct TaskStopEvent : tinyfsm::Event { };
|
||||
|
||||
//==================状态流程事件============================
|
||||
struct MasterCommandEvent : tinyfsm::Event {};
|
||||
struct TaskStart : tinyfsm::Event { };
|
||||
struct TaskStartEvent : tinyfsm::Event {
|
||||
int type;
|
||||
bool enableBowRudder;
|
||||
bool enableBuoyancyAdjustment;
|
||||
TaskStartEvent() : type(0), enableBowRudder(false), enableBuoyancyAdjustment(false) {};
|
||||
TaskStartEvent(int type, bool bowRudder, bool buoyancyAdjustment) : type(type), enableBowRudder(bowRudder), enableBuoyancyAdjustment(buoyancyAdjustment) {};
|
||||
};
|
||||
struct DeviceCmd : tinyfsm::Event { };
|
||||
struct DevCmdExt : tinyfsm::Event {
|
||||
int id;
|
||||
@@ -35,7 +40,24 @@ struct DevCmdExt : tinyfsm::Event {
|
||||
DevCmdExt() : id(0), cmd(0) {};
|
||||
DevCmdExt(int id, int cmd) : id(id), cmd(cmd) {};
|
||||
};
|
||||
|
||||
struct FaultEvent : tinyfsm::Event {
|
||||
unsigned int subDisSysFaultCode;
|
||||
unsigned int disSysFaultCode;
|
||||
unsigned int powerFaultCode;
|
||||
unsigned int fcsFaultCode;
|
||||
unsigned int ccsFaultCode;
|
||||
FaultEvent() : subDisSysFaultCode(0), disSysFaultCode(0), powerFaultCode(0), fcsFaultCode(0), ccsFaultCode(0) {};
|
||||
FaultEvent(unsigned int subDisSysFaultCode,
|
||||
unsigned int disSysFaultCode,
|
||||
unsigned int powerFaultCode,
|
||||
unsigned int fcsFaultCode,
|
||||
unsigned int ccsFaultCode)
|
||||
: subDisSysFaultCode(subDisSysFaultCode),
|
||||
disSysFaultCode(disSysFaultCode),
|
||||
powerFaultCode(powerFaultCode),
|
||||
fcsFaultCode(fcsFaultCode),
|
||||
ccsFaultCode(ccsFaultCode) {};
|
||||
};
|
||||
|
||||
class PowerManagerFsm : public tinyfsm::Fsm<PowerManagerFsm> {
|
||||
protected:
|
||||
@@ -46,21 +68,31 @@ public:
|
||||
static void init(PowerManger* powerManager) {
|
||||
pm = powerManager;
|
||||
}
|
||||
// 响应事件默认实现
|
||||
|
||||
virtual void react(tinyfsm::Event const &) { std::cout << "[ Reseve Envt ] " << "No Idear" << std::endl; }
|
||||
virtual void react(InitEvent const &) {};
|
||||
virtual void react(StandbyEvent const &) { };
|
||||
virtual void react(FaultEvent const &) { };
|
||||
virtual void react(MasterCommandEvent const &) { LOG_F(INFO, "MasterCommandEvent");};
|
||||
virtual void react(TaskStart const &) { LOG_F(INFO, "TaskStart"); };
|
||||
virtual void react(DeviceCmd const &) { LOG_F(INFO, "DeviceCmd"); };
|
||||
virtual void react(DevCmdExt const &e);
|
||||
virtual void react(TaskStartEvent const &e);
|
||||
virtual void react(FaultEvent const &e);
|
||||
virtual void react(TaskStopEvent const &e);
|
||||
|
||||
//操作函数
|
||||
void handelPowerCmd();
|
||||
void handleModCmd();
|
||||
void handleWorkCmd();
|
||||
void handleDeviceCmd();
|
||||
//故障处理
|
||||
void basicNavigationFault(FaultEvent const &e);
|
||||
void extendedNavigationFault(FaultEvent const &e);
|
||||
void obstacleAvoidanceFault(FaultEvent const &e);
|
||||
void buoyancyControlFault(FaultEvent const &e);
|
||||
void communicationSystemFault(FaultEvent const &e);
|
||||
void payloadSystemFault(FaultEvent const &e);
|
||||
void emergencySystemFault(FaultEvent const &e);
|
||||
void sensorSystemFault(FaultEvent const &e);
|
||||
|
||||
// 状态机生命周期方法
|
||||
virtual void entry() {
|
||||
@@ -110,8 +142,6 @@ public:
|
||||
void entry() override;
|
||||
void react(StandbyEvent const &) override;
|
||||
void react(MasterCommandEvent const &) override;
|
||||
void react(TaskStart const &) override;
|
||||
// void react(DeviceCmd const &) override;
|
||||
private:
|
||||
void handlePowerOn();
|
||||
};
|
||||
@@ -121,8 +151,6 @@ class ShoreBasedReady : public PowerManagerFsm {
|
||||
public:
|
||||
void entry() override;
|
||||
void react(MasterCommandEvent const &) override;
|
||||
void react(TaskStart const &) override;
|
||||
// void react(DeviceCmd const &) override;
|
||||
private:
|
||||
// void handlePowerCommands();
|
||||
// void handlePowerOn();
|
||||
@@ -133,7 +161,7 @@ class WaterBasedReady : public PowerManagerFsm {
|
||||
void entry() override;
|
||||
void react(MasterCommandEvent const &) override;
|
||||
// void react(DeviceCmd const &) override;
|
||||
void react(TaskStart const &) override;
|
||||
// void react(TaskStart const &) override;
|
||||
private:
|
||||
// void handlePowerCommands();
|
||||
// void handlePowerOn();
|
||||
@@ -144,7 +172,7 @@ class CruiseMode : public PowerManagerFsm {
|
||||
void entry() override;
|
||||
void react(MasterCommandEvent const &) override;
|
||||
// void react(DeviceCmd const &) override;
|
||||
void react(TaskStart const &) override;
|
||||
// void react(TaskStart const &) override;
|
||||
private:
|
||||
// void handlePowerCommands();
|
||||
};
|
||||
@@ -155,7 +183,7 @@ class HighSpeedMode : public PowerManagerFsm {
|
||||
void entry() override;
|
||||
void react(MasterCommandEvent const &) override;
|
||||
// void react(DeviceCmd const &) override;
|
||||
void react(TaskStart const &) override;
|
||||
// void react(TaskStart const &) override;
|
||||
private:
|
||||
// void handlePowerCommands();
|
||||
};
|
||||
@@ -165,7 +193,7 @@ class FloatDown : public PowerManagerFsm {
|
||||
void entry() override;
|
||||
void react(MasterCommandEvent const &) override;
|
||||
// void react(DeviceCmd const &) override;
|
||||
void react(TaskStart const &) override;
|
||||
// void react(TaskStart const &) override;
|
||||
private:
|
||||
// void handlePowerCommands();
|
||||
};
|
||||
@@ -175,7 +203,7 @@ class FloatAdjust : public PowerManagerFsm {
|
||||
void entry() override;
|
||||
void react(MasterCommandEvent const &) override;
|
||||
// void react(DeviceCmd const &) override;
|
||||
void react(TaskStart const &) override;
|
||||
// void react(TaskStart const &) override;
|
||||
private:
|
||||
// void handlePowerCommands();
|
||||
};
|
||||
@@ -185,7 +213,7 @@ class UnderwaterSurvey : public PowerManagerFsm {
|
||||
void entry() override;
|
||||
void react(MasterCommandEvent const &) override;
|
||||
// void react(DeviceCmd const &) override;
|
||||
void react(TaskStart const &) override;
|
||||
// void react(TaskStart const &) override;
|
||||
private:
|
||||
// void handlePowerCommands();
|
||||
|
||||
@@ -196,7 +224,7 @@ class SurfaceSurvey : public PowerManagerFsm {
|
||||
void entry() override;
|
||||
void react(MasterCommandEvent const &) override;
|
||||
// void react(DeviceCmd const &) override;
|
||||
void react(TaskStart const &) override;
|
||||
// void react(TaskStart const &) override;
|
||||
private:
|
||||
// void handlePowerCommands();
|
||||
|
||||
@@ -207,7 +235,7 @@ class DJMode : public PowerManagerFsm {
|
||||
void entry() override;
|
||||
void react(MasterCommandEvent const &) override;
|
||||
// void react(DeviceCmd const &) override;
|
||||
void react(TaskStart const &) override;
|
||||
// void react(TaskStart const &) override;
|
||||
private:
|
||||
// void handlePowerCommands();
|
||||
|
||||
@@ -218,7 +246,7 @@ class RemoteControl : public PowerManagerFsm {
|
||||
void entry() override;
|
||||
void react(MasterCommandEvent const &) override;
|
||||
// void react(DeviceCmd const &) override;
|
||||
void react(TaskStart const &) override;
|
||||
// void react(TaskStart const &) override;
|
||||
private:
|
||||
// void handlePowerCommands();
|
||||
};
|
||||
|
||||
@@ -29,7 +29,7 @@ PowerManger::PowerManger()
|
||||
workCondition = 0;
|
||||
currentMod = 0;
|
||||
powerState = 0;
|
||||
falutLevel = 0;
|
||||
faultLevel = 0;
|
||||
soc = 0;
|
||||
sustainableTime = 0;
|
||||
m_faultNum = 0;
|
||||
@@ -125,6 +125,7 @@ bool PowerManger::Iterate()
|
||||
AppCastingMOOSApp::Iterate();
|
||||
// 打印当前状态
|
||||
// cout << " Current State : " << (int)PowerManagerFsm::current_state_ptr->getCurrentState();
|
||||
faultLevel = getFaultLevel();
|
||||
if (m_ticker++ % 5 == 0)
|
||||
{
|
||||
m_CcuColCmd.heartbeat++;
|
||||
@@ -196,6 +197,11 @@ void PowerManger::registerVariables()
|
||||
Register(DB_TO_PM_SUBDISSTATE, 0);
|
||||
Register(DB_TO_PM_MISSION,0);
|
||||
Register(DB_TO_PM_DEEPTH,0);
|
||||
Register(DB_TO_PM_SETOPCONDITION,0);
|
||||
Register(DB_TO_PM_SETOPMODE,0);
|
||||
Register(DB_TO_PM_SETPMSYS,0);
|
||||
Register(DB_TO_PM_SETDEVSWITCH,0);
|
||||
Register(DB_TO_PM_TASKSTOP,0);
|
||||
}
|
||||
|
||||
|
||||
@@ -277,14 +283,6 @@ void PowerManger::printState(const std::string& stateName, const std::string& de
|
||||
}
|
||||
|
||||
|
||||
//==============================系统操作函数====================
|
||||
bool PowerManger::shutdown()
|
||||
{
|
||||
m_CcuColCmd.masterState = 0xFF; //关机
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
void PowerManger::initControlCmd()
|
||||
{
|
||||
//================初始化配电指令=============================
|
||||
@@ -340,4 +338,17 @@ void PowerManger::initControlCmd()
|
||||
m_msCmd.workCMD = 99;
|
||||
//================初始化设备驱动指令========================
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
unsigned char PowerManger::getFaultLevel()
|
||||
{
|
||||
unsigned char maxLevel = 0;
|
||||
for (auto code : faultCode) {
|
||||
// 提取0xabcd中的b位 (右移8位后取低4位)
|
||||
unsigned char level = (code >> 8) & 0xF;
|
||||
if (level > maxLevel) {
|
||||
maxLevel = level;
|
||||
}
|
||||
}
|
||||
return maxLevel;
|
||||
}
|
||||
@@ -62,6 +62,7 @@ class PowerManger : public AppCastingMOOSApp
|
||||
|
||||
public:
|
||||
void updateTime(){m_current_time = MOOSTime();}
|
||||
unsigned char getFaultLevel();
|
||||
//数据库
|
||||
// SQLiteDB* m_db;
|
||||
bool writeDataToDB();
|
||||
@@ -85,14 +86,13 @@ class PowerManger : public AppCastingMOOSApp
|
||||
disSysBreakerList m_currentDisBreakerState; //配电断路器状态
|
||||
DriverTable m_currentDriverState;
|
||||
DriverTable m_subDisSysState;
|
||||
|
||||
int m_depth;
|
||||
MissionState m_missionState;
|
||||
//===========================STATE=========================================
|
||||
unsigned char workCondition;
|
||||
unsigned char currentMod;
|
||||
unsigned char powerState;
|
||||
unsigned char falutLevel;
|
||||
unsigned char faultLevel;
|
||||
vector<unsigned int> faultCode;
|
||||
unsigned int soc;
|
||||
unsigned int sustainableTime;
|
||||
@@ -125,7 +125,6 @@ class PowerManger : public AppCastingMOOSApp
|
||||
|
||||
//==================================================================================
|
||||
int checkError();
|
||||
bool shutdown();
|
||||
|
||||
bool sendNotification(const std::string& key, const std::string& value) {
|
||||
return Notify(key, value);
|
||||
|
||||
@@ -27,7 +27,11 @@ bool UpperCommManager::processUpperMsg(const string& key, const string& strJson)
|
||||
}
|
||||
else if(key == DB_TO_PM_MISSION) {
|
||||
m_pm->m_missionState = getMission(key, strJson);
|
||||
//TODO:转移到对应工况下
|
||||
TaskStartEvent event;
|
||||
event.type = m_pm->m_missionState.type;
|
||||
event.enableBowRudder = m_pm->m_missionState.enableBowRudder;
|
||||
event.enableBuoyancyAdjustment = m_pm->m_missionState.enableBuoyancyAdjustment;
|
||||
PowerManagerFsm::dispatch(event);
|
||||
return true;
|
||||
} else if(key == DB_TO_PM_SETOPCONDITION) {
|
||||
m_pm->m_msCmd.workCMD = getSetOpCondition(key, strJson);
|
||||
@@ -58,6 +62,16 @@ bool UpperCommManager::processUpperMsg(const string& key, const string& strJson)
|
||||
}
|
||||
LOG_F(INFO, "set dev switch success");
|
||||
return true;
|
||||
} else if(key == DB_TO_PM_TASKSTOP) {
|
||||
bool stop = getTaskStop(key, strJson);
|
||||
if (stop) {
|
||||
LOG_F(INFO, "task stop success");
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
LOG_F(WARNING, "task stop error:%s", strJson.c_str());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
LOG_F(WARNING, "Unknown key: %s", key.c_str());
|
||||
return false;
|
||||
@@ -178,8 +192,8 @@ int UpperCommManager::getSetOpCondition(const std::string& key, const std::strin
|
||||
|
||||
// 检查并读取操作条件
|
||||
if (root.isMember("state_uint8") && root["state_uint8"].isUInt()) {
|
||||
return root["opCondition"].asUInt();
|
||||
LOG_F(INFO, "上位机指令:opCondition: %d", root["opCondition"].asUInt());
|
||||
return root["state_uint8"].asUInt();
|
||||
LOG_F(INFO, "上位机指令:opCondition: %d", root["state_uint8"].asUInt());
|
||||
} else {
|
||||
LOG_F(WARNING, "缺少或类型不匹配: opCondition");
|
||||
return -1;
|
||||
@@ -256,9 +270,28 @@ DeviceSwitchCmd UpperCommManager::getSetDevSwitch(const std::string& key, const
|
||||
LOG_F(WARNING, "缺少或类型不匹配: state_bool");
|
||||
}
|
||||
return cmd;
|
||||
}
|
||||
|
||||
const std::string UpperCommManager::getCurrentEquState(DriverTable& driver)
|
||||
}
|
||||
|
||||
bool UpperCommManager::getTaskStop(const std::string& key, const std::string& msg) {
|
||||
Json::Value root;
|
||||
Json::CharReaderBuilder builder;
|
||||
JSONCPP_STRING errs;
|
||||
|
||||
// 解析JSON字符串
|
||||
std::istringstream stream(msg);
|
||||
if (!Json::parseFromStream(builder, stream, &root, &errs)) {
|
||||
LOG_F(WARNING, "JSON解析失败: %s", errs.c_str());
|
||||
return false;
|
||||
}
|
||||
|
||||
// 检查op_int32字段
|
||||
if (root.isMember("op_int32") && root["op_int32"].isInt()) {
|
||||
return root["op_int32"].asInt() == 1;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
const std::string UpperCommManager::getCurrentEquState(DriverTable& driver)
|
||||
{
|
||||
return m_pm->m_driver.saveDriverTableToJson(&driver);
|
||||
}
|
||||
@@ -337,8 +370,8 @@ void UpperCommManager::buildSystemReport() {
|
||||
suffix = getTypeName(typeid(m_pm->powerState).name());
|
||||
pms[VAR_TO_STR(powerState)+suffix] = m_pm->powerState;
|
||||
|
||||
suffix = getTypeName(typeid(m_pm->falutLevel).name());
|
||||
pms[VAR_TO_STR(falutLevel)+suffix] = m_pm->falutLevel;
|
||||
suffix = getTypeName(typeid(m_pm->faultLevel).name());
|
||||
pms[VAR_TO_STR(faultLevel)+suffix] = m_pm->faultLevel;
|
||||
|
||||
Json::Value faultCode_array;
|
||||
for(auto val : m_pm->faultCode)
|
||||
@@ -348,10 +381,10 @@ void UpperCommManager::buildSystemReport() {
|
||||
pms[VAR_TO_STR(faultCode_array)] = faultCode_array;
|
||||
|
||||
suffix = getTypeName(typeid(m_pm->soc).name());
|
||||
pms[VAR_TO_STR(soc)+suffix] = m_pm->soc;
|
||||
pms["soc_uint16"] = m_pm->soc;
|
||||
|
||||
suffix = getTypeName(typeid(m_pm->sustainableTime).name());
|
||||
pms[VAR_TO_STR(sustainableTime)+suffix] = m_pm->sustainableTime;
|
||||
pms["sustainableTime_int64"] = m_pm->sustainableTime;
|
||||
|
||||
//2.构建燃料电池状态报告
|
||||
suffix = getTypeName(typeid(m_pm->m_pmCurrentState.ccustate.fcuState).name());
|
||||
|
||||
@@ -27,7 +27,8 @@ using namespace std;
|
||||
|
||||
//决策消息
|
||||
#define DB_TO_PM_DEEPTH "uDevice_depth_st"
|
||||
#define DB_TO_PM_MISSION "uPlan_taskStart_cmd"
|
||||
#define DB_TO_PM_MISSION "uPlan_taskReport_st"
|
||||
#define DB_TO_PM_TASKSTOP "uPlan_planStop_cmd"
|
||||
|
||||
//外部通信消息
|
||||
#define DB_TO_PM_SETOPCONDITION "uExternComm_setOpCondition_cmd"
|
||||
@@ -57,6 +58,7 @@ public:
|
||||
const DriverTable getSubDisState(const std::string& key, const std::string& msg);
|
||||
const int getDeepth(const std::string& key, const std::string& msg);
|
||||
MissionState getMission(const std::string& key, const std::string& msg);
|
||||
bool getTaskStop(const std::string& key, const std::string& msg);
|
||||
// 处理外部通信消息
|
||||
int getSetOpCondition(const std::string& key, const std::string& msg);
|
||||
int getSetOpMode(const std::string& key, const std::string& msg);
|
||||
|
||||
+236
-238
@@ -93,209 +93,208 @@ void Driver::getSTANDBYTable(DriverTable* driverTable)
|
||||
void Driver::getSHORE_BASED_READYable(DriverTable* driverTable)
|
||||
{
|
||||
// 打开所有传感器
|
||||
driverTable->depth1 = DRIVER_FULL_POWER_ON;
|
||||
driverTable->depth2 = DRIVER_FULL_POWER_ON;
|
||||
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->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->depth1 = 1;
|
||||
driverTable->depth2 = 1;
|
||||
driverTable->depth3 = 1;
|
||||
driverTable->overDeep1 = 1;
|
||||
driverTable->overDeep2 = 1;
|
||||
driverTable->ctd1 = 1;
|
||||
driverTable->ctd2 = 1;
|
||||
driverTable->soundVeloc = 1;
|
||||
driverTable->commMast = 1;
|
||||
driverTable->ins = 1;
|
||||
driverTable->ntp = 1;
|
||||
driverTable->inputWaterSensor1 = 1;
|
||||
driverTable->inputWaterSensor2 = 1;
|
||||
driverTable->inputWaterSensor3 = 1;
|
||||
|
||||
// 允许启动负载
|
||||
// 关闭xcz
|
||||
driverTable->photoSensor = DRIVER_STANDBY;
|
||||
driverTable->electSensor = DRIVER_STANDBY;
|
||||
driverTable->launchControler = DRIVER_STANDBY;
|
||||
driverTable->sideSonar = DRIVER_POWER_OFF;
|
||||
driverTable->buoyage = DRIVER_STANDBY;
|
||||
driverTable->photoSensor = 0;
|
||||
driverTable->electSensor = 0;
|
||||
driverTable->launchControler = 0;
|
||||
driverTable->sideSonar = 0;
|
||||
driverTable->buoyage = 0;
|
||||
|
||||
// 关闭所有水声设备
|
||||
driverTable->singleBeamSonar1 = DRIVER_POWER_OFF;
|
||||
driverTable->singleBeamSonar2 = DRIVER_POWER_OFF;
|
||||
driverTable->singleBeamSonar3 = DRIVER_POWER_OFF;
|
||||
driverTable->singleBeamSonar4 = DRIVER_POWER_OFF;
|
||||
driverTable->singleBeamSonar5 = DRIVER_POWER_OFF;
|
||||
driverTable->singleBeamSonar6 = DRIVER_POWER_OFF;
|
||||
driverTable->singleBeamSonar7 = DRIVER_POWER_OFF;
|
||||
driverTable->singleBeamSonar8 = DRIVER_POWER_OFF;
|
||||
driverTable->DVL = DRIVER_POWER_OFF;
|
||||
driverTable->forwardSonar = DRIVER_POWER_OFF;
|
||||
driverTable->lowFreqSonar = DRIVER_POWER_OFF;
|
||||
driverTable->USBL = DRIVER_POWER_OFF;
|
||||
driverTable->singleBeamSonar1 = 0;
|
||||
driverTable->singleBeamSonar2 = 0;
|
||||
driverTable->singleBeamSonar3 = 0;
|
||||
driverTable->singleBeamSonar4 = 0;
|
||||
driverTable->singleBeamSonar5 = 0;
|
||||
driverTable->singleBeamSonar6 = 0;
|
||||
driverTable->singleBeamSonar7 = 0;
|
||||
driverTable->singleBeamSonar8 = 0;
|
||||
driverTable->DVL = 0;
|
||||
driverTable->forwardSonar = 0;
|
||||
driverTable->lowFreqSonar = 0;
|
||||
driverTable->USBL = 0;
|
||||
|
||||
// 打开必要的执行机构
|
||||
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->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->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;
|
||||
driverTable->sternRudderServo4 = DRIVER_FULL_POWER_ON;
|
||||
driverTable->thruster = DRIVER_FULL_POWER_ON;
|
||||
driverTable->bowThrow = DRIVER_FULL_POWER_ON;
|
||||
driverTable->sternThrow = DRIVER_FULL_POWER_ON;
|
||||
driverTable->bowCover1 = 1;
|
||||
driverTable->bowCover2 = 1;
|
||||
driverTable->bowCover3 = 1;
|
||||
driverTable->bowCover4 = 1;
|
||||
driverTable->bowCover5 = 1;
|
||||
driverTable->bowCover6 = 1;
|
||||
driverTable->bowRudderDeploy = 1;
|
||||
driverTable->bowRudderServo1 = 1;
|
||||
driverTable->bowRudderServo2 = 1;
|
||||
driverTable->bowWaterlnet1 = 1;
|
||||
driverTable->bowWaterlnet2 = 1;
|
||||
driverTable->bowWaterlnet3 = 1;
|
||||
driverTable->bowWaterlnet4 = 1;
|
||||
driverTable->bowWaterlnet5 = 1;
|
||||
driverTable->bowWaterlnet6 = 1;
|
||||
driverTable->bowWaterlnet7 = 1;
|
||||
driverTable->bowWaterlnet8 = 1;
|
||||
driverTable->waterInject = 1;
|
||||
driverTable->mastLiftingServo = 1;
|
||||
driverTable->buoyancyAdjust1 = 1;
|
||||
driverTable->buoyancyAdjust2 = 1;
|
||||
driverTable->buoyancyAdjust3 = 1;
|
||||
driverTable->buoyancyAdjust4 = 1;
|
||||
driverTable->buoyancyAdjust5 = 1;
|
||||
driverTable->sternRudderServo1 = 1;
|
||||
driverTable->sternRudderServo2 = 1;
|
||||
driverTable->sternRudderServo3 = 1;
|
||||
driverTable->sternRudderServo4 = 1;
|
||||
driverTable->thruster = 1;
|
||||
driverTable->bowThrow = 1;
|
||||
driverTable->sternThrow = 1;
|
||||
}
|
||||
|
||||
void Driver::getWATER_BASED_READYable(DriverTable* driverTable)
|
||||
{
|
||||
// 打开所有传感器
|
||||
driverTable->depth1 = DRIVER_FULL_POWER_ON;
|
||||
driverTable->depth2 = DRIVER_FULL_POWER_ON;
|
||||
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->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->depth1 = 1;
|
||||
driverTable->depth2 = 1;
|
||||
driverTable->depth3 = 1;
|
||||
driverTable->overDeep1 = 1;
|
||||
driverTable->overDeep2 = 1;
|
||||
driverTable->ctd1 = 1;
|
||||
driverTable->ctd2 = 1;
|
||||
driverTable->soundVeloc = 1;
|
||||
driverTable->commMast = 1;
|
||||
driverTable->ins = 1;
|
||||
driverTable->ntp = 1;
|
||||
driverTable->inputWaterSensor1 = 1;
|
||||
driverTable->inputWaterSensor2 = 1;
|
||||
driverTable->inputWaterSensor3 = 1;
|
||||
|
||||
// 允许启动负载
|
||||
driverTable->photoSensor = DRIVER_STANDBY;
|
||||
driverTable->electSensor = DRIVER_STANDBY;
|
||||
driverTable->launchControler = DRIVER_STANDBY;
|
||||
driverTable->sideSonar = DRIVER_STANDBY;
|
||||
driverTable->buoyage = DRIVER_STANDBY;
|
||||
driverTable->photoSensor = 0;
|
||||
driverTable->electSensor = 0;
|
||||
driverTable->launchControler = 0;
|
||||
driverTable->sideSonar = 0;
|
||||
driverTable->buoyage = 0;
|
||||
|
||||
// 所有水声设备待机
|
||||
// 打开DVL
|
||||
driverTable->singleBeamSonar1 = DRIVER_STANDBY;
|
||||
driverTable->singleBeamSonar2 = DRIVER_STANDBY;
|
||||
driverTable->singleBeamSonar3 = DRIVER_STANDBY;
|
||||
driverTable->singleBeamSonar4 = DRIVER_STANDBY;
|
||||
driverTable->singleBeamSonar5 = DRIVER_STANDBY;
|
||||
driverTable->singleBeamSonar6 = DRIVER_STANDBY;
|
||||
driverTable->singleBeamSonar7 = DRIVER_STANDBY;
|
||||
driverTable->singleBeamSonar8 = DRIVER_STANDBY;
|
||||
driverTable->DVL = DRIVER_FULL_POWER_ON;
|
||||
driverTable->forwardSonar = DRIVER_STANDBY;
|
||||
driverTable->lowFreqSonar = DRIVER_STANDBY;
|
||||
driverTable->USBL = DRIVER_STANDBY;
|
||||
driverTable->singleBeamSonar1 = 0;
|
||||
driverTable->singleBeamSonar2 = 0;
|
||||
driverTable->singleBeamSonar3 = 0;
|
||||
driverTable->singleBeamSonar4 = 0;
|
||||
driverTable->singleBeamSonar5 = 0;
|
||||
driverTable->singleBeamSonar6 = 0;
|
||||
driverTable->singleBeamSonar7 = 0;
|
||||
driverTable->singleBeamSonar8 = 0;
|
||||
driverTable->DVL = 0;
|
||||
driverTable->forwardSonar = 0;
|
||||
driverTable->lowFreqSonar = 0;
|
||||
driverTable->USBL = 0;
|
||||
|
||||
// 打开必要的执行机构
|
||||
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->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->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;
|
||||
driverTable->sternRudderServo4 = DRIVER_FULL_POWER_ON;
|
||||
driverTable->thruster = DRIVER_FULL_POWER_ON;
|
||||
driverTable->bowThrow = DRIVER_FULL_POWER_ON;
|
||||
driverTable->sternThrow = DRIVER_FULL_POWER_ON;
|
||||
driverTable->bowCover1 = 1;
|
||||
driverTable->bowCover2 = 1;
|
||||
driverTable->bowCover3 = 1;
|
||||
driverTable->bowCover4 = 1;
|
||||
driverTable->bowCover5 = 1;
|
||||
driverTable->bowCover6 = 1;
|
||||
driverTable->bowRudderDeploy = 1;
|
||||
driverTable->bowRudderServo1 = 1;
|
||||
driverTable->bowRudderServo2 = 1;
|
||||
driverTable->bowWaterlnet1 = 1;
|
||||
driverTable->bowWaterlnet2 = 1;
|
||||
driverTable->bowWaterlnet3 = 1;
|
||||
driverTable->bowWaterlnet4 = 1;
|
||||
driverTable->bowWaterlnet5 = 1;
|
||||
driverTable->bowWaterlnet6 = 1;
|
||||
driverTable->bowWaterlnet7 = 1;
|
||||
driverTable->bowWaterlnet8 = 1;
|
||||
driverTable->waterInject = 1;
|
||||
driverTable->mastLiftingServo = 1;
|
||||
driverTable->buoyancyAdjust1 = 1;
|
||||
driverTable->buoyancyAdjust2 = 1;
|
||||
driverTable->buoyancyAdjust3 = 1;
|
||||
driverTable->buoyancyAdjust4 = 1;
|
||||
driverTable->buoyancyAdjust5 = 1;
|
||||
driverTable->sternRudderServo1 = 1;
|
||||
driverTable->sternRudderServo2 = 1;
|
||||
driverTable->sternRudderServo3 = 1;
|
||||
driverTable->sternRudderServo4 = 1;
|
||||
driverTable->thruster = 1;
|
||||
driverTable->bowThrow = 1;
|
||||
driverTable->sternThrow = 1;
|
||||
}
|
||||
|
||||
void Driver::getCRUISE_MODEable(DriverTable* driverTable)
|
||||
{
|
||||
// 打开所有传感器
|
||||
driverTable->depth1 = DRIVER_FULL_POWER_ON;
|
||||
driverTable->depth2 = DRIVER_FULL_POWER_ON;
|
||||
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->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->depth1 = 1;
|
||||
driverTable->depth2 = 1;
|
||||
driverTable->depth3 = 1;
|
||||
driverTable->overDeep1 = 1;
|
||||
driverTable->overDeep2 = 1;
|
||||
driverTable->ctd1 = 1;
|
||||
driverTable->ctd2 = 1;
|
||||
driverTable->soundVeloc = 1;
|
||||
driverTable->commMast = 1;
|
||||
driverTable->ins = 1;
|
||||
driverTable->ntp = 1;
|
||||
driverTable->inputWaterSensor1 = 1;
|
||||
driverTable->inputWaterSensor2 = 1;
|
||||
driverTable->inputWaterSensor3 = 1;
|
||||
|
||||
// 所有负载设备关机
|
||||
driverTable->photoSensor = DRIVER_POWER_OFF;
|
||||
driverTable->electSensor = DRIVER_POWER_OFF;
|
||||
driverTable->launchControler = DRIVER_POWER_OFF;
|
||||
driverTable->sideSonar = DRIVER_POWER_OFF;
|
||||
driverTable->buoyage = DRIVER_POWER_OFF;
|
||||
driverTable->photoSensor = 0;
|
||||
driverTable->electSensor = 0;
|
||||
driverTable->launchControler = 0;
|
||||
driverTable->sideSonar = 0;
|
||||
driverTable->buoyage = 0;
|
||||
|
||||
// 打开必要的执行机构
|
||||
// 关闭非必要的执行机构
|
||||
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->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->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;
|
||||
driverTable->sternRudderServo4 = DRIVER_FULL_POWER_ON;
|
||||
driverTable->thruster = DRIVER_FULL_POWER_ON;
|
||||
driverTable->bowThrow = DRIVER_FULL_POWER_ON;
|
||||
driverTable->sternThrow = DRIVER_FULL_POWER_ON;
|
||||
driverTable->bowCover1 = 0;
|
||||
driverTable->bowCover2 = 0;
|
||||
driverTable->bowCover3 = 0;
|
||||
driverTable->bowCover4 = 0;
|
||||
driverTable->bowCover5 = 0;
|
||||
driverTable->bowCover6 = 0;
|
||||
driverTable->bowRudderDeploy = 1;
|
||||
driverTable->bowRudderServo1 = 1;
|
||||
driverTable->bowRudderServo2 = 1;
|
||||
driverTable->bowWaterlnet1 = 0;
|
||||
driverTable->bowWaterlnet2 = 0;
|
||||
driverTable->bowWaterlnet3 = 0;
|
||||
driverTable->bowWaterlnet4 = 0;
|
||||
driverTable->bowWaterlnet5 = 0;
|
||||
driverTable->bowWaterlnet6 = 0;
|
||||
driverTable->bowWaterlnet7 = 0;
|
||||
driverTable->bowWaterlnet8 = 0;
|
||||
driverTable->waterInject = 0;
|
||||
driverTable->mastLiftingServo = 1;
|
||||
driverTable->buoyancyAdjust1 = 1;
|
||||
driverTable->buoyancyAdjust2 = 1;
|
||||
driverTable->buoyancyAdjust3 = 1;
|
||||
driverTable->buoyancyAdjust4 = 1;
|
||||
driverTable->buoyancyAdjust5 = 1;
|
||||
driverTable->sternRudderServo1 = 1;
|
||||
driverTable->sternRudderServo2 = 1;
|
||||
driverTable->sternRudderServo3 = 1;
|
||||
driverTable->sternRudderServo4 = 1;
|
||||
driverTable->thruster = 1;
|
||||
driverTable->bowThrow = 1;
|
||||
driverTable->sternThrow = 1;
|
||||
}
|
||||
|
||||
|
||||
@@ -668,70 +667,69 @@ std::string Driver::saveDriverTableToJson(const DriverTable* driverTable)
|
||||
Json::Value root;
|
||||
|
||||
// 添加所有成员到json
|
||||
root["depth1"] = driverTable->depth1;
|
||||
root["depth2"] = driverTable->depth2;
|
||||
root["depth3"] = driverTable->depth3;
|
||||
root["overDeep1"] = driverTable->overDeep1;
|
||||
root["overDeep2"] = driverTable->overDeep2;
|
||||
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;
|
||||
root["singleBeamSonar4"] = driverTable->singleBeamSonar4;
|
||||
root["singleBeamSonar5"] = driverTable->singleBeamSonar5;
|
||||
root["singleBeamSonar6"] = driverTable->singleBeamSonar6;
|
||||
root["singleBeamSonar7"] = driverTable->singleBeamSonar7;
|
||||
root["singleBeamSonar8"] = driverTable->singleBeamSonar8;
|
||||
root["forwardSonar"] = driverTable->forwardSonar;
|
||||
root["DVL"] = driverTable->DVL;
|
||||
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["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["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;
|
||||
root["sternRudderServo4"] = driverTable->sternRudderServo4;
|
||||
root["thruster"] = driverTable->thruster;
|
||||
root["bowThrow"] = driverTable->bowThrow;
|
||||
root["sternThrow"] = driverTable->sternThrow;
|
||||
root["photoSensor"] = driverTable->photoSensor;
|
||||
root["electSensor"] = driverTable->electSensor;
|
||||
root["launchControler"] = driverTable->launchControler;
|
||||
root["sideSonar"] = driverTable->sideSonar;
|
||||
root["buoyage"] = driverTable->buoyage;
|
||||
root["depth1_uni8"] = driverTable->depth1;
|
||||
root["depth2_uni8"] = driverTable->depth2;
|
||||
root["depth3_uni8"] = driverTable->depth3;
|
||||
root["overDeep1_uni8"] = driverTable->overDeep1;
|
||||
root["overDeep2_uni8"] = driverTable->overDeep2;
|
||||
root["ctd1_uni8"] = driverTable->ctd1;
|
||||
root["ctd2_uni8"] = driverTable->ctd2;
|
||||
root["soundVeloc_uni8"] = driverTable->soundVeloc;
|
||||
root["commMast_uni8"] = driverTable->commMast;
|
||||
root["ins_uni8"] = driverTable->ins;
|
||||
root["ntp_uni8"] = driverTable->ntp;
|
||||
root["inputWaterSensor1_uni8"] = driverTable->inputWaterSensor1;
|
||||
root["inputWaterSensor2_uni8"] = driverTable->inputWaterSensor2;
|
||||
root["inputWaterSensor3_uni8"] = driverTable->inputWaterSensor3;
|
||||
|
||||
root["singleBeamSonar1_uni8"] = driverTable->singleBeamSonar1;
|
||||
root["singleBeamSonar2_uni8"] = driverTable->singleBeamSonar2;
|
||||
root["singleBeamSonar3_uni8"] = driverTable->singleBeamSonar3;
|
||||
root["singleBeamSonar4_uni8"] = driverTable->singleBeamSonar4;
|
||||
root["singleBeamSonar5_uni8"] = driverTable->singleBeamSonar5;
|
||||
root["singleBeamSonar6_uni8"] = driverTable->singleBeamSonar6;
|
||||
root["singleBeamSonar7_uni8"] = driverTable->singleBeamSonar7;
|
||||
root["singleBeamSonar8_uni8"] = driverTable->singleBeamSonar8;
|
||||
root["forwardSonar_uni8"] = driverTable->forwardSonar;
|
||||
root["DVL_uni8"] = driverTable->DVL;
|
||||
root["lowFreqSonar_uni8"] = driverTable->lowFreqSonar;
|
||||
root["USBL_uni8"] = driverTable->USBL;
|
||||
root["bowCover1_uni8"] = driverTable->bowCover1;
|
||||
root["bowCover2_uni8"] = driverTable->bowCover2;
|
||||
root["bowCover3_uni8"] = driverTable->bowCover3;
|
||||
root["bowCover4_uni8"] = driverTable->bowCover4;
|
||||
root["bowCover5_uni8"] = driverTable->bowCover5;
|
||||
root["bowCover6_uni8"] = driverTable->bowCover6;
|
||||
root["bowRudderDeploy_uni8"] = driverTable->bowRudderDeploy;
|
||||
root["bowRudderServo1_uni8"] = driverTable->bowRudderServo1;
|
||||
root["bowRudderServo2_uni8"] = driverTable->bowRudderServo2;
|
||||
root["bowWaterlnet1_uni8"] = driverTable->bowWaterlnet1;
|
||||
root["bowWaterlnet2_uni8"] = driverTable->bowWaterlnet2;
|
||||
root["bowWaterlnet3_uni8"] = driverTable->bowWaterlnet3;
|
||||
root["bowWaterlnet4_uni8"] = driverTable->bowWaterlnet4;
|
||||
root["bowWaterlnet5_uni8"] = driverTable->bowWaterlnet5;
|
||||
root["bowWaterlnet6_uni8"] = driverTable->bowWaterlnet6;
|
||||
root["bowWaterlnet7_uni8"] = driverTable->bowWaterlnet7;
|
||||
root["bowWaterlnet8_uni8"] = driverTable->bowWaterlnet8;
|
||||
root["waterInject_uni8"] = driverTable->waterInject;
|
||||
root["mastLiftingServo_uni8"] = driverTable->mastLiftingServo;
|
||||
root["buoyancyAdjust1_uni8"] = driverTable->buoyancyAdjust1;
|
||||
root["buoyancyAdjust2_uni8"] = driverTable->buoyancyAdjust2;
|
||||
root["buoyancyAdjust3_uni8"] = driverTable->buoyancyAdjust3;
|
||||
root["buoyancyAdjust4_uni8"] = driverTable->buoyancyAdjust4;
|
||||
root["buoyancyAdjust5_uni8"] = driverTable->buoyancyAdjust5;
|
||||
root["sternRudderServo1_uni8"] = driverTable->sternRudderServo1;
|
||||
root["sternRudderServo2_uni8"] = driverTable->sternRudderServo2;
|
||||
root["sternRudderServo3_uni8"] = driverTable->sternRudderServo3;
|
||||
root["sternRudderServo4_uni8"] = driverTable->sternRudderServo4;
|
||||
root["thruster_uni8"] = driverTable->thruster;
|
||||
root["bowThrow_uni8"] = driverTable->bowThrow;
|
||||
root["sternThrow_uni8"] = driverTable->sternThrow;
|
||||
root["photoSensor_uni8"] = driverTable->photoSensor;
|
||||
root["electSensor_uni8"] = driverTable->electSensor;
|
||||
root["launchControler_uni8"] = driverTable->launchControler;
|
||||
root["sideSonar_uni8"] = driverTable->sideSonar;
|
||||
root["buoyage_uni8"] = driverTable->buoyage;
|
||||
return root.toStyledString();
|
||||
}
|
||||
std::string Driver::getDriverTableJson()
|
||||
|
||||
@@ -423,6 +423,7 @@ namespace PMMode {
|
||||
//工况定义
|
||||
namespace WorkCondition {
|
||||
enum Type : unsigned char {
|
||||
CHANING = 0, // 工况切换中
|
||||
STANDBY = 1, // 待机工况
|
||||
SHORE_BASED_READY = 2, // 岸基备航
|
||||
WATER_BASED_READY = 3, // 水中备航
|
||||
@@ -509,5 +510,57 @@ struct DeviceSwitchCmd
|
||||
int cmd;
|
||||
};
|
||||
|
||||
namespace FaultEnable {
|
||||
enum Type : bool {
|
||||
BasicNavigationFault_1 = true, // 使能故障
|
||||
BasicNavigationFault_2 = false,
|
||||
BasicNavigationFault_3 = false,
|
||||
BasicNavigationFault_4 = false,
|
||||
BasicNavigationFault_5 = false,
|
||||
BasicNavigationFault_6 = false,
|
||||
BasicNavigationFault_7 = false,
|
||||
BasicNavigationFault_8 = false,
|
||||
BasicNavigationFault_9 = false,
|
||||
BasicNavigationFault_10 = false,
|
||||
|
||||
ExtendedNavigationFault_1 = false, // 使能故障
|
||||
ExtendedNavigationFault_2 = false,
|
||||
ExtendedNavigationFault_3 = false,
|
||||
ExtendedNavigationFault_4 = false,
|
||||
|
||||
ObstacleAvoidanceFault_1 = false, // 使能故障
|
||||
ObstacleAvoidanceFault_2 = false,
|
||||
ObstacleAvoidanceFault_3 = false,
|
||||
|
||||
BuoyancyControlFault_1 = false, // 使能故障
|
||||
BuoyancyControlFault_2 = false,
|
||||
BuoyancyControlFault_3 = false,
|
||||
BuoyancyControlFault_4 = false,
|
||||
|
||||
CommunicationSystemFault_1 = false, // 使能故障
|
||||
CommunicationSystemFault_2 = false,
|
||||
CommunicationSystemFault_3 = false,
|
||||
|
||||
PayloadSystemFault_1 = false, // 使能故障
|
||||
PayloadSystemFault_2 = false,
|
||||
PayloadSystemFault_3 = false,
|
||||
PayloadSystemFault_4 = false,
|
||||
PayloadSystemFault_5 = false,
|
||||
PayloadSystemFault_6 = false,
|
||||
PayloadSystemFault_7 = false,
|
||||
|
||||
EmergencySystemFault_1 = false, // 使能故障
|
||||
EmergencySystemFault_2 = false,
|
||||
EmergencySystemFault_3 = false,
|
||||
EmergencySystemFault_4 = false,
|
||||
EmergencySystemFault_5 = false,
|
||||
EmergencySystemFault_6 = false,
|
||||
|
||||
SensorSystemFault_1 = false, // 使能故障
|
||||
SensorSystemFault_2 = false,
|
||||
SensorSystemFault_3 = false,
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user