列车实时数据通信协议(TRDP)探索之路【二】

在【一】中已经对TRDP协议有了基本的了解,现在开始进行源码的深入了解。

我checkout的是1.4.0.0的发布版,通过目录可以基本先了解大致结构。

源码位于src目录下,/api提供了基本对外的API接口,/common包含了协议处理的核心代码,/vos包含了与操作系统对接的代码,支持了linux、VxWorks、Windows,操作系统接口大致为socket网络通信处理、内存管理以及任务调度。

/test 、/example 目录下主要是测试代码,/spy目录下是wireshark的抓包工具的插件,可以针对trdp报文进行解析,

/bld是存放编译代码生成的目标文件,linux下可以在/linux-rel目录里执行测试的.exe文件。

TRDP协议代码的函数也是具有较高的辨识度,tlc表示处理通用接口,tlm表示处理MD数据接口,tlp表示处理PD数据接口。

分析/example目录示例代码,trdp通用流程大致为:start->tlc_init->tlc_openSession->tlp_subscribe/tlp_publish->while(tlc_process)->end.

TRDP还有很多的扩展功能,因此协议可以根据业务的需求,编写适合不同场景的代码。

猜你喜欢

转载自blog.csdn.net/sinat_33518009/article/details/84671591