Github: https://github.com/jtttl/maes

Github: https://github.com/jtttl/maes
MAES = Microservice Architecture on Embedded System.
MAES是一个在嵌入式系统上运行的微服务框架;
MAES 提供给你的软件或系统如下能力:
将后端的微服务架构思想引入嵌入式行业:

#include
#include
// maes头文件包含
#include "MaesService.h"
// 创建一个class并继承maes::ServiceHandler
class MqttService : public maes::ServiceHandler {
public:
MqttService() {}
virtual ~MqttService() {}
public:
// 设置日志存储位置
std::string getLogPath() override {
return "/tmp";
}
// 设置配置文件所在位置
std::string getConfigFile() override {
return "/home/config.json";
}
// 设置你的服务名
std::string getServiceName() override {
return "mqtt-service";
}
// 设置服务版本
std::string getVersion() {
return "1.2.3";
}
// maes框架内启动顺序1
void onInit() override {
// 使用日志
maeslog.debug("%s\n", __FUNCTION__);
}
// maes框架内启动顺序2
int initHal() override {
maeslog.debug("%s\n", __FUNCTION__);
// 初始化你的硬件外设
// beep_init();
// uart_init();
// nfc_init();
return 0;
}
// maes框架内启动顺序3
int initFml() override {
maeslog.debug("%s\n", __FUNCTION__);
// 初始化你的软件功能模块
// db_init();
// algorithm_init();
// encrypt_init();
return 0;
}
// maes框架内启动顺序4
int initAppl() override {
// 获取参数文件中的参数
const int val = framework().getConfig()["mqtt-service"]["val"].asInt();
// do something
// ...
// 主循环
while(1) {
// ...
}
return 0;
}
// maes退出时执行次函数
void onExit() override {
maeslog.debug("%s\n", __FUNCTION__);
}
};
int main(int argc, char const *argv[]) {
// 将上面创建的MqttService放入框架
maes::Framework f(std::make_shared<MqttService>());
// let's go
return f.run();
}
# 克隆仓库
$ git clone https://github.com/jtttl/maes
# 进入maes目录
cd maes
# 创建一个build目录
mkdir my_build
# 进入build目录
cd my_build
# 设置zmq库和头文件路径
cmake .. -DZMQ_LIB="..." -DZMQ_INC="..."
# 开始make
make