OpenDDS Java开发(2)——基于Windows10的OpenDDS测试

话接上文,由于Perl的问题,我并没有通过测试程序run_test.pl测试成功。

我在Git上找了个测试程序,很丰富,点赞,非常感谢作者。https://github.com/WeiKangJian/OpenDDSapplication

我没有直接编译运行他的代码,而是试着自己摸索编译。

将他的外卖程序简单修改一下Supermarket.idl:

module Supermarket {
	#pragma DCPS_DATA_TYPE "Supermarket::UpdateInf"
	#pragma DCPS_DATA_KEY "Supermarket::UpdateInf UpdateInfID"
	struct UpdateInf {
		long UpdateInfID;
		string UpdateInfTopic;
		string UpdateInfMessage;
		string PublisherName;
		string MTime;
		long ClockTime;
	};
	
	#pragma DCPS_DATA_TYPE "Supermarket::DefaultInf"
	#pragma DCPS_DATA_KEY "Supermarket::DefaultInf DefaultInfID"
	struct DefaultInf {
		long DefaultInfID;
		string DefaultInfTopic;
		string DefaultInfMessage;
		string PublisherName;
		string MTime;
		long ClockTime;
	};

};

Supermarket.mpc:

project(*idl): dcps {

  includes      += $(TAO_ROOT)/orbsvcs

   

 // This project ensures the common components get built first.
    TypeSupport_Files {
        Supermarket.idl
    }
    custom_only = 1
}
project(*Publisher) : dcpsexe_with_tcp {
  exename   = publisher
  after    += *idl
  TypeSupport_Files {
    Supermarket.idl
  }
  Source_Files {
    Publisher.cpp
  }
}
project(*Subscriber) : dcpsexe_with_tcp {
 exename   = subscriber
 after    += *idl
 TypeSupport_Files {
   Supermarket.idl
 }
 Source_Files {
   Subscriber.cpp
   DataReaderListenerImpl.cpp
 }
}

然后在VS的开发人员命令提示符执行:

tao_idl Supermarket.idl

opendds_idl Supermarket.idl

generate_export_file.pl Supermarket > Supermarket_Export.h

中间出现一些警告,直接忽略即可。

将Publisher.cpp、Subscriber.cpp、DataReaderListenerImpl.cpp、DataReaderListenerImpl.h复制过来,将其中的“S01_”都去掉。然后执行

mwc.pl -type vs2017

可以看到此时该目录下生成了一个*.sln文件,这个文件名和当前文件夹名相同,比如我在D:\env\opendds\workspace\market目录下,这个文件就是market.sln。

双击market.sln用vs2017打开。

编译成功后生成了publisher.exe和subscriber.exe文件,在CMD命令行,当前目录下,执行:

%DDS_ROOT%/bin/DCPSInfoRepo -ORBEndpoint iiop://localhost:12345

分别双击subscriber.exe和publisher.exe能够收发消息即为成功。

 

再次感谢这位Git作者:https://github.com/WeiKangJian/OpenDDSapplication

 

 

 

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
OpenDDS是一种用于开发分布式系统的开放源代码软件。它基于数据分发服务(DDS)标准,并提供了一套用于构建可靠、安全、高效的分布式应用程序的工具和库。 开发OpenDDS时,可以参考OpenDDS官方提供的PDF文档。这些文档包含了详细的开发指南、教程和示例代码,供开发人员学习和参考。 在开发过程中,首先需要了解DDS的基本概念和原理。DDS是一种用于分布式通信的软件架构,它可以实现不同节点之间的高效数据交流。OpenDDS提供了DDS的实现,开发人员可以利用OpenDDS的库和工具开发分布式应用程序。 接下来,可以通过阅读官方文档了解OpenDDS的架构和核心概念。了解OpenDDS的组件和它们之间的交互关系,可以帮助开发人员更好地理解和使用OpenDDS。 然后,可以按照官方文档中的教程和示例进行实际编程。通过编写简单的示例程序,可以逐步熟悉OpenDDS的API和功能。可以使用官方提供的代码样例作为起点,根据具体需求进行修改和扩展。 在开发过程中,还可以参考OpenDDS社区的讨论和资源。OpenDDS社区提供了用户论坛、邮件列表等交流平台,开发人员可以在这些平台上提问、分享经验和交流问题。 总之,通过阅读OpenDDS官方PDF文档,了解OpenDDS的基本概念和原理,按照官方教程和示例进行实际编程,并参考社区资源和经验,就可以使用OpenDDS开发分布式应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值