- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
插件技术在航天数据处理中的应用
摘要:讨论了当前插件主流通信方式,分析比较了几种插件通信方式(消息通信,文件共享,socket)的应用场合,结合航天数据处理的实际特点,提出了基于socket的数据处理解决方案,并成功应用于航天数据处理系统中。
关键词:插件;socket;文件共享;接口;航天数据处理
中图分类号:TP311文献标识码:A文章编号:1009-3044(2011)01-0211-02
Application of Space Data Processing with Plug-in
CHEN Tuo, YAO Guo-qing
(Information Engineering, China University of Geosciences, Beijing, 100083, China)
Abstract:To find a solution of making space data processing software more reuseable,plug-in technology is used.This paper discusses three main means of communication in the plug-in area(Window Message, file sharing, socket). Finally, the decision of using socket to transfer data is made.
Key words: plug-in; socket; file sharing; interface; space data processing
1 概述
1.1 背景
随着航天技术的蓬勃发展,越来越多的应用都需要卫星数据的支持,与此同时,地面软件的数据处理软件也将受到前所未有的挑战。地面数据处理类型繁多(各种遥测参数,各种科学数据等等),使得软件的处理也越来越复杂。一方面,一些数据处理流程(如数据移位,同步头查找)已经较为成熟,重复实现浪费工时;同时,有些模块是需要重新设计,如界面显示,往往是因为载荷的变化而变化的,就算载荷没有变化,对参数的要求也不大相同。
1.2 插件技术
插件技术的引入,使得从开始的设计上将每项功能都最大化的独立,减少代码交叉,降低耦合,同时,使得开发相对独立,采取并行的方式进行软件开发,加快软件成型速度。在未来的开发应用中,如果有功能类似的需求,可以在原来基础上继承修改来适应新需求,大大提高代码的重用性,降低开发强度。
2 设计过程
2.1 特别的需求
常见的插件开发,多为单插件功能扩展,比如要发布了,时间不够,定义好接口后先实现了个简单的黑白显示插件,后来升级的时候换个彩色显示的插件,接口是没有变的,只是内部的数据处理显示,做了简单的插件升级。
区别于单个插件的功能扩展,这里还要解决的,是多个模块相互协作,插件与插件间也有了联系,甚至为了步调一致,插件与平台间也要进行通信,如何选择通信的方式成为接口设计之外一个非常需要考虑的问题。
2.2 接口设计
插件原理就是制定统一的接口,然后通过接口调用来实现功能的调用和扩展。在定义接口之前,应该先确定通信的方式,那么就三种常见的通信方式作下比较:
1)消息通信,由于插件与平台有直接相连的关系,插件间只能通过平台交互,好比内存与CPU的交互由主板来完成一样,由于应用中插件的变换比较多,同时之间的交互也并不特别复杂,可能只有几个消息,这种通过平台交互消息的方法似乎有待商榷。
2)文件共享,本例应用中,各模块间的交互,都被数据所驱动,如:数据接收模块接收到数据后便往下转发给数据处理模块,数据处理模块判断缓存中数据是否达到处理要求,如果一帧数据为128字节,那么达到256字节便开始往下处理。各个模块间由数据驱动倒是个不错的选择,不过与此同时,需要考虑文件互斥的问题,文件在这里属于临界资源,需要做好保护,以免程序出错。
3)socket通信,设计好文件格式后,都不用太多其它的处理,就是收到数据转发就可以了,对于数据的格式的多变性也能较容易的解决掉,设置一些格式的变量,再内部分类处理就可以了,处理弹性比较大,适用于多变的环境。
比较以上三种通信方式以后,对于本应用采用socket通信是最合适了,易于处理,又具有一定的弹性,适用于多变的格式需求。采用socket通信,又由于是本机通信,采用UDP就足够了,这里的UDP采用丢失重传机制,保证了本地通信的可靠性。那么把通信的接口抛开,除了必要的初始化和一些简单的控制,接口基本上可以定下来了,程序接口的定义如下:
Cl
文档评论(0)