One Framework 0.1.0
RoboMaster嵌入式框架“一键”解决方案,为你的“创意”服务。
载入中...
搜索中...
未找到
PrtsRegistrar.hpp
浏览该文件的文档.
1// Copyright (c) 2025. MoonFeather
2// SPDX-License-Identifier: BSD-3-Clause
3
4#ifndef PRTSREGISTRAR_HPP
5#define PRTSREGISTRAR_HPP
6#include "PrtsRegistrarT.hpp"
7
8#define PRTS_COMMAND_T(UnitClass, MemFn, Desc, OptsT) \
9static OF::Prts::CommandRegistrarT<&UnitClass::MemFn, OptsT> \
10CONCAT(prts_reg_, MemFn){#UnitClass, #MemFn, Desc};
11
12#define PRTS_ELEMENT_T(UnitClass, ElemName, TypeStr, MinV, MaxV, GetterFn) \
13 static OF::Prts::ElementDesc \
14 CONCAT(_prts_elem_desc_,ElemName) { \
15 #UnitClass, #ElemName, TypeStr, MinV, MaxV, \
16 /* getter lambda */ \
17 [](const OF::Unit* u) -> std::string { \
18 auto* c = static_cast<const UnitClass*>(u); \
19 return std::to_string(c->GetterFn()); \
20 } \
21 }; \
22 static int CONCAT(_prts_elem_reg_,ElemName) = \
23 (OF::Prts::PrtsManager::registerElement(CONCAT(_prts_elem_desc_,ElemName)), 0);
24
25#endif //PRTSREGISTRAR_HPP