软件中间层开发实例

我的工作
(1)并不是单纯的驱动开发,还有嵌入式软件开发,测试程序的编写,以及搭建测试环境,对程序进行正确性,稳定性测试。黑盒测试,白盒测试都有。

中间层程序编写背景
(1) 程序的开发背景是:一个集中终端控制平台,应用于火车列车控制,另一个名字可以称为:火车综合控制平台。
(2)简述一下,系统整体运行逻辑。把铁路分为若干个铁路段,段内分布有很多传感器,用于收集列车当前所处位置的相关信息。
(3)收集到的信息,通过互联网进行转发,经过通信版传输到主控板上。主控板是一个2X2 冗余的设计,进一步保证列车控制系统的稳定性,安全性等。
(4)主控板接收到数据后,进行数据处理,然后进行指令下达。顺序是:主控板->通信版->铁路段。
(5)上述信息传输过程中,应用到了多种信息传输协议。例:udp传输协议,主控板与通信版之间的板间协议,铁路段上应用的modbus协议。在这里不进行详细的叙述。
(6)铁路段接收到下达的指令后,列车进行相应减速,加速。铁路段上舵机进行相应控制。这就是整个系统逻辑的运行原理。
(7)信息的采集,信息的传输,信息数据的处理,信息指令的下发,信息指令的执行。听起来似乎很简单的一个系统。但是真正做成一个成品,其实并不简单。简述一下几个立即想到的几个问题:

(8)系统软件架构图

软件中间层开发实例
三 中间层的编写
(1)在应用软件层与底层驱动层之间,增加一层,即中间层。起到的作用是,避免应用层与驱动层直接进行交互。增强程序的稳定性,可读性,易修改性。
(2)驱动层接收到数据之后,不再直接传输给应用层,而是传输到中间层,中间层保存数据,这里数据的存储方式均为链式存储,双向链表。
(3)应用层需要需要数据时,则在中间层里面取出数据。这样就隔绝了应用层与驱动层的直接交互。
(4)上述的是数据接收的过程,数据指令的发送过程,则完全与之相反。
(5)应用层串口数据收发,udp网口收发,tcp网口收发,等各种数据收发接口,均指向中间层,在中间层进行暂存后,再调动驱动层程序。
(6)这里中间层起到的一个作用就是,采集的数据是大量的,实时的,应用层可能会不能及时取数据。而中间层这时就会起到一个临时仓库的作用,把接收到的数据存储起来。上层应用需要调用时,及时向上传输。

四 零碎的经验
(1)对整个系统进行测试时,不能局限在当前的测试环境中,要用“大局观”,测试,观察整个大环境。
(2)及时沟通,高效沟通,这样可以少走许多不必要的弯路。
(3)理清思路之后,再进行编程。这样你会发现,原来编程如此简单。
(4)数据收发缓冲区概念,相当于一个缓冲的窗口,数据到来时先存到这里,然后再由需要者取出。
(5)流式传输,爆式传输。

文章知识点与官方知识档案匹配,可进一步学习相关知识C技能树首页概览113530 人正在系统学习中

来源:夜歌坤拓

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年4月15日
下一篇 2021年4月15日

相关推荐