Files
H100PowerManger/src/pPowerManger/UpperCommManager.h
T
2025-04-09 23:28:05 +08:00

70 lines
2.1 KiB
C++

#ifndef UPPER_COMM_MANAGER_H
#define UPPER_COMM_MANAGER_H
#include "MOOS/libMOOS/Thirdparty/AppCasting/AppCastingMOOSApp.h"
#include "pmSysvariable.h"
#include "driver.h"
#include "json/json.h"
#include <string>
#include <vector>
#include <map>
using namespace std;
#define VAR_TO_STR(var) #var
//能源管理反馈的消息
#define PM_TO_DB_STATE "uPower_pmState_st"
#define PM_TO_DB_CURRENTSTATE "uPower_currentState_st"
#define PM_TO_DB_DISSTATE "uPower_disSysState_st"
#define PM_TO_DB_LIBATSTATE "uPower_liBatState_st"
#define PM_TO_DB_FCSSTATE "uPower_fcsState_st"
#define PM_TO_DB_SUBDISCMD "uPower_secdistState_cmd"
#define PM_TO_DB_EQUIPMENTSTATE "uPower_equState_fb"
//控制消息
#define DB_TO_PM_MSCMD "uPower_sysState_cmd"
#define DB_TO_PM_EQUIPMENTCMD "uPower_equState_cmd"
#define DB_TO_PM_SUBDISSTATE "uDevice_secdistState_st"
//决策消息
#define DB_TO_PM_DEEPTH "uDevice_depth_st"
#define DB_TO_PM_MISSION "uPlan_taskStart_cmd"
class PowerManger; // 前向声明
class UpperCommManager {
public:
UpperCommManager(PowerManger* powerManager);
~UpperCommManager();
// 周期调用
void processPeriodicTasks();
// 处理上位机消息
bool processUpperMsg(const std::string& key, const std::string& msg);
// 生成系统报告
void buildSystemReport();
// 消息处理函数
const MSControlCmd getMasterControlCmd(const std::string& key, const std::string& msg);
const DriverTable getEquipmentCmd(const std::string& key, const std::string& msg);
const DriverTable getSubDisState(const std::string& key, const std::string& msg);
const int getDeepth(const std::string& key, const std::string& msg);
const std::string getCurrentEquState(DriverTable& driver);
const std::string getSubDisCmd(DriverTable& driver);
// 其他公共函数
string getTypeName(const string typeName);
bool saveStringToJsonFile(const string &strJson, const string &filePath);
private:
PowerManger* m_pm;
MSControlCmd m_msCmd;
Driver m_driver;
// 从JSON解析控制命令
bool parseControlCmdFromJson(MSControlCmd &cmd, const std::string &strJson);
};
#endif // UPPER_COMM_MANAGER_H