|
GKD.RoboCtrl
RoboMaster Linux 电控:异步 IO、设备驱动与机器人控制
|
设备基础类,提供判断设备离线的基础功能 更多...
设备基础类,提供判断设备离线的基础功能
这个类主要提供判断设备是否离线的功能,设备离线的判断是基于心跳机制实现的。
设备类应当继承自这个类,并在适当的时候调用tick()方法来更新心跳时间。 如果设备在指定的离线超时时间内没有收到心跳,则认为设备离线。
此外,我们默认每个设备都有自己的task(),但有的设备可能没有,因此在这里提供一个空的task()实现。
#include <base.hpp>


Public 成员函数 | |
| device_base (const std::chrono::nanoseconds offline_timeout) | |
| bool | offline () const |
| 判断设备是否离线 | |
| void | tick () |
| 更新心跳时间 | |
| awaitable< void > | task () |
| 默认的task | |
Public 成员函数 继承自 roboctrl::utils::immovable_base | |
| immovable_base (immovable_base &&)=delete | |
| immovable_base & | operator= (immovable_base &&)=delete |
Public 成员函数 继承自 roboctrl::utils::not_copyable_base | |
| not_copyable_base (const not_copyable_base &)=delete | |
| not_copyable_base & | operator= (const not_copyable_base &)=delete |
Protected 属性 | |
| const std::chrono::nanoseconds | offline_timeout_ |
| 设备离线超时时间 | |
| std::chrono::nanoseconds | tick_time_ |
| 上次心跳时间 | |
| bool | terminated_ = false |
| roboctrl::device::device_base::device_base | ( | const std::chrono::nanoseconds | offline_timeout | ) |
|
inline |
判断设备是否离线
引用了 roboctrl::utils::now(), offline_timeout_ , 以及 tick_time_.
被这些函数引用 roboctrl::device::j6006::set_angle_speed(), roboctrl::device::dji_motor::set_current(), roboctrl::device::m9025::set_current(), roboctrl::ctrl::shoot::update() , 以及 roboctrl::device::gkd_sentry_gimbal::update().
|
inline |
|
inline |
更新心跳时间
引用了 roboctrl::utils::now() , 以及 tick_time_.
|
protected |
|
protected |
上次心跳时间