opendds简单入门(二)
我也是從網(wǎng)上抄了一個示例,自己測試了一下,
lyingbo的博客-DDS
1. 首先寫一個IDL:
// Demo.idlmodule Demo {#pragma DCPS_DATA_TYPE "Demo::Pos" #pragma DCPS_DATA_KEY "Demo::Pos pos_id"struct Pos {long pos_id;long pos_x;long pos_y;}; };2. 然后就可以生成代碼了:
opendds_idl Demo.idltao_idl Demo.idl// 備注執(zhí)行這個命令,需要添加環(huán)境變量: // include=D:\OpenDDS3133 // 否則會提示找不到dds目錄下包含的文件,tao_idl DemoTypeSupport.idl其中tao_idl Demo.idl 生成
< filename >C.cpp< filename >C.h< filename >C.inl< filename >S.cpp< filename >S.h< filename >S.inl //這個不一定有opendds_idl Demo.idl 生成
< filename >TypeSupport.idl < filename >TypeSupportImpl.h < filename >TypeSupportImpl.cpp其中生成的IDL文件中包括了PosTypeSupport, PosDataWriter?和PosDataReader的接口定義。這些特定的DDS類型接口將會在稍后注冊數(shù)據(jù)類型,發(fā)布數(shù)據(jù)樣本和接收數(shù)據(jù)樣本時使用,而生成的cpp文件實現(xiàn)了這些接口。
生成的IDL文件還需要和原始的IDL一起,用?TAO IDL編譯器編譯,以便生成相應的接口框架。之后這些生成的實現(xiàn)文件需要和使用?Pos類型的OpenDDS應用程序源碼一起編譯鏈接。
而 新生成的IDL還需要再用tao_idl生成一遍。
OpenDDS Java開發(fā)(二):根據(jù)IDL進行代碼生成
?
?
3. 還有一種方法生成各種代碼文件,同時生成項目文件,因為剛才的方法并沒有生成項目文件還是不能用。
3.1 寫一個mpc文件:
project(*idl): dcps {TypeSupport_Files {Demo.idl}custom_only = 1 }project(*publisher) : dcpsexe_with_tcp {exename = publisherafter += *idlTypeSupport_Files {Demo.idl}Source_Files {DataWriter.cppPublisher.cpp} }project(*subscriber) : dcpsexe_with_tcp {exename = subscriberafter += *publisherTypeSupport_Files {Demo.idl}Source_Files {DataReader.cppSubscriber.cpp} }3.2 提供相關(guān)的代碼文件(可以先隨便新建一個空的):
發(fā)布端:
Publisher.cpp
DataWriter.h
DataWriter.cpp
訂閱端:
DataReader.h
DataReader.cpp
Subscriber.cpp
3.3 執(zhí)行命令,生成項目文件:
mpc使用介紹 (一)
perl %ACE_ROOT%\MPC\mwc.pl -type vs2017 -include %DDS_ROOT%\MPC\config這個時候就可以在目錄里看到OpenDDSPing.sln了,
備注一下:各個VC版本:
Visual Studio 6 : vc6
Visual Studio 2003 : vc7
Visual Studio 2005 : vc8
Visual Studio 2008 : vc9
Visual Studio 2010 : vc10
Visual Studio 2012 : vc11
Visual Studio 2013 : vc12
Visual Studio 2015 : vc14
Visual Studio 2017 : vs2017
3.4 生成代碼文件,
打開OpenDDSPing.sln,生成IDL項目部分就可以,比手動運行好多了。
3.5 接下來就要完善代碼了,見我的資源下載部分
附錄:示例項目
https://download.csdn.net/download/robinfoxnan/12821698
?
?
總結(jié)
以上是生活随笔為你收集整理的opendds简单入门(二)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 搭建于 Cubieboard 之上的超小
- 下一篇: 安卓开发工具