0
点赞
收藏
分享

微信扫一扫

DDS基础使用

有点d伤 2022-01-26 阅读 49

安装

https://www.pianshen.com/article/87591710572

通过IDL文件定义通信数据结构

IDL文件示例(property.idl)

#include<G:/softDownload/OpenDDS-3.14/ACE_wrappers/TAO/tao/DoubleSeq.pidl>
#include<G:/softDownload/OpenDDS-3.14/ACE_wrappers/TAO/tao/LongSeq.pidl>
#include<G:/softDownload/OpenDDS-3.14/ACE_wrappers/TAO/tao/StringSeq.pidl>


module propertyMsg{

#pragma DCPS_DATA_TYPE "propertyMsg::intPropertyMsg"
#pragma DCPS_DATA_KEY "propertyMsg::intPropertyMsg id"

    struct intPropertyMsg{
        long id;
        string name;
        long value;
};

#pragma DCPS_DATA_TYPE "PropertyMessenger::IntArrayPropertyMsg"
#pragma DCPS_DATA_KEY "PropertyMessenger::IntArrayPropertyMsg Id"
    
struct IntArrayPropertyMsg {
    long Id;
    string propertyName;
    CORBA::LongSeq value;
      };


#pragma DCPS_DATA_TYPE "PropertyMessenger::DoubleArrayPropertyMsg"
#pragma DCPS_DATA_KEY "PropertyMessenger::DoubleArrayPropertyMsg Id"
      
struct DoubleArrayPropertyMsg {
    long Id;
    string propertyName;
    CORBA::DoubleSeq value;
};

#pragma DCPS_DATA_TYPE "PropertyMessenger::StringArrayPropertyMsg"
#pragma DCPS_DATA_KEY "PropertyMessenger::StringArrayPropertyMsg Id"
     
struct StringArrayPropertyMsg {
    long Id;
    string propertyName;
    CORBA::StringSeq value;
};
}

idl中没有INT类型,用Long代替。

idl内置了longSeq stringSeq doubleSeq等seq类型。

使用IDL文件生成cpp源码

将IDL文件放在DDS文件夹下G:\softDownload\OpenDDS-3.14

在该文件夹下命令行输入(版本不同命令略有差异):

opendds_idl.exe .\property.idl
tao_idl.exe .\property.idl
tao_idl.exe .\propertyTypeSupport.idl --idl-version 4

此时可以看到文件夹下生成了下述cpp文件:

 将上述文件添加到自己的代码工程中即可。

举报

相关推荐

0 条评论