1.FastDDS移植 - Boost 编译安装
2.as400SDA
3.OPENDDS特点
4.XRCE-DDS
5.开源Fast-DDS安装示例及DDS模型架构
FastDDS移植 - Boost 编译安装
Boost是码插一个强大的C++库集合,为开发者提供了丰富的码插功能和工具,尤其在数据结构、码插算法、码插网络和并发编程等方面。码插本文将指导如何在不同平台上编译安装Boost,码插酷酷源码从源码下载到配置和编译都有详细步骤。码插
1. 首先,码插访问Boost官方网站(boost.org/)下载适合你的码插开发环境(Linux或Windows)的源码。务必选择最新版本。码插
2. 在源码目录中,码插运行bootstrap.sh脚本初始化编译过程,码插然后执行b2命令开始编译。码插由于Boost源码较大,码插这可能需要一些时间。码插
3. 对于x平台,通常无需修改编译配置。确保你的Linux系统已经安装了g++4.6或更高版本的编译器,可通过g++ --version检查。
4. 完成编译后,你将看到编译成功的输出信息。在应用中引用Boost库时,liunx nginx源码安装记得在编译时告诉编译器库文件的路径。
5. 对于ARM平台,可能需要进行交叉编译。参考ljbachelor的GCC编译工具链教程来配置工程文件(project-config.jam),然后执行编译指令。
6. 无论是哪种平台,示例代码保持不变,只需在对应的平台使用x的编译指令。
通过以上步骤,你就能成功在FastDDS移植项目中使用Boost库了。
asSDA
ASSDA是一种强大的工具,专为交互式屏幕设计和管理而设计。它简化了应用屏幕的创建过程,无论你需要设计显示文件还是创建菜单,都能轻松应对。通过ASSDA,设计师可以直观地操作,轻松构建出功能丰富的屏幕,提升用户体验。 特别值得一提的是,它具备自动转换功能,PLUS代刷源码用户设计的屏幕规范性极高,可以直接转化为DDS源代码,极大地节省了菜单和显示文件的编写时间。这种便捷性使得开发过程更为高效,减少了不必要的手动工作。 对于已有的屏幕和菜单,STRSDA提供了编辑界面,用户可以通过WORK WITH MEMBERS USING PDM(WRKMBRPDM)屏幕,选择选项(通过SDA进行更改)来进行编辑。这意味着无论屏幕初始状态如何,都能够通过ASSDA进行灵活的调整和优化。 总的来说,ASSDA是提高屏幕设计效率和质量的理想选择,为开发者和设计师提供了强大且易于使用的屏幕设计和管理平台。扩展资料
AS/ 是当今世界上最流行的中小型、多用户商业计算机系统,在多用户服务器领域里,始终保持着最畅销的地位。目前 AS/ 在全球的装机量已超过 万套,覆盖 多个国家,支持 多种语言,sm.ms源码有近 1 万个商业伙伴和独立软件商, 3 万多个商业应用。广泛应用于流通、金融证券、制造、运输等各个行业。OPENDDS特点
OpenDDS是一款开源的实现,专为"对象管理组织"(OMG)的实时系统数据分发服务(Data Distribution Service,DDS)标准而设计,主要使用C++语言开发。尽管其核心是C++,但OpenDDS也提供了JAVA和JMS的开发接口,这意味着JAVA开发者也能利用其功能进行程序开发。
OpenDDS的架构基础是ACE(Adaptive Communication Environment,自适应通信环境),这是一款基于C++的开源网络开发库,它确保了OpenDDS的跨平台兼容性和可移植性。OpenDDS进一步利用了TAO(The ACE ORB,基于ACE的CORBA实现框架),并将TAO的IDL编译器等工具集成,作为其数据控制和分发服务(DCPS)的国内的源码论坛重要组成部分,为信息管理提供了坚实支持。
OpenDDS严格遵循OMG的DDSV1.2规范,并沿用了ACE/TAO的开源许可协议。这意味着开发者在遵守版权声明的前提下,可以在各种环境中,包括商业应用,自由地使用和修改其源代码。目前,OpenDDS的最新版本已经更新到了v3.2,体现了其持续的更新和完善。
XRCE-DDS
XRCE-DDS是一种适用于资源受限微控制器(MCU)的DDS通信协议,它与FastDDS同源。在MCU上运行客户端,并通过代理服务参与DDS通信。
要实现XRCE-DDS在Linux环境下的代理安装与运行,首先需要下载并配置XRCE-DDS的代码库。执行命令:
git clone github.com/eProsima/Mic...
然后,配置并编译代码库,确保代理服务能在Linux系统上顺利运行。
对于Linux下的客户端安装与运行,同样需要下载XRCE-DDS的代码库,并按照文档指引完成配置与编译,使其能与代理服务进行通信。
在RTOS环境中,如FreeRTOS、RT-Thread或ThreadX等,只要它们支持POSIX接口,就具备了运行XRCE-DDS客户端的基础。为了快速进行移植测试,选择RT-Thread进行基于BSP工程的移植操作。此过程中,需确保XRCE-DDS代码库与RTOS环境之间的兼容性。
移植XRCE-DDS至RTOS环境,涉及以下步骤:首先,从源代码中获取所需模块;其次,配置移植目标环境的特定需求;接着,调整代码以适应RTOS的实时性与调度特性;最后,进行编译与测试,确保XRCE-DDS在RTOS上能正常运行。
在实际应用中,XRCE-DDS运行效果良好,能有效支持资源受限设备的实时通信需求。本文通过Zhihu On VSCode平台完成内容的创作与发布,展现了XRCE-DDS在不同环境下的适应性和实用性。
开源Fast-DDS安装示例及DDS模型架构
讨论本文的主题之前,先更正一个错误,在 DDS概述及DCPS模型一文中提到:CP Autosar中,暂时不支持DDS。此处表述有误,CP Autosar R-版本中,已开始支持DDS。
提示:本文使用Linux(Ubuntu.4)操作系统
DDS和Autosar一样,是一套标准,任何组织或者个体,均可以去实现它。不同组织或者公司实现该标准时,会形成不同的风格和版本。比如:Fast-DDS就是一套开源的DDS标准实现,由eProsima维护。之前讨论的MICRO-XRCE-DDS也由eProsima发布。MICRO-XRCE-DDS需要代理(Agent),面向的对象是MCU这种资源紧缺的Device,如果使用域控或者中央大脑对应的平台,在资源和算力足够的情况下,可以使用Fast-DDS,不用代理。
Fast-DDS安装及注意事
本文讨论的开源Fast-DDS采用源码安装方式,安装参考链接: fast-dds.docs.eprosima.com...
(一)3.1. Fast DDS library installation
本文选择"3.1. Fast DDS library installation"小节的方式安装,按照提示,逐步安装。
Q1:command vcs not found
A1:解决措施,修改PATH环境变量:PATH=$PATH:~/.local/bin
参考链接: cnblogs.com/tengzijian/...
(二)3.3. Fast DDS-Gen installation 安装Fast DDS-Gen的主要目的是根据用户自定义idl文件生成对应的源文件。编译Fast DDS-Gen之前,需要先安装Java JDK和Gradle。
需要将编辑好的*.idl文件放置在~~/Fast-DDS/Fast-DDS-Gen/Scripts文件下,*.idl文件放置位置如下所示:
在此文件夹下打开终端,并输入如下命令:
生成的源文件如下所示:
HelloWord示例
(一)启动Publisher
在示例进程中,使用命令行启动Publisher进程,如下所示:
(二)启动Subscriber
在示例进程中,使用命令行启动Subscriber进程,如下所示:
(三)订阅/发布的通信示意
Publisher与Subscriber之间的发布、订阅行为如下所示:
DDS模型架构
DDS模型架构可以分为四层:Application、DDS、RTPS、Transport。如下所示:
(一)Application
如果用户应用程序需要通过DDS协议与对等实体通信,可以直接调用封装的DDS API。发布数据时,可以调用DataWriter对象的Write()接口;接收数据时,可由SubscriberListener触发DataReader注册的on_data_on_readers()接口。
(二)DDS
DDS层可以部署多个DDS Domian,相同DDS Domian下的DomainParticipant通过Publish/Subscribe方式交互信息。关于DDS,后续文章会展开细节讨论,不在这过多赘述。
(三)RTPS
RTPS(Real-Time Publish-Subscribe),抽象传输层,为什么要抽象传输层呢?答:DDS协议并未有明确使用什么方式传输数据,但是,数据的交互又脱离不开通信方式。所以,这就是RTPS出现的目的。
(四)Transport
可使用多种方式传输DDS数据,eg:UDP、TCP、SHM(Shared Memory)。不管UDP还是TCP,使用的总线类型均为Ethernet,使用CAN或者其他总线是否可行呢?答:个人理解,可以。但是,任何方案的落地均脱离不了使用场景,如果使用场景是高速、大数据传输,选用CAN总线可不是一个明智之举。