查看: 769|回复: 0

ardupilot 日志系统移植

[复制链接]

39

主题

789

帖子

1570

积分

金牌飞友

Rank: 6Rank: 6

积分
1570
飞币
774
注册时间
2017-8-23
发表于 2024-7-9 14:42:55 | 显示全部楼层 |阅读模式

上一篇推文《ardupilot 日志文件解析》中表述了日志文件的构成。
本篇推文用 C 语言来做一个简单的 ardupilot 日志系统移植 demo。
(使用“潘多拉”开发板上 spi 模式的 MicroSD 卡槽)
“解码格式”结构体数组


这部分与 ardupilot 的源码结构一致。


初始化时,将解码格式写入文件首部

ardupilot 日志系统移植w2.jpg

C语言形式封装一个测试函数


到这里,已经完成了 80% 的工作。
什么?原来这个日志系统就这么点儿代码?
不要怀疑,真的就是这么简单。

ardupilot 日志系统移植w3.jpg

看看还差点啥


    日志系统函数都有了,怎么写到 SD 卡上呢?

    简单,用 FatFS 实验上面的 WriteBlock() 接口就行了。

    一个函数就搞定。

ardupilot 日志系统移植w4.jpg


    放 main() 函数里跑一下试试。

    用 CubeMX 的一看下图里的注释就知道是在 main() 的哪个地方,我就不截全图了。

ardupilot 日志系统移植w5.jpg

看一下头文件,看看能不能找到 ardupilot 的感觉

ardupilot 日志系统移植w6.jpg

总结

本篇就先简单的写到这里,后面我会用这个日志存些有用的数据,到时候代码就多起来了。
给宝宝装了个小车,后面把日志用在这个小车上,上 RT-Thread 操作系统。边玩边学代码。

http://static.video.qq.com/TPout.swf?vid=e09055ksguu&1314.swf
PS


    上一篇说得那么牛的 ardupilot 日志系统,移植过来就这么几行代码,轻松不轻松?

    ardupilot 代码虽然长,但构架非常清晰。

    经常是好几种功能都打一个套路。

    程咬金最拿手的三板斧使了一辈子,ardupilot 代码构架优秀简单又实用,就跟程咬金那三板斧似的。

    看代码首先看的不是函数怎么实现功能的,而是看函数实现的是什么功能。尤其是看开源代码,量大、功能多,要拎清各个功能之间的区别和联系才能看得懂。

    本篇 demo 的 github 地址:

    https://github.com/code-structure-train/sdcard_pandora

关注作者

欢迎扫码关注我的公众号MultiMCU EDU。

提示:在公众号“关于我”页面可加作者微信好友。

喜欢本文求点赞,有打赏我会更有动力。
您需要登录后才可以回帖 登录 | 加入联盟

本版积分规则

快速回复 返回顶部 返回列表