GKD.RoboCtrl
载入中...
搜索中...
未找到
roboctrl::io::can类 参考

CAN 设备对象,支持根据 ID 分发回调。 更多...

详细描述

CAN 设备对象,支持根据 ID 分发回调。

在文件 can.h24 行定义.

#include <can.h>

类 roboctrl::io::can 继承关系图:
roboctrl::io::keyed_io_base< std::uint32_t > roboctrl::log::logable< can > roboctrl::utils::immovable_base roboctrl::utils::not_copyable_base

struct  info_type
 CAN 初始化参数。 更多...
 

Public 类型

using key_type = std::uint32_t
 

Public 成员函数

 can (const info_type &info)
 打开 CAN 设备。
 
awaitable< voidsend (byte_span data)
 发送裸帧。
 
awaitable< voidsend (can_id_type id, byte_span data)
 发送带 CAN ID 的帧。
 
awaitable< voidtask ()
 接收循环任务。
 
std::string desc () const
 
- Public 成员函数 继承自 roboctrl::io::keyed_io_base< std::uint32_t >
void on_data (const std::uint32_t &key, callback_fn< byte_span > auto fn, size_t size=0)
 注册指定 key 的回调。
 
void on_data (const std::uint32_t &key, Fn &&fn)
 注册平凡类型包的回调。
 
- 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 成员函数 继承自 roboctrl::io::keyed_io_base< std::uint32_t >
void dispatch (const std::uint32_t &key, byte_span data)
 将数据派发给对应 key 的回调。
 
size_t package_size (const std::uint32_t &key)
 
- Protected 成员函数 继承自 roboctrl::log::logable< can >
void log (log_level level, std::format_string< Args... > fmt, Args &&...args) const
 输出日志
 
void log_debug (std::format_string< Args... > fmt, Args &&...args) const
 输出debug日志
 
void log_info (std::format_string< Args... > fmt, Args &&...args) const
 输出info日志
 
void log_warn (std::format_string< Args... > fmt, Args &&...args) const
 输出warn日志
 
void log_error (std::format_string< Args... > fmt, Args &&...args) const
 输出error日志
 

成员类型定义说明

◆ key_type

using roboctrl::io::can::key_type = std::uint32_t

在文件 can.h38 行定义.

构造及析构函数说明

◆ can()

can::can ( const info_type info)

打开 CAN 设备。

在文件 can.cpp40 行定义.

引用了 roboctrl::async::io_context(), roboctrl::log::logable< can >::log_info(), roboctrl::async::spawn() , 以及 task().

◆ ~can()

can::~can ( )

在文件 can.cpp70 行定义.

成员函数说明

◆ desc()

std::string roboctrl::io::can::desc ( ) const
inline

在文件 can.h62 行定义.

◆ send() [1/2]

roboctrl::awaitable< void > can::send ( byte_span  data)

发送裸帧。

在文件 can.cpp88 行定义.

◆ send() [2/2]

roboctrl::awaitable< void > can::send ( can_id_type  id,
byte_span  data 
)

发送带 CAN ID 的帧。

在文件 can.cpp96 行定义.

引用了 roboctrl::log::logable< can >::log_debug().

◆ task()

roboctrl::awaitable< void > can::task ( )

接收循环任务。

在文件 can.cpp74 行定义.

引用了 roboctrl::io::keyed_io_base< std::uint32_t >::dispatch().

被这些函数引用 can().


该类的文档由以下文件生成: