FastRTPS学习笔记(2):安装、创建简单应用_fastrtps 使用示例(1)

收集整理了一份《2024年最新物联网嵌入式全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升的朋友。
img
img

如果你需要这些资料,可以戳这里获取

需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人

都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

进入/opt目录从github克隆项目:

cd /opt
sudo git clone https://github.com/eProsima/Fast-RTPS

下载完成后如图所示,并在/opt目录下出现/Fast-RTPS文件夹

Cloning into 'Fast-RTPS'...
remote: Enumerating objects: 58488, done.
remote: Total 58488 (delta 0), reused 0 (delta 0), pack-reused 58488
Receiving objects: 100% (58488/58488), 71.27 MiB | 3.10 MiB/s, done.
Resolving deltas: 100% (39336/39336), done.
Checking connectivity... done.

1.3 编译安装

进入/opt/Fast-RTPS/目录下,创建build文件夹

cd /opt/Fast-RTPS/
sudo mkdir build

输入如下命令,修改/Fast-RTPS权限,不修改权限会在编译时出现Permission denied的情况

sudo chmod -R 777 /opt/Fast-RTPS/

进入/opt/Fast-RTPS/build/目录下

cd /opt/Fast-RTPS/build/

依次输入如下命令进行编译

cmake -DTHIRDPARTY=ON -DBUILD_JAVA=ON -DCOMPILE_EXAMPLES=ON -DPERFORMANCE_TESTS=ON ..
make
sudo make install

  • 如果需要编译fastrtpsgen java应用程序,调用CMake时添加参数-DBUILD_JAVA=ON
  • 如果需要编译示例,调用CMake时添加参数-DCOMPILE_EXAMPLES=ON
  • 如果需要编译性能测试,调用CMake时添加参数-DPERFORMANCE_TESTS=ON

至此,FastRTPS v1.8.0 已安装完成。

1.4 创建简单应用

1.4.1 编写简单程序

目录下创建testFastRTPS文件夹,进入~/testFastRTPS目录下

cd ~/testFastRTPS

创建HelloWorld.idl文件,并编写如下简单程序:

// HelloWorld.idl
struct HelloWorld
{
    string msg;
};

1.4.2 编译简单程序

通过fastrtpsgen工具将IDL文件生成C++代码

fastrtpsgen -example CMake HelloWorld.idl

使用ls命令查看当前~/testFastRTPS目录下文件

ls

~/testFastRTPS目录下有如下文件:

CMakeLists.txt  HelloWorldPublisher.cxx    HelloWorldPubSubTypes.h
HelloWorld.cxx  HelloWorldPublisher.h      HelloWorldSubscriber.cxx
HelloWorld.h    HelloWorldPubSubMain.cxx   HelloWorldSubscriber.h
HelloWorld.idl  HelloWorldPubSubTypes.cxx

在当前目录创建build文件夹,并进入build文件夹使用如下命令进行编译

mkdir build && cd build
cmake ..
make

使用ls命令查看当前~/testFastRTPS/build目录下文件

ls

~/testFastRTPS/build目录下有如下文件,其中HelloWorld即为执行程序

CMakeCache.txt  cmake_install.cmake  libHelloWorld_lib.a
CMakeFiles      HelloWorld           Makefile

1.4.3 运行简单示例

打开一个终端,进入~/testFastRTPS/build目录下,输入如下命令启动一个发布者

./HelloWorld publisher

显示如下,发布者创建成功,等待订阅者

Starting 
Publisher created, waiting for Subscribers.

打开第二个终端,进入~/testFastRTPS/build目录下,输入如下命令启动一个订阅者

./HelloWorld subscriber

显示如下,订阅者创建成功,等待数据发布

Starting 
Waiting for Data, press Enter to stop the Subscriber. 
Subscriber matched

如下图所示,在publisher端按y发送sample,在subscriber端即可接收到sample
发布者和订阅者


二、FastRTPS v1.5.0 安装运行

在树莓派3B+上安装FastRTPS v1.5.0

2.1 环境准备

  • Linux:Ubuntu MATE 16.04LTS
  • Make:GNU Make V4.1
  • JDK:1.8.0_211 【需下载jdk-8u211-linux-arm32-vfp-hflt版本】
  • Gradle:Gradle V5.4.1

2.2 下载FastRTPS v1.5.0

下载安装包eProsima_FastRTPS-1.5.0-Linux.tar.gz~/Download目录下
/opt目录下新建FastRTPS-1.5.0文件夹

sudo mkdir /opt/FastRTPS-1.5.0

将压缩包解压到FastRTPS-1.5.0文件夹下

sudo tar -zxvf eProsima_FastRTPS-1.5.0-Linux.tar.gz -C /opt/FastRTPS-1.5.0/

2.3 编译安装

参照README.txt进行编译安装
进入/requiredcomponents目录下将eProsima_FastCDR-1.0.7-Linux.tar.gz解压

cd requiredcomponents/
sudo tar -zxvf eProsima_FastCDR-1.0.7-Linux.tar.gz 

执行如下命令:

cd eProsima_FastCDR-1.0.7-Linux
./configure --libdir=/usr/lib
make
sudo make install

返回至/opt/FastRTPS-1.5.0目录下执行如下命令:

cd eProsima_FastRTPS-1.5.0-Linux
./configure --libdir=/usr/lib
make
sudo make install

至此,FastRTPS v1.5.0 已安装完成。

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新

需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)

如果你需要这些资料,可以戳这里获取

-1715872258731)]
[外链图片转存中…(img-qomnWOIw-1715872258732)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新

需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)

如果你需要这些资料,可以戳这里获取

  • 22
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值