1.概述
ACE是一个开源框架,它为开发高性能、分布式实时和嵌入式系统提供了许多组件和模式。ACE为套接字、解复用循环、线程和同步原语提供了强大而高效的抽象。
TAO(ACE-ORB)是CORBA对象请求代理(ORB)的开源实现,它是使用ACE框架中的组件和模式构建的。
CIAO(Component Integrated ACE ORB)是构建在TAO之上的CORBA组件模型(CCM)的开源实现。
DAnCE是构建在TAO之上的部署和配置标准(D&C)的开源实现。
OpenDDS是OMG数据分发服务(DDS)的一个开源实现
2.win7下安装
//环境
vs2015
perl5.18.4 x86
ACE+TAO-6.5.10
OpenDDS-DDS-3.12.2
1)安装perl
解压安装,安装完成后查看perl -v
2)安装ACE+TAO
//解压、设置环境变量
解压到目录,例如我把ACE和DDS都放到了openDDS的目录下,C:\openDDS\ACE_wrappers,C:\openDDS\DDS
设置环境变量:
添加方环境变量方法自己百度,
ACE_ROOT= C:\openDDS\ACE_wrappers//就是你的存放路径
TAO_ROOT= C:\openDDS\ACE_wrappers\TAO
在Path后面加:%ACE_ROOT%\lib; %ACE_ROOT%\bin
注意分号
//添加config.h
在%ACE_ROOT%/ace下添加config.h文件,内容为
include "ace/config-win32.h"
//生成工程文件
打开 ACE_vc14.sln,环境选择debug-x86
项目-重订解决方案目标-确定
生成解决方案
以上ACE的编译完成,然后进入TAO目录,按照上述步骤生成TAO_ACE_vc14.sln
3)编译OpenDDS
解压OpenDDS到相关文件,设置环境变量
DDS_ROOT=C:\openDDS\DDS //这里是你自己的解压目录
添加Path:%DDS_ROOT%\lib;%DDS_ROOT%\bin
使用vs生成工具生成DDS的VS工程文件
cd DDS
.\config
报错时,修改config文件,找到报错行,修改compiler_version,指定版本
$opts{'compiler_version'}="vc14";
打开生成的dds.sln,按照ACE的步骤生成解决方案
4)测试
OpenDDS-3.12.2\examples\DCPS\Messenger_Imr下执行
run_test.pl ,执行结果为test passed为成功
3.opendss使用
1)新建 Messenger.idl文件
module Messenger {
#pragma DCPS_DATA_TYPE "Messenger::Message"
#pragma DCPS_DATA_KEY "Messenger::Message subject_id"
struct Message {
string from;
string subject;
long subject_id;
string text;
long count;
};
};
2)编译生成文件
tao_idl Messenger.idl
opendds_idl Messenger.idl
tao_idl -I../OpenDDS-3.12.2 MessengerTypeSupport.idl