diff --git a/log 实训.docx b/log 实训.docx index 9e2f0ac..220e108 100644 Binary files a/log 实训.docx and b/log 实训.docx differ diff --git a/log 实训.md b/log 实训.md index a8b49db..f3e1059 100644 --- a/log 实训.md +++ b/log 实训.md @@ -16,7 +16,7 @@ ## px4 log使用 -### 代码添加log输出 +#### 代码添加log输出 在飞控开发过程中可以使用以下代码进行log调试,根据不同的错误级别在相应的部分插入相应的信息。不同的信息代表不同的情况,info一般用来表示重要功能完成了。warn表示发生异常但不影响系统使用,err代表使用已经影响到了系统的工作必须马上解决问题。 @@ -45,11 +45,53 @@ debug方式主要分仿真器调试和真机调试,一般都是先进行软件 ### 日志分析 -px4 的logger会把订阅的uorb消息记录成.ulg文件存在SD卡中. +#### logger - px4还有一个logger功能,默认情况下飞机解锁之后就会开始记录日志,飞机锁定之后停止记录日志.也可以在终端使用logger on手动开启.logger off停止记录.日志记录的主要内容为飞行数据和debug信息.记录的日志文件可以用于对飞机的系统和飞行性能的评估、调整和事故分析.日志的格式是ulog.记录的日志文件会存储成.ulg文件存在SD卡中.可以安装使用pyulog查看日志信息. -pyulog安装方法 + +px4 的logger会把订阅的uorb消息记录成.ulg文件存在SD卡中.logger可以订阅任何uorb消息并且可以进行配置选择需要的消息主题和频率.logger输出保存ulog文件也可以通过mavlink向客户端发送ulog数据.这两个后台任务可以同时进行. + +**logger实现** + +使用两个线程: + +- 主线程以固定速率运行(如果以-p参数启动的话,则轮询主题),并检查数据更新 +- 写入线程,将数据写入文件 + +两个线程之间有一个可配置大小的写入缓存区。 + +logger默认情况下飞机解锁之后就会开始记录日志,飞机锁定之后停止记录日志.也可以在终端使用logger on手动开启.logger off停止记录.日志记录的主要内容为飞行数据和debug信息.记录的日志文件可以用于对飞机的系统和飞行性能的评估、调整和事故分析.日志的格式是ulog.记录的日志文件会存储成.ulg文件存在SD卡中.可以安装使用pyulog查看日志信息. + +**logger 命令** + +``` +logger <命令> [参数...] + 命令: + start + [-m ] 后端模式 + 可选: file|mavlink|all, 缺省: all + [-e] 启动后立即开始记录,直到上锁(否则只在解锁后开始记录) + [-f] 记录直到关闭为止(包含 -e) + [-t] 使用日期/时间命名日志目录和文件 + [-r ] 记录速率,单位:Hz,值为0则不限速 + 缺省: 280 + [-b ] 记录缓存大小,单位:KiB + 缺省: 12 + [-q ] mavlink模式下uORB队列大小 + 缺省: 14 + [-p ] 轮询主题而不是以固定速率运行(记录速率和主题间隔将被忽略) + 可选: + + on 立即开始记录,覆盖解锁(日志系统必须在运行中) + + off 立即停止记录,覆盖锁定(日志系统必须在运行中) + + stop + + status 打印状态信息 +``` + +**pyulog安装方法** ```shell git clone https://github.com/PX4/pyulog.git