70 lines
2.1 KiB
C++
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
|