GKD.RoboCtrl
载入中...
搜索中...
未找到
roboctrl::device::device_base结构体 参考

设备基础类,提供判断设备离线的基础功能 更多...

详细描述

设备基础类,提供判断设备离线的基础功能

这个类主要提供判断设备是否离线的功能,设备离线的判断是基于心跳机制实现的。

设备类应当继承自这个类,并在适当的时候调用tick()方法来更新心跳时间。 如果设备在指定的离线超时时间内没有收到心跳,则认为设备离线。

此外,我们默认每个设备都有自己的task(),但有的设备可能没有,因此在这里提供一个空的task()实现。

在文件 base.hpp36 行定义.

#include <base.hpp>

类 roboctrl::device::device_base 继承关系图:
roboctrl::utils::immovable_base roboctrl::utils::not_copyable_base roboctrl::device::control_pad roboctrl::device::imu_base roboctrl::device::motor_base roboctrl::device::super_cap roboctrl::device::serial_imu roboctrl::device::M9025 roboctrl::device::dji_motor

Public 成员函数

 device_base (const std::chrono::nanoseconds offline_timeout)
 
bool offline ()
 判断设备是否离线
 
void tick ()
 更新心跳时间
 
awaitable< voidtask ()
 默认的task
 
- Public 成员函数 继承自 roboctrl::utils::immovable_base
 immovable_base (immovable_base &&)=delete
 
immovable_baseoperator= (immovable_base &&)=delete
 
- Public 成员函数 继承自 roboctrl::utils::not_copyable_base
 not_copyable_base (const not_copyable_base &)=delete
 
not_copyable_baseoperator= (const not_copyable_base &)=delete
 

Protected 属性

const std::chrono::nanoseconds offline_timeout_
 设备离线超时时间
 
std::chrono::nanoseconds tick_time_
 上次心跳时间
 
bool terminated_ = false
 

构造及析构函数说明

◆ device_base()

roboctrl::device::device_base::device_base ( const std::chrono::nanoseconds  offline_timeout)

在文件 base.cpp3 行定义.

成员函数说明

◆ offline()

bool roboctrl::device::device_base::offline ( )
inline

判断设备是否离线

返回
true 设备离线
false 设备在线

在文件 base.hpp55 行定义.

引用了 roboctrl::utils::now(), offline_timeout_ , 以及 tick_time_.

◆ task()

awaitable< void > roboctrl::device::device_base::task ( )
inline

◆ tick()

void roboctrl::device::device_base::tick ( )
inline

更新心跳时间

在文件 base.hpp60 行定义.

引用了 roboctrl::utils::now() , 以及 tick_time_.

类成员变量说明

◆ offline_timeout_

const std::chrono::nanoseconds roboctrl::device::device_base::offline_timeout_
protected

设备离线超时时间

在文件 base.hpp40 行定义.

被这些函数引用 offline().

◆ terminated_

bool roboctrl::device::device_base::terminated_ = false
protected

在文件 base.hpp45 行定义.

◆ tick_time_

std::chrono::nanoseconds roboctrl::device::device_base::tick_time_
protected
初始值:
{
utils::now() - (offline_timeout_ == std::chrono::nanoseconds::max() ? 0ns : offline_timeout_)
}
asio::awaitable< T > awaitable
协程任务类型。
Definition async.hpp:42
auto now()
记录程序启动后的纳秒级时间戳。
Definition utils.hpp:147
const std::chrono::nanoseconds offline_timeout_
设备离线超时时间
Definition base.hpp:40

上次心跳时间

在文件 base.hpp41 行定义.

被这些函数引用 offline() , 以及 tick().


该结构体的文档由以下文件生成: