1.一种DDS内部实体数据关联和处理的实现方法,其特征在于,包括步骤:(1)建立一个基于DDS的通信环境,创建一个ID为a的域,创建域参与者对象test_domain,其中,a的取值范围为0 230;
~
(2)基于test_domain创建一个用于读数据的订阅者对象test_sub;
(3)通过DDS标准规定的应用程序编程接口获取test_domain的内置订阅者;
(4)通过DDS标准规定的应用程序编程接口获取DDS规范中定义的内置主题对应的数据读取者DataReader的指针信息及QoS策略信息;
(5)创建并设置DataReader的内部控制数据策略INNER_CTRL_DATA QoS信息,包括用于存储枚举类型的变量inner_type和用于存储订阅者test_sub的地址的字段value;所述枚举类型包括成员变量:表示默认值的“DDS_INNER_CTRL_DEFAULT”、表示订阅者的“DDS_INNER_CTRL_SUB”、表示发布者的“DDS_INNER_CTRL_PUB”、表示数据写入者的“DDS_INNER_CTRL_WRITER”、表示数据读取者的“DDS_INNER_CTRL_READER”、表示保留字段的“DDS_INNER_CTRL_RESERVE”,其枚举值分别为0、1、2、3、4、255;
(6)在DataReader上注册回调函数;
(7)进入监听状态,等待回调函数被触发;
(8)当监听到数据时,DataReader的回调函数被触发,通过解析回调函数的输入参数,获取输入参数的QoS策略的配置信息,判断其中的INNER_CTRL_DATA QoS信息中的inner_type是否赋值为步骤(5)中设定的枚举类型,若是则执行步骤(9),否则跳转至步骤(7);
(9)判断INNER_CTRL_DATA QoS信息中的value字段是否为空,若不为空,则获取到订阅者test_sub信息,执行步骤(10);否则,跳转至步骤(7);
(10)根据当前域的主题名称信息创建对应的主题,并基于test_sub,通过动态数据类型的方式创建与主题对应的新的数据读取者;
(11)在新的数据读取者上设置回调函数,进行当前域和该主题的数据监听、监控和统计。
2.根据权利要求1所述的一种DDS内部实体数据关联和处理的实现方法,其特征在于:所述数据读取者用于获取数据信息,进行域和主题的数据监听、监控和统计。
3.根据权利要求1所述的一种DDS内部实体数据关联和处理的实现方法,其特征在于:步骤(4)中,所述内置主题为DDS规范中定义的内置主题,包括“DCPSPublication”、“DCPSSubscription”。
4.根据权利要求1所述的一种DDS内部实体数据关联和处理的实现方法,其特征在于:所述步骤(10)包括:
(10.1)获取当前域的主题名称信息;
(10.2)创建并在test_domain上注册动态数据类型;
(10.3)根据步骤(10.1)中的主题名称信息,创建相对应的主题;
(10.4)根据INNER_CTRL_DATA QoS策略信息中value存储的订阅者地址信息,创建步骤(10.3)所述主题对应的新的数据读取者。