基于opentcs-integration-example-master5.8增加实物车辆驱动

网上查不到资源,有一个大佬写的,但是基于opentcs4xx做的,和5xx版本有不少不同之处(这里也借鉴了大佬的部分知识)。
踩了不少坑,避免小伙伴们同样的花时间踩坑, 所以写这篇文章。废话不多说,开始:
环境: ubuntu16 + netbeans 22 + java13 +opentcs-integration-example-master5.8
最开始,建议先将包原始状态下编译成功、运行成功后再做,以减少排查问题的时间。
1、首先复制,项目中的openTCS-HFAGV-CommAdapter-Vehicle文件包,改名字为openTCS-HFAGV-CommAdapter-TEST(毕竟copy官方的代码再修修改改是速度很快的方法, 没有复制openTCS-Contrib-Communication-TCP是因为我车辆多半考虑也是tcp协议,暂时还没处理,要增加应该是差不多的流程):
在这里插入图片描述
2、然后在以下的文件增加下面这一行:
在这里插入图片描述
上面是在整个gradle中增加该包。
在这里插入图片描述
上面是在内核中增加该包
在这里插入图片描述
上面是在控制中心增加该包,做车辆数据交互面板。
3、接下来用netbeans打开整个opentcs项目,并在Files选项框中选中我们这个子包openTCS-HFAGV-CommAdapter-TEST,
在这里插入图片描述
4、将包里原本的commadapter文件夹名改为commadapter2(名字我随便取的,你按照你需要的修改,但是后面改文件名时要匹配)。

5、再点Edit-Replace in Projects
在这里插入图片描述

在这里插入图片描述
如上图,将Scope 改为 Current Project(看一下确保是openTCS-HFAGV-CommAdapter-TEST包)。
然后Containing Text、Replace With按照上图描述的填写------将所有涉及到的原始车辆驱动调用包前缀替换成我们的。
6、现在还没完,注意了,还有最后一步:
在这里插入图片描述
因为opentcs中采用了名字对驱动做了排序(VehicleCommAdapterRegistry中),所以他初始化时会取设置的名字,如果名字对应的bundle文件找不到,初始化是不成功的,需要将路径改成我们修改后的:
com/hfagv/commadapter/vehicle/Bundle
->com/hfagv/commadapter2/vehicle/Bundle

好了,这里就修改完成了。当然,为了区分不同驱动的名称,我们需要在Bundle文件中修改:(这个bundle文件貌似可以设置为中文,实际这个是汉化文档)
在这里插入图片描述
这里我修改为:HFAdapterFactoryDescription=CCCCCC。
最后编译看效果:
在这里插入图片描述
上面两个都是修改名字后的驱动,最后一个是虚拟车辆。
最后各位就可以根据不同车辆的不同特性编写这个TEST包里对应的.java了,完工

ps:
没想到这几个简单的操作,卡了我好几天

使用的包下载地址;
https://download.csdn.net/download/qq_20826539/88099494

Spring Integration提供了基于MQTT的适配器,可以很方便地集成MQTT协议到Spring应用程序中。下面是基于spring-integration-mqtt在生产环境中使用的步骤: 1. 添加依赖 在项目的pom.xml文件中,添加spring-integration-mqtt依赖: ```xml <dependency> <groupId>org.springframework.integration</groupId> <artifactId>spring-integration-mqtt</artifactId> <version>5.5.0</version> </dependency> ``` 2. 配置MQTT连接参数 在项目的配置文件中,添加MQTT连接参数: ```yaml spring: mqtt: url: tcp://localhost:1883 username: test password: test ``` 3. 配置MQTT消息通道 在Spring Integration中,可以使用`MessageChannel`来定义消息通道,下面是一个基本的MQTT消息通道配置: ```xml <int-mqtt:message-driven-channel-adapter id="mqttInboundAdapter" client-id="test" url="${spring.mqtt.url}" topics="test/topic" qos="1" channel="mqttInputChannel"> <int:poller fixed-delay="1000"/> </int-mqtt:message-driven-channel-adapter> <int:channel id="mqttInputChannel"/> ``` 4. 处理MQTT消息 在处理MQTT消息的地方,可以使用`@ServiceActivator`注解和`MessageHandler`接口来处理消息: ```java @Service public class MqttMessageHandler implements MessageHandler { @Override @ServiceActivator(inputChannel = "mqttInputChannel") public void handleMessage(Message<?> message) { String topic = message.getHeaders().get(MqttHeaders.TOPIC, String.class); String payload = message.getPayload().toString(); System.out.println("Received message - Topic: " + topic + ", Payload: " + payload); } } ``` 5. 发布MQTT消息 在需要发送MQTT消息的地方,可以使用`MessageChannel`来发送消息: ```java @Autowired private MessageChannel mqttOutputChannel; public void sendMessage() { mqttOutputChannel.send(MessageBuilder.withPayload("hello").setHeader(MqttHeaders.TOPIC, "test/topic").build()); } ``` 以上就是基于spring-integration-mqtt在生产环境中使用的步骤。需要注意的是,本文只是介绍了基本的MQTT使用方法,实际应用中还需要考虑消息质量、消息持久化等问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值