From 19c431878bc5d3b06fbda3f3fa8ae5023790c837 Mon Sep 17 00:00:00 2001
From: aijinhui <aijinhui>
Date: Wed, 15 Nov 2023 11:18:27 +0800
Subject: [PATCH] mqtt
---
ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarLockServiceImpl.java | 11 +++++++----
ard-work/src/main/java/com/ruoyi/utils/mqtt/MqttOnce.java | 11 ++++++++---
ard-work/src/main/java/com/ruoyi/utils/mqtt/MqttOnceCallback.java | 2 +-
3 files changed, 16 insertions(+), 8 deletions(-)
diff --git a/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarLockServiceImpl.java b/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarLockServiceImpl.java
index 7f25a5c..7390c64 100644
--- a/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarLockServiceImpl.java
+++ b/ard-work/src/main/java/com/ruoyi/sy/service/impl/ArdSyCarLockServiceImpl.java
@@ -1,5 +1,6 @@
package com.ruoyi.sy.service.impl;
+import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ruoyi.common.core.domain.AjaxResult;
@@ -312,10 +313,10 @@
AjaxResult.error(0,"该锁处于解封状态,远程无法操控,请先执行施封操作!");
}
String key = "";
- Double currentInfo = ardSyCarLock.getCurrentInfo();
- if(currentInfo.equals("C01")){
+ String currents = ardSyCarLock.getCurrents();
+ if(currents.equals("C01")){
key = "D03";
- }else if(currentInfo.equals("C02")){
+ }else if(currents.equals("C02")){
key = "D04";
}
Number lockState = (Number) lockTypeParam.getNum();
@@ -329,9 +330,11 @@
Map<String,Object> map = new HashMap();
map.put(key, lockState);//范围是0.01到99.99
map.put("res", String.valueOf(System.currentTimeMillis()));
+ String mapString = JSON.toJSONString(map);
+ System.out.println(mapString);
MqttOnce mqttOnce = new MqttOnce();
try {
- return AjaxResult.success(mqttOnce.publishCar("carId",ardSyCarRtu.getTopicPublish(),String.valueOf(new com.alibaba.fastjson2.JSONObject(map)),"开关锁指令"+lockState));
+ return AjaxResult.success(mqttOnce.publishCar("carId",ardSyCarRtu.getTopicPublish(), mapString,"开关锁指令"+lockTypeParam.getNum()));
} catch (MqttException e) {
log.debug("开关锁指令发送失败"+e);
}
diff --git a/ard-work/src/main/java/com/ruoyi/utils/mqtt/MqttOnce.java b/ard-work/src/main/java/com/ruoyi/utils/mqtt/MqttOnce.java
index db5af35..9f1f0fd 100644
--- a/ard-work/src/main/java/com/ruoyi/utils/mqtt/MqttOnce.java
+++ b/ard-work/src/main/java/com/ruoyi/utils/mqtt/MqttOnce.java
@@ -64,7 +64,7 @@
ArdSyCarRtuService carRtuService = SpringUtils.getBean(ArdSyCarRtuService.class);
//获取电磁锁地址
String mqttUrl = carRtuService.url("ElectromagneticLockUrl");
- MqttClient client = new MqttClient(mqttUrl,carId);
+ MqttClient client = new MqttClient(mqttUrl,carId+"mqTest");
//log.debug("--创建"+carId+"号车辆电子锁mqtt客户端");
return client;
}
@@ -90,9 +90,14 @@
client.connect(options);
MqttMessage msg = new MqttMessage(message.getBytes());
msg.setQos(2);
- client.publish(topic,msg);
+ try{
+ client.publish(topic,msg);
+ }catch (Exception e){
+ log.debug("发布消息失败"+topic+"消息:"+msg);
+ e.getMessage();
+ }
client.disconnect();
- return "发布"+type+"指令成功!";
+ return topic+"发布"+type+"指令成功!消息:"+msg;
}
}
diff --git a/ard-work/src/main/java/com/ruoyi/utils/mqtt/MqttOnceCallback.java b/ard-work/src/main/java/com/ruoyi/utils/mqtt/MqttOnceCallback.java
index 98675bc..6465d86 100644
--- a/ard-work/src/main/java/com/ruoyi/utils/mqtt/MqttOnceCallback.java
+++ b/ard-work/src/main/java/com/ruoyi/utils/mqtt/MqttOnceCallback.java
@@ -76,7 +76,7 @@
@Override
public void messageArrived(String topic, MqttMessage message) {
try {
-// System.out.println("【车辆锁主题】:"+topic+"【车辆锁信息】:"+new String(message.getPayload(), StandardCharsets.UTF_8));
+ System.out.println("【车辆锁主题】:"+topic+"【车辆锁信息】:"+new String(message.getPayload(), StandardCharsets.UTF_8));
//出来回调数据
List<ArdSyCarLock> ardSyCarLocks = carLockService.data(new String(message.getPayload(), StandardCharsets.UTF_8));
//根据topic查询RTUID
--
Gitblit v1.9.3