上一篇推文《ardupilot 日志文件解析》中表述了日志文件的构成。
本篇推文用 C 语言来做一个简单的 ardupilot 日志系统移植 demo。 (使用“潘多拉”开发板上 spi 模式的 MicroSD 卡槽)
“解码格式”结构体数组
这部分与 ardupilot 的源码结构一致。
初始化时,将解码格式写入文件首部
C语言形式封装一个测试函数
到这里,已经完成了 80% 的工作。
什么?原来这个日志系统就这么点儿代码?
不要怀疑,真的就是这么简单。
看看还差点啥
- 日志系统函数都有了,怎么写到 SD 卡上呢?
简单,用 FatFS 实验上面的 WriteBlock() 接口就行了。
一个函数就搞定。
- 放 main() 函数里跑一下试试。 用 CubeMX 的一看下图里的注释就知道是在 main() 的哪个地方,我就不截全图了。
看一下头文件,看看能不能找到 ardupilot 的感觉
总结
本篇就先简单的写到这里,后面我会用这个日志存些有用的数据,到时候代码就多起来了。
给宝宝装了个小车,后面把日志用在这个小车上,上 RT-Thread 操作系统。边玩边学代码。
PS
- 上一篇说得那么牛的 ardupilot 日志系统,移植过来就这么几行代码,轻松不轻松?
- ardupilot 代码虽然长,但构架非常清晰。经常是好几种功能都打一个套路。
- 程咬金最拿手的三板斧使了一辈子,ardupilot 代码构架优秀简单又实用,就跟程咬金那三板斧似的。
- 看代码首先看的不是函数怎么实现功能的,而是看函数实现的是什么功能。尤其是看开源代码,量大、功能多,要拎清各个功能之间的区别和联系才能看得懂。
关注作者
欢迎扫码关注我的公众号MultiMCU EDU
。
提示:在公众号“关于我”页面可加作者微信好友。
喜欢本文求点赞,有打赏我会更有动力。
请我喝杯咖啡如何?
微信 支付宝