EmxParam.hpp
1 //
2 // Created by xiong on 2022/3/2.
3 //
4 
5 #ifndef EMX_EmxParam_HPP
6 #define EMX_EmxParam_HPP
7 
8 #include <json/json.h>
9 #include <functional>
10 #include "core/EmxTypeDef.hpp"
11 #include "core/EmxMsg.hpp"
12 
13 namespace Emx {
18  class Param {
19  public:
24  Param(const char *name);
25 
30  Param(const std::string &name);
31 
37  ErrCodeE Set(const Json::Value &json);
38 
44  ErrCodeE Get(Json::Value &json);
45 
51  ErrCodeE GetDefault(Json::Value &json);
52 
58 
64 
65  private:
66  char m_name[EMX_MAX_PATH_SIZE];
67  };
68 
70  class ParamSetEvent {
71  public:
72  struct ParamMsg{
73  std::string name;//配置文件名称
74  std::string data;//配置文件内容
75  };
76 
82  using OnParamMsgLinkCallback = std::function<void(ParamMsg &msg)>;
83  public:
84 
86  m_inited = false;
87  }
88 
90  using OnConnected = std::function<void()>;
91 
100  void Create(EuvLoop &loop, char *buffer, int size,
101  OnParamMsgLinkCallback cbLink, OnConnected cbConnected = nullptr);
102 
104  void Destroy();
105 
106  private:
107  void OnMsgRecv(uint32_t topic, const char *data, int32_t size);
108 
109  private:
110  bool m_inited;
111  OnParamMsgLinkCallback m_cbLink;
113  };
115 }
116 #endif //EMX_EmxParam_HPP
117 
实现多路复用循环的主体,所有基于EuvLoop的事件都应绑定到一个EuvLoop上
Definition: EuvLoop.hpp:18
用于Topic的异步订阅
Definition: MsgTopic.hpp:175
用于监听参数设置事件
Definition: EmxParam.hpp:70
void Destroy()
销毁监听
std::function< void(ParamMsg &msg)> OnParamMsgLinkCallback
消息回调
Definition: EmxParam.hpp:82
ParamSetEvent()
Definition: EmxParam.hpp:85
void Create(EuvLoop &loop, char *buffer, int size, OnParamMsgLinkCallback cbLink, OnConnected cbConnected=nullptr)
创建监听
std::function< void()> OnConnected
连接到CoreServer时的回调
Definition: EmxParam.hpp:90
关于系统需要持久化保存的参数的相关操作
Definition: EmxParam.hpp:18
Param(const char *name)
构造函数
static ErrCodeE ResetAllToFactory()
将设备的所有参数恢复为默认值(除resetReserved.json中声明保留的文件)
ErrCodeE Set(const Json::Value &json)
保存参数
ErrCodeE Reset()
将存储的参数恢复为默认值
Param(const std::string &name)
构造函数
ErrCodeE Get(Json::Value &json)
获取参数
ErrCodeE GetDefault(Json::Value &json)
获取默认参数
ErrCodeE
错误码定义
Definition: EmxTypeDef.hpp:29
Definition: EmxGpio.hpp:10
Definition: EmxParam.hpp:72
std::string name
Definition: EmxParam.hpp:73
std::string data
Definition: EmxParam.hpp:74