GKD.RoboCtrl
载入中...
搜索中...
未找到
super_cap.h
1#pragma once
2#include <cstdint>
3
4#include "core/async.hpp"
5#include "device/base.hpp"
6#include "utils/singleton.hpp"
7
8namespace roboctrl::device{
12class super_cap:public device_base,public utils::singleton_base<super_cap>,public logable<super_cap> {
13public:
14 struct info_type{
15 using owner_type = super_cap;
16 std::string can_name;
17 };
18 inline std::string desc()const{return "super cap";}
19
20 bool init(const info_type& info);
21
29
33 inline float chassis_power()const{return chassis_power_;}
37 inline uint16_t chassis_power_limit()const{return chassis_power_limit_;}
38
42 inline uint8_t energy()const{return energy_;}
43private:
44 info_type info_;
45 float chassis_power_;
46 uint16_t chassis_power_limit_;
47 uint8_t energy_;
48};
49
50static_assert(utils::singleton<super_cap>);
51
52
53};
异步任务上下文组件。
float chassis_power() const
当前底盘功率
Definition super_cap.h:33
awaitable< void > set(bool enable, uint16_t power_limit)
设置超电状态
Definition super_cap.cpp:29
uint16_t chassis_power_limit() const
当前功率限制
Definition super_cap.h:37
uint8_t energy() const
当前超电能量
Definition super_cap.h:42
用于提供日志功能的辅助基类 通过CRTP模式实现,要求派生类实现desc()方法以提供描述信息,在继承时传入派生类自身类型作为模板参数。 继承这个类后,派生类可以方便地使用log_debug、log_i...
Definition logger.h:178
提供单例模式的单例基类
Definition singleton.hpp:19
设备抽象基类与通用概念。
asio::awaitable< T > awaitable
协程任务类型。
Definition async.hpp:42
设备模块
Definition base.hpp:25
设备基础类,提供判断设备离线的基础功能
Definition base.hpp:38