更新log
This commit is contained in:
parent
9da8577361
commit
ba2a2b7b81
BIN
log 实训.docx
BIN
log 实训.docx
Binary file not shown.
50
log 实训.md
50
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 <val>] 后端模式
|
||||
可选: file|mavlink|all, 缺省: all
|
||||
[-e] 启动后立即开始记录,直到上锁(否则只在解锁后开始记录)
|
||||
[-f] 记录直到关闭为止(包含 -e)
|
||||
[-t] 使用日期/时间命名日志目录和文件
|
||||
[-r <val>] 记录速率,单位:Hz,值为0则不限速
|
||||
缺省: 280
|
||||
[-b <val>] 记录缓存大小,单位:KiB
|
||||
缺省: 12
|
||||
[-q <val>] mavlink模式下uORB队列大小
|
||||
缺省: 14
|
||||
[-p <val>] 轮询主题而不是以固定速率运行(记录速率和主题间隔将被忽略)
|
||||
可选: <topic_name>
|
||||
|
||||
on 立即开始记录,覆盖解锁(日志系统必须在运行中)
|
||||
|
||||
off 立即停止记录,覆盖锁定(日志系统必须在运行中)
|
||||
|
||||
stop
|
||||
|
||||
status 打印状态信息
|
||||
```
|
||||
|
||||
**pyulog安装方法**
|
||||
|
||||
```shell
|
||||
git clone https://github.com/PX4/pyulog.git
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user