ARCS SDK API  0.24.0
system_info.h
浏览该文件的文档.
1 /** @file system_info.h
2  * @brief 获取系统信息接口,如接口板的版本号、示教器软件的版本号
3  */
4 #ifndef AUBO_SDK_SYSTEM_INFO_INTERFACE_H
5 #define AUBO_SDK_SYSTEM_INFO_INTERFACE_H
6 
7 #include <stdint.h>
8 #include <string>
9 #include <memory>
10 
11 #include <aubo/global_config.h>
12 
13 namespace arcs {
14 namespace common_interface {
15 
16 class ARCS_ABI_EXPORT SystemInfo
17 {
18 public:
19  SystemInfo();
20  virtual ~SystemInfo();
21 
22  /**
23  * 获取控制器软件版本号
24  *
25  * @return 返回控制器软件版本号
26  *
27  * @par Python函数原型
28  * getControlSoftwareVersionCode(self: pyaubo_sdk.SystemInfo) -> int
29  *
30  * @par Lua函数原型
31  * getControlSoftwareVersionCode() -> number
32  *
33  * @par C++示例
34  * @code
35  * int control_version =
36  * rpc_cli->getSystemInfo()->getControlSoftwareVersionCode();
37  * @endcode
38  *
39  * @par JSON-RPC请求示例
40  * {"jsonrpc":"2.0","method":"SystemInfo.getControlSoftwareVersionCode","params":[],"id":1}
41  *
42  * @par JSON-RPC响应示例
43  * {"id":1,"jsonrpc":"2.0","result":28003}
44  *
45  */
46  int getControlSoftwareVersionCode();
47 
48  /**
49  * 获取完整控制器软件版本号
50  *
51  * @return 返回完整控制器软件版本号
52  *
53  * @par Python函数原型
54  * getControlSoftwareFullVersion(self: pyaubo_sdk.SystemInfo) -> str
55  *
56  * @par Lua函数原型
57  * getControlSoftwareFullVersion() -> string
58  *
59  * @par C++示例
60  * @code
61  * std::string control_version =
62  * rpc_cli->getSystemInfo()->getControlSoftwareFullVersion();
63  * @endcode
64  *
65  * @par JSON-RPC请求示例
66  * {"jsonrpc":"2.0","method":"SystemInfo.getControlSoftwareFullVersion","params":[],"id":1}
67  *
68  * @par JSON-RPC响应示例
69  * {"id":1,"jsonrpc":"2.0","result":"0.31.0-alpha.16+20alc76"}
70  *
71  */
72  std::string getControlSoftwareFullVersion();
73 
74  /**
75  * 获取接口版本号
76  *
77  * @return 返回接口版本号
78  *
79  * @par Python函数原型
80  * getInterfaceVersionCode(self: pyaubo_sdk.SystemInfo) -> int
81  *
82  * @par Lua函数原型
83  * getInterfaceVersionCode() -> number
84  *
85  * @par C++示例
86  * @code
87  * int interface_version =
88  * rpc_cli->getSystemInfo()->getInterfaceVersionCode();
89  * @endcode
90  *
91  * @par JSON-RPC请求示例
92  * {"jsonrpc":"2.0","method":"SystemInfo.getInterfaceVersionCode","params":[],"id":1}
93  *
94  * @par JSON-RPC响应示例
95  * {"id":1,"jsonrpc":"2.0","result":22003}
96  *
97  */
98  int getInterfaceVersionCode();
99 
100  /**
101  * 获取控制器软件构建时间
102  *
103  * @return 返回控制器软件构建时间
104  *
105  * @par Python函数原型
106  * getControlSoftwareBuildDate(self: pyaubo_sdk.SystemInfo) -> str
107  *
108  * @par Lua函数原型
109  * getControlSoftwareBuildDate() -> string
110  *
111  * @par C++示例
112  * @code
113  * std::string build_date =
114  * rpc_cli->getSystemInfo()->getControlSoftwareBuildDate();
115  * @endcode
116  *
117  * @par JSON-RPC请求示例
118  * {"jsonrpc":"2.0","method":"SystemInfo.getControlSoftwareBuildDate","params":[],"id":1}
119  *
120  * @par JSON-RPC响应示例
121  * {"id":1,"jsonrpc":"2.0","result":"2024-3-5 07:03:20"}
122  *
123  */
124  std::string getControlSoftwareBuildDate();
125 
126  /**
127  * 获取控制器软件git版
128  *
129  * @return 返回控制器软件git版本
130  *
131  * @par Python函数原型
132  * getControlSoftwareVersionHash(self: pyaubo_sdk.SystemInfo) -> str
133  *
134  * @par Lua函数原型
135  * getControlSoftwareVersionHash() -> string
136  *
137  * @par C++示例
138  * @code
139  * std::string git_version =
140  * rpc_cli->getSystemInfo()->getControlSoftwareVersionHash();
141  * @endcode
142  *
143  * @par JSON-RPC请求示例
144  * {"jsonrpc":"2.0","method":"SystemInfo.getControlSoftwareVersionHash","params":[],"id":1}
145  *
146  * @par JSON-RPC响应示例
147  * {"id":1,"jsonrpc":"2.0","result":"fa4f64a"}
148  *
149  */
150  std::string getControlSoftwareVersionHash();
151 
152  /**
153  * 获取系统时间(软件启动时间 ns 纳秒)
154  *
155  * @return 返回系统时间(软件启动时间 ns 纳秒)
156  *
157  * @par Python函数原型
158  * getControlSystemTime(self: pyaubo_sdk.SystemInfo) -> int
159  *
160  * @par Lua函数原型
161  * getControlSystemTime() -> number
162  *
163  * @par C++示例
164  * @code
165  * std::string system_time =
166  * rpc_cli->getSystemInfo()->getControlSystemTime();
167  * @endcode
168  *
169  * @par JSON-RPC请求示例
170  * {"jsonrpc":"2.0","method":"SystemInfo.getControlSystemTime","params":[],"id":1}
171  *
172  * @par JSON-RPC响应示例
173  * {"id":1,"jsonrpc":"2.0","result":9287799079682}
174  *
175  */
176  uint64_t getControlSystemTime();
177 
178 protected:
179  void *d_;
180 };
181 
182 using SystemInfoPtr = std::shared_ptr<SystemInfo>;
183 
184 // clang-format off
185 #define SystemInfo_DECLARES \
186  _FUNC(SystemInfo, 0, getControlSoftwareVersionCode) \
187  _FUNC(SystemInfo, 0, getControlSoftwareFullVersion) \
188  _FUNC(SystemInfo, 0, getInterfaceVersionCode) \
189  _FUNC(SystemInfo, 0, getControlSoftwareBuildDate) \
190  _FUNC(SystemInfo, 0, getControlSoftwareVersionHash) \
191  _FUNC(SystemInfo, 0, getControlSystemTime)
192 // clang-format on
193 } // namespace common_interface
194 } // namespace arcs
195 #endif
std::shared_ptr< SystemInfo > SystemInfoPtr
Definition: system_info.h:182
Definition: aubo_api.h:17