目录
1. 前言
2. F prime的情况简介
2.1 相关 址
2.2 到底是个啥玩意
2.3 代码简单分析
?
Autocoders
CFDP
Ci
Config
Drv
Fw
Gds
Os
Ref 和 RPI
Utils
3. 结束
1. 前言
今年2月份最大的科技新闻莫过于有三艘太空飞船先后抵达火星。它们分别是:阿拉伯联合酋长国的“希望” 探测器、我们中国的“天问一 ”和美国的“毅力 ”火星车。
“毅力 ”不是携带了一辆叫“机智 ”小直升机吗飞机里就用了一套专门为小型飞行器设计的开源软件框架F prime。下面就对它做个简单的介绍。(真的非常简单,随便看看,重在科普^_^)
2. F prime的情况简介
2.1 相关 址
https://github.com/nasa/fprime
https://nasa.github.io/fprime/
2.2 到底是个啥玩意
根据github上的信息,F prime是JPL专门为快速开发小型空间飞行系统而设计的一个软件框架。这里的空间飞行系统是指微型和小型卫星或其它科学仪器。
F prime有以下特点:
专门为飞行系统的各个部分的开发定义了设计良好的软件接口
有一个用c++写的框架,提供消息队列和线程
提供一个自动生成代码的建模工具
不断丰富的组件包。
单元和集成测试工具。
2.3 代码简单分析
代码下载和编译都参照github来就是,不多说。(推荐去gitee下载,速度快)
如下图,F prime的源码一共有十多个。我们一个个浏览看大概都有些什么东西。
Autocoders
不用说,这个目录就下面就是自动生成代码的建模工具。其实是用Java写的eclipse插件。看了一下它的说明文档,感觉有点类似于能生成代码的UML建模工具。
CFDP
里面就只有一个checksum 类及其测试代码。但有意思的是CFDP这个协议。CFDP 应该是 CCSDS File Delivery Protocol,它是由空间数据系统委员(CCSDS, Consultative Committee for Space Data Systems)制定。它可以说是因为现有TCP/IP不能满足星际空间受限的 络环境而提出来的。(具体怎么受限法,我没详细了解,不过可能与DTN (Delay Tolerant Network) 这种东西有关)。
Ci
一个辅助代码管理的小工具,略过。
Config
常规目录名,对软件的各个模块进行配置,比如设置某类消息的最大长度等等。
Drv
里面有些简单的串口、iic、spi、gpio等设备的驱动,做嵌入式的一看大概就明白是什么。
Fw
里面提供了一些算是中间件吧,比如buffer模块,log模块等等。
Gds
这个Gds是用python写的一个pc机上的小工具,应该是一个用于测试和监视飞行器状态的小工具。
Os
这个就是用c++写的框架,提供消息队列和线程,看起来是可以运行在linux和macos上。不过我也没有编译运行,没有测试过。
Ref 和 RPI
Utils
一些c++工具类
3. 结束
这次就到此为止吧,挺流水账的,其实我没有体会出这个框架有多了不起。可能知识太局限了,也可能人家本来也就没把牛掰的东西往上面放吧。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!