Files
H100PowerManger/src/bck/pPowerManger/upmsg/uPlan_taskStart.h
T
2026-01-19 21:52:26 +08:00

56 lines
1.8 KiB
C++

#ifndef UPPERCOMMMANAGER_H
#define UPPERCOMMMANAGER_H
#include <string>
#include "../pmSysvariable.h"
#include "../logc/loguru.hpp"
//决策消息
#define DB_TO_PM_MISSION "uPlan_taskStart_st"
class uPlan_taskStartMsg
{
private:
/* data */
public:
std::string key = "uPlan_taskStart_st";
uPlan_taskStartMsg(/* args */){};
~uPlan_taskStartMsg(){};
MissionState getMission(const std::string& key, const std::string& msg) {
MissionState mission{};
Json::Value root;
Json::CharReaderBuilder builder;
JSONCPP_STRING errs;
// 解析JSON字符串
std::istringstream stream(msg);
if (!Json::parseFromStream(builder, stream, &root, &errs)) {
std::cerr << "JSON解析失败: " << errs << std::endl;
LOG_F(WARNING, "JSON解析失败: %s", errs.c_str());
return mission;
}
// 提取taskType_str
if (root.isMember("taskType_str") && root["taskType_str"].isString()) {
mission.type = TaskType::fromString(root["taskType_str"].asString());
LOG_F(INFO, "taskType: %d", mission.type, root["taskType_str"].asString());
}
// 提取balanceEnabled_bool
if (root.isMember("balanceEnabled_bool") && root["balanceEnabled_bool"].isBool()) {
mission.enableBuoyancyAdjustment = root["balanceEnabled_bool"].asBool();
LOG_F(INFO, "balanceEnabled_bool: %d", mission.enableBuoyancyAdjustment);
}
// 提取bowRudderUnfold_bool
if (root.isMember("bowRudderUnfold_bool") && root["bowRudderUnfold_bool"].isBool()) {
mission.enableBowRudder = root["bowRudderUnfold_bool"].asBool();
LOG_F(INFO, "bowRudderUnfold_bool: %d", mission.enableBowRudder);
}
return mission;
};
};
#endif