Lightweight Communications and Marshalling (LCM)是消息传递和数据编码的工具库,高带宽和低延迟的实时系统,提供发布/订阅消息传递模型。
官方开源地址:https://github.com/lcm-proj/lcm
本文主要基于官方文档介绍JAVA版本的使用,本文在ubuntu下编译,下文设计的命令在ubuntu下有效。
本文收发地址 https://h89.cn/archives/479.html

lcm-gen编译安装

参考文档 build-instructions.md,相关命令如下:

$ git clone https://github.com/lcm-proj/lcm lcm-proj
$ cd lcm-proj
$ mkdir build
$ cd build
$ sudo apt install openjdk-8-jdk-headless cmake libglib2.0-dev build-essential
$ cmake ..
$ make

编程完成后,会在build目录生成相关的文件,将会用到以下两个文件
build/lcmgen/lcm-gen
build/lcm-java/lcm.jar

LCM 使用

LCM是基于发布、订阅消息模型,参考docs/content/tutorial-java.md

  • 发送消息源码:
    examples/java/example_t_demo/SendMessage.java

  • 订阅消息的源码:
    examples/java/example_t_demo/MySubscriber.java

  • 编译运行前,准备所需要的example_t.lcmlcm.jar

    $ cd examples/java/example_t_demo
    $ cp ../../types/example_t.lcm ./
    $ cp ../../../build/lcm-java/lcm.jar ./
  • 使用lcm-gen将*.lcm转换为exlcm/example_t.java
    ../../../build/lcmgen/lcm-gen -j example_t.lcm

  • 编译所有的java文件
    javac -cp .:lcm.jar *.java exlcm/*.java

  • 运行订阅者 MySubscriber
    java -cp .:lcm.jar MySubscriber

  • 新建一个命令窗口,运行发布者 SendMessage
    java -cp .:lcm.jar SendMessage

  • 运行正常,会在MySubscriber窗口显示如下数据

    问题备注

  1. 在WIFI下,收不到局域网的数据包,或者丢包严重

本文链接:基于LCM通讯的java版本使用 - https://h89.cn/archives/479.html

版权声明:原创文章 遵循 CC 4.0 BY-SA 版权协议,转载请附上原文链接和本声明。

标签: LCM, JAVA

评论已关闭