#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 #include #include 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