Ctrl-Z
一个多线程机器人运动控制强化学习部署框架
载入中...
搜索中...
未找到
z::AsyncLoggerWorker< SchedulerType, LogPrecision, Args > 模板类 参考

异步日志工人类型,用户可以通过这个工人类型来异步的实现记录数据的功能。 更多...

#include <AsyncLoggerWorker.hpp>

类 z::AsyncLoggerWorker< SchedulerType, LogPrecision, Args > 继承关系图:
z::AsyncLoggerWorker< SchedulerType, LogPrecision, Args > 的协作图:

Public 成员函数

 AsyncLoggerWorker (SchedulerType::Ptr scheduler, const nlohmann::json &root_cfg)
 创建一个异步日志工人类型
 
virtual ~AsyncLoggerWorker ()
 析构函数,虚函数,用于释放资源
 
virtual void TaskRun () override
 TaskRun方法,在每次任务队列循环中被调用,但是这个方法在这里没有实际的作用,因为数据记录通常发生在流水线的结尾,也就是在TaskCycleEnd方法中。
 
virtual void TaskCreate () override
 TaskCreate方法,在任务队列创建的时候会被调度器调用,这里用于初始化资源,打开文件流,生成表头,创建写入线程等。
 
virtual void TaskDestroy () override
 TaskDestroy方法,在任务队列删除的时候会被调度器调用
 
virtual void TaskCycleEnd () override
 TaskCycleEnd方法,在每次任务队列循环的结束会被调度器调用,用于将数据总线中的数据复制到数据队列中,供写入线程写入文件。
 
- Public 成员函数 继承自 z::AbstractWorker< SchedulerType >
 AbstractWorker (SchedulerType::Ptr scheduler, const nlohmann::json &cfg=nlohmann::json())
 构造一个抽象工人类型
 
void setScheduler (SchedulerType::Ptr scheduler)
 设置调度器的指针
 
virtual ~AbstractWorker ()
 析构函数,虚函数,用于释放资源
 
virtual void TaskCycleBegin ()
 TaskCycleBegin方法,在每次任务队列循环的开始会被调度器调用。
 
- Public 成员函数 继承自 z::ZObject
void PrintSplitLine (size_t length=60, char c='-')
 print a split line, default length is 60 and character is '-'
 

额外继承的成员函数

- Protected 属性 继承自 z::AbstractWorker< SchedulerType >
SchedulerType::Ptr Scheduler = nullptr
 调度器的指针,用户可以通过这个指针来获取一些全局的数据, 比如当前任务的时间戳,前级工人的输出数据等,也可以通过这个指针来设置一些全局的数据。
 

详细描述

template<typename SchedulerType, typename LogPrecision, CTSPair ... Args>
class z::AsyncLoggerWorker< SchedulerType, LogPrecision, Args >

异步日志工人类型,用户可以通过这个工人类型来异步的实现记录数据的功能。

异步日志工人类型,用户可以通过这个工人类型来异步的实现记录数据的功能。 这个工人类型的优点是可以异步的记录数据,不会阻塞主线程,适用于一些需要记录数据的场景。 比如需要记录一些传感器的数据,或者需要记录一些模型的输出数据。同时,用户可以通过配置文件来配置日志的路径和写入频率。 所有的数据都会被记录到一个csv文件中,用户可以通过这个文件来查看数据。

config.json配置文件示例:

{
"Workers": {
"AsyncLogger": {
"LogPath": "./log/", //日志文件的路径
"WriteBackFrequency": 1000 //日志的写入频率,单位为ms
}
}
}
模板参数
SchedulerType调度器类型
LogPrecision日志精度,用户可以通过这个参数来指定日志的精度,比如可以指定为float或者double
Args一个或者多个CTSPair类型的模板参数,用户可以通过这个参数来指定需要记录的数据的名称和类型, 请注意这些数据类型必须是在调度器的数据总线中注册过的数据类型。在这里记录的数据类型将会自动被正确记录并保存在CSV中。

构造及析构函数说明

◆ AsyncLoggerWorker()

template<typename SchedulerType, typename LogPrecision, CTSPair ... Args>
z::AsyncLoggerWorker< SchedulerType, LogPrecision, Args >::AsyncLoggerWorker ( SchedulerType::Ptr scheduler,
const nlohmann::json & root_cfg )
inline

创建一个异步日志工人类型

参数
scheduler调度器的指针
root_cfg配置文件

成员函数说明

◆ TaskCreate()

template<typename SchedulerType, typename LogPrecision, CTSPair ... Args>
virtual void z::AsyncLoggerWorker< SchedulerType, LogPrecision, Args >::TaskCreate ( )
inlineoverridevirtual

TaskCreate方法,在任务队列创建的时候会被调度器调用,这里用于初始化资源,打开文件流,生成表头,创建写入线程等。

重载 z::AbstractWorker< SchedulerType > .

◆ TaskCycleEnd()

template<typename SchedulerType, typename LogPrecision, CTSPair ... Args>
virtual void z::AsyncLoggerWorker< SchedulerType, LogPrecision, Args >::TaskCycleEnd ( )
inlineoverridevirtual

TaskCycleEnd方法,在每次任务队列循环的结束会被调度器调用,用于将数据总线中的数据复制到数据队列中,供写入线程写入文件。

重载 z::AbstractWorker< SchedulerType > .

◆ TaskDestroy()

template<typename SchedulerType, typename LogPrecision, CTSPair ... Args>
virtual void z::AsyncLoggerWorker< SchedulerType, LogPrecision, Args >::TaskDestroy ( )
inlineoverridevirtual

TaskDestroy方法,在任务队列删除的时候会被调度器调用

重载 z::AbstractWorker< SchedulerType > .

◆ TaskRun()

template<typename SchedulerType, typename LogPrecision, CTSPair ... Args>
virtual void z::AsyncLoggerWorker< SchedulerType, LogPrecision, Args >::TaskRun ( )
inlineoverridevirtual

TaskRun方法,在每次任务队列循环中被调用,但是这个方法在这里没有实际的作用,因为数据记录通常发生在流水线的结尾,也就是在TaskCycleEnd方法中。

实现了 z::AbstractWorker< SchedulerType >.


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