DDS分布式网络组件之多操作系统开发(windows/RTX/Linux)

2019-07-12 23:12发布

DDS分布式网络组件平台软件是由对象管理组织(OMG)发布的一个关于分布式实时系统中发布/订阅模型的网络通信规范。这个规范定义了一个以数据为中心的发布/订阅模型,提供了一个独立于平台的中间件框架,为实时系统中数据发布、传递和接收的接口和行为提供了统一的标准。它允许应用程序实时的发布其所能提供的信息,并订阅所需要的信息。 应用环境:Windows+VC++6.0 DDS.dll/.lib 2 Windows+RTX 7.1+Realtek RTL8139/810x Family Fast Ethernet DDS.rtdll 3 Windows 7+VS2008/2010/2012 DDS.dll/.lib 4 Windows 7+Qt Creator DDS.dll/.a Linux(CentOS 7.2) DDS.so 基本组成: 1、域(Domain) 域是DCPS内部最基本的分区单元。其它的每个实体必须属于某一个域,并且只能在那个相同的域中与其它的实体进行相互作用。应用程序代码可以自由的与多个域进行相互作用,但必须通过属于不同域的单独实体进行相互作用。 2、域参与者(DomainParticipant) 域参与者是应用程序的入口点,以方便在特定的域中进行交互。域参与者是写入或读取数据多个对象的工厂。 3、主题(Topic) 主题是发布、订阅应用程序之间进行交互作用的根本手段。每个主题在域里面都有一个独特的名称以及它发布的一个具体的数据类型。当发布数据时,发布过程总是制定主题。订阅者可以通过主题请求数据。 4、数据写入者(DataWriter) 发布应用程序通过使用数据写入者把数值传递给DDS。每个DataWriter必须是一个特定的主题。应用程序使用DataWriter指定类型的接口,在那个主题上发布例子。DataWriter负责对数据编码,并传递到发布者出准备传输。 5、发布者(Publisher) 发布者负责获取所发布的数据,并且把它分发到域中所有相关的订阅者处。所采用的准确机制由服务的实现决定。 6、订阅者(Subscriber) 订阅者从发布者处接受信息,并传递到任何与它相连的、相关的DataReader上。 7、数据读取者(DataReader) 数据读取者从订阅者处获取数据,并将主题解码到适当的类型中,然后把样本递送到应用程序处。每个DataReader必须是一个特定的主题。应用程序使用数据读取程序的特定类型接口,以便于接收样本。 问题总结: 1、Linux系统下对一个套接字允许加入的组播地址个数有限制(20个)。目前未找到相关解决办法,暂时只能通过创建多个 域参与者来解决该问题。下图是针对该限制的情况说明: 2、RTX操作系统网络编程 RTX需要只支持部分网卡,请见支持RTX的网卡信息。RTX网络通信最重要、最困难的一步就是网卡的配置,在RTX的文档中有进行文字阐述。最终需要将Windows下的网卡转换为RTX下的网卡,如图所示:                                      有关RTX操作系统网络编程的开发流程,我将在下一个章节详细阐述。欢迎各位联系交流QQ564626335