RMVL  2.4.0-dev
Robotic Manipulation and Vision Library
载入中...
搜索中...
未找到
数据 IO 与通信模块
数据 IO 与通信模块 的协作图:

专题

 进程间通信
 提供跨平台的同步异步 命名管道消息队列 通信功能
 串口通信
 提供跨平台的同步异步 串口 通信功能
 网络通信
 提供跨平台的同步异步 Socket 通信、HTTP 请求、HTTP Web 后端框架功能

概念

concept  rm::async::InvokableTask
 可调用的协程任务概念

class  rm::async::Promise< Tp >
 异步协程承诺 更多...
struct  rm::async::FinalAwaiter< Tp >
 final_suspend 等待器 更多...
class  rm::async::BasicPromise
 协程承诺基类,管理协程的生命周期和异常处理 更多...
class  rm::async::Promise< void >
 特化 void 类型的异步协程承诺 更多...
struct  rm::async::TaskAwaiter< Tp >
 协程任务等待器 更多...
class  rm::async::Task< Tp >
 保有 rm::async::Promise 的异步协程任务 更多...
class  rm::async::IOContext
 异步 I/O 执行上下文,负责管理 IO 事件循环和协程任务的调度 更多...
class  rm::async::AsyncIOAwaiter
 IO 事件异步等待器 更多...
class  rm::async::AsyncReadAwaiter
 通用异步读等待器,核心操作使用文件 I/O 系统调用的 readReadFile,使用者可以通过 更多...
class  rm::async::AsyncWriteAwaiter
 通用异步写等待器,核心操作使用文件 I/O 系统调用的 writeWriteFile,使用者可以通过 更多...
class  rm::async::Timer
 异步定时器 更多...
struct  rm::Translation
 移动位置信息 更多...
struct  rm::Rotation
 转动姿态信息 更多...
struct  rm::ImuData
 IMU 数据 更多...

类型定义

using rm::FileDescriptor = int
 文件描述符类型定义
using rm::async::IOContextRef = std::reference_wrapper<IOContext>
 异步 I/O 执行上下文左值引用包装器

函数

template<typename Callable, typename... Args>
requires InvokableTask<Callable, Args...>
void rm::async::co_spawn (IOContext &ctx, Callable &&fn, Args &&...args)
 在指定的执行上下文中生成并调度一个协程任务
std::ostream & rm::operator<< (std::ostream &os, const ImuData &data)
 重载 IMU 数据的输入输出流操作符
std::istream & rm::operator>> (std::istream &is, ImuData &data)
 重载 IMU 数据的输入输出流操作符
void rm::writeCorners (std::ostream &out, const std::vector< std::vector< std::array< float, 2 > > > &corners)
 导出角点数据
void rm::readCorners (std::istream &in, std::vector< std::vector< std::array< float, 2 > > > &corners)
 导入角点数据

变量

constexpr FileDescriptor rm::INVALID_FD = -1

详细描述

类型定义说明

◆ FileDescriptor

using rm::FileDescriptor = int

#include <rmvl/io/async.hpp>

文件描述符类型定义

◆ IOContextRef

using rm::async::IOContextRef = std::reference_wrapper<IOContext>

#include <rmvl/io/async.hpp>

异步 I/O 执行上下文左值引用包装器

函数说明

◆ co_spawn()

template<typename Callable, typename... Args>
requires InvokableTask<Callable, Args...>
void rm::async::co_spawn ( IOContext & ctx,
Callable && fn,
Args &&... args )
inline

#include <rmvl/io/async.hpp>

在指定的执行上下文中生成并调度一个协程任务

参数
[in]ctx执行上下文
[in]fn协程函数
[in]args协程函数参数
参见
函数调用图:

◆ operator<<()

std::ostream & rm::operator<< ( std::ostream & os,
const ImuData & data )
inline

#include <rmvl/io/util.hpp>

重载 IMU 数据的输入输出流操作符

// 使用示例
ImuData data1{}, data2{};
std::cout << data1 << data2 << std::endl;
IMU 数据
定义 util.hpp:49
参数
[in]os输出流对象
[in]data待写入的 IMU 数据
返回
输出流对象
函数调用图:

◆ operator>>()

std::istream & rm::operator>> ( std::istream & is,
ImuData & data )
inline

#include <rmvl/io/util.hpp>

重载 IMU 数据的输入输出流操作符

参数
[in]is输入流对象
[out]data读取出的 IMU 数据
返回
输入流对象
函数调用图:

◆ readCorners()

void rm::readCorners ( std::istream & in,
std::vector< std::vector< std::array< float, 2 > > > & corners )

#include <rmvl/io/util.hpp>

导入角点数据

  • 读取的文件形如以下内容
    1.9, 2.11,
    3.12, 4.13, 5.14, 6.15,
    ---
    7.16, 8.17,
    ---
  • 第一次调用 readCorners 时读取到的内容为 {(1.9, 2.11)} 和 {(3.12, 4.13), (5.14, 6.15)}
参数
[in]in输入流对象
[out]corners读取出的角点数据
示例
samples/tutorial_code/io/sample_read_corners.cpp.

◆ writeCorners()

void rm::writeCorners ( std::ostream & out,
const std::vector< std::vector< std::array< float, 2 > > > & corners )

#include <rmvl/io/util.hpp>

导出角点数据

  • corners 的整体写入到输出流对象的末尾
  • 文件内容可参见 readCorners
参数
[in]out输出流对象
[in]corners待写入的角点数据
示例
samples/tutorial_code/io/sample_write_corners.cpp.

变量说明

◆ INVALID_FD

FileDescriptor rm::INVALID_FD = -1
constexpr

#include <rmvl/io/async.hpp>