One Framework 0.1.0
RoboMaster嵌入式框架“一键”解决方案,为你的“创意”服务。
载入中...
搜索中...
未找到
PrtsManager.hpp
浏览该文件的文档.
1// Copyright (c) 2025. MoonFeather
2// SPDX-License-Identifier: BSD-3-Clause
3
4#ifndef PRTSMANAGER_HPP
5#define PRTSMANAGER_HPP
6#include <string_view>
7#include <vector>
8#include <functional>
9#include <zephyr/shell/shell.h>
11
12namespace OF::Prts
13{
14 enum class OptionType { INT, DOUBLE, STRING };
15
17 {
18 std::string_view name;
20 };
21
23 {
24 std::string_view unitName;
25 std::string_view cmdName;
26 std::string_view description;
27 std::vector<OptionDesc> options;
28 std::function<int(const shell*, int, char**)> handler;
29 };
30
31 using ElementGetter = std::function<std::string(const Unit*)>;
32
34 {
35 std::string_view unitName;
36 std::string_view elemName;
37 std::string_view type; // "button","slider","text"
38 double minVal;
39 double maxVal;
41 };
42
44 {
45 public:
46 static void registerCommand(const CommandDesc& d) { getCommands().push_back(d); };
47
48 static void registerElement(const ElementDesc& e) { getElements().push_back(e); };
49 static void initShell();
50
51 static std::vector<CommandDesc>& getCommands()
52 {
53 static std::vector<CommandDesc> cmds;
54 return cmds;
55 };
56
57 static std::vector<ElementDesc>& getElements()
58 {
59 static std::vector<ElementDesc> elems;
60 return elems;
61 };
62 };
63}
64
65#endif //PRTSMANAGER_HPP
定义 PrtsManager.hpp:44
static void registerCommand(const CommandDesc &d)
定义 PrtsManager.hpp:46
static void initShell()
定义 PrtsManager.cpp:209
static void registerElement(const ElementDesc &e)
定义 PrtsManager.hpp:48
static std::vector< CommandDesc > & getCommands()
定义 PrtsManager.hpp:51
static std::vector< ElementDesc > & getElements()
定义 PrtsManager.hpp:57
单元基类,定义了单元的基本行为和属性。
定义 Unit.hpp:46
定义 PrtsManager.hpp:13
std::function< std::string(const Unit *)> ElementGetter
定义 PrtsManager.hpp:31
OptionType
定义 PrtsManager.hpp:14
@ INT
定义 PrtsManager.hpp:14
@ STRING
定义 PrtsManager.hpp:14
@ DOUBLE
定义 PrtsManager.hpp:14
定义 PrtsManager.hpp:23
std::string_view description
定义 PrtsManager.hpp:26
std::function< int(const shell *, int, char **)> handler
定义 PrtsManager.hpp:28
std::string_view cmdName
定义 PrtsManager.hpp:25
std::string_view unitName
定义 PrtsManager.hpp:24
std::vector< OptionDesc > options
定义 PrtsManager.hpp:27
定义 PrtsManager.hpp:34
double maxVal
定义 PrtsManager.hpp:39
ElementGetter getter
定义 PrtsManager.hpp:40
double minVal
定义 PrtsManager.hpp:38
std::string_view elemName
定义 PrtsManager.hpp:36
std::string_view unitName
定义 PrtsManager.hpp:35
std::string_view type
定义 PrtsManager.hpp:37
定义 PrtsManager.hpp:17
std::string_view name
定义 PrtsManager.hpp:18
OptionType type
定义 PrtsManager.hpp:19