From 70f61b0638e32274d0e5f9b972ce2a18f139f1b4 Mon Sep 17 00:00:00 2001
From: zhubaomin <zhubaomin>
Date: 星期四, 12 六月 2025 09:51:30 +0800
Subject: [PATCH] Merge branch 'master' of http://8.140.179.55:20000/r/pipIrr-SV
---
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/mqtt/MqttMessageListener.java | 64 +---
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealAlarmStatusV202404.java | 27 +-
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/ReturnCommand.java | 3
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/mqtt/MqttSubMsgDealer.java | 41 +++
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/MqttMsgParser.java | 4
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V2/TkDealAlarmStatusV2.java | 5
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/downVos/IrrStartVo.java | 5
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/upVos/ManureVo.java | 22 +
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/mqtt/MqttUnitConfigVo.java | 2
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/comParam/ComCtrlVo.java | 4
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/Server.java | 1
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/status/DevRunInfo.java | 4
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/downVos/FaultClearVo.java | 4
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1/TkDealAlarmStatus.java | 9
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/channel/mqtt/MqttClientPool.java | 4
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/MqttSubMsg.java | 4
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/upVos/StateVo.java | 26 ++
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/web/com/CommandCtrl.java | 53 +++-
pipIrr-platform/pipIrr-mw/pipIrr-param-set/src/main/java/com/dy/pipIrrParamSet/paramSet/ParamSetMw.java | 10
pipIrr-platform/文档/打包发布/打包发布配置修改.docx | 0
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/downVos/StirStartVo.java | 5
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/global/GlParse.java | 8
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/MqttTopic.java | 14 +
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/upVos/WeatherVo.java | 24 +-
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/mqtt/DevStatusDealer.java | 6
pipIrr-platform/pipIrr-mw/pipIrr-param-set/src/main/java/com/dy/pipIrrParamSet/paramSet/ParamKey.java | 2
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/channel/mqtt/MqttClientPooledObjectFactory.java | 15 +
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/downVos/ParamSetVo.java | 31 ++
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/status/DevOnLineInfo.java | 2
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/ProtocolConstantSdV1.java | 1
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.properties | 4
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/upVos/SoilVo.java | 43 +++
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/downVos/InjectStartVo.java | 5
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.xml | 2
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/comParam/ComSetParamVo.java | 23 ++
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/CodeLocal.java | 4
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/CodeSdV1.java | 1
pipIrr-platform/pipIrr-mw/pipIrr-param-set/src/main/resources/application-params.yml | 20 +
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/MqttPubMsg.java | 2
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/mqtt/MqttPubMsgCache.java | 3
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/ServerShutDownHook.java | 2
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/mqtt/MqttManager.java | 35 ++
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/channel/mqtt/Test.java | 2
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/ProtocolParserSdV1.java | 80 +++++--
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/mqtt/MqttPubMsgNode.java | 8
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/MqttSubMsgSdV1.java | 19
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/CommandInnerDeaLer.java | 4
47 files changed, 478 insertions(+), 179 deletions(-)
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/channel/mqtt/MqttClientPool.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/channel/mqtt/MqttClientPool.java
index 1d6d60f..23ec867 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/channel/mqtt/MqttClientPool.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/channel/mqtt/MqttClientPool.java
@@ -13,8 +13,8 @@
private final GenericObjectPool<MqttClient> pool;
- public MqttClientPool(String broker, String username, String password, int maxConnections) {
- MqttClientPooledObjectFactory factory = new MqttClientPooledObjectFactory(broker, username, password);
+ public MqttClientPool(String broker, String username, String password, int maxConnections, boolean useMemoryPersistence) {
+ MqttClientPooledObjectFactory factory = new MqttClientPooledObjectFactory(broker, username, password, useMemoryPersistence);
GenericObjectPoolConfig<MqttClient> config = new GenericObjectPoolConfig<>();
config.setMaxTotal(maxConnections);
config.setMaxIdle(maxConnections);
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/channel/mqtt/MqttClientPooledObjectFactory.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/channel/mqtt/MqttClientPooledObjectFactory.java
index bd2eb0f..86fc682 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/channel/mqtt/MqttClientPooledObjectFactory.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/channel/mqtt/MqttClientPooledObjectFactory.java
@@ -5,6 +5,7 @@
import org.apache.commons.pool2.impl.DefaultPooledObject;
import org.eclipse.paho.client.mqttv3.MqttClient;
import org.eclipse.paho.client.mqttv3.MqttConnectOptions;
+import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;
/**
* @Author: liurunyu
@@ -16,18 +17,26 @@
private final String broker;
private final String username;
private final String password;
+ private final Boolean useMemoryPersistence;
- public MqttClientPooledObjectFactory(String broker, String username, String password) {
+ public MqttClientPooledObjectFactory(String broker, String username, String password, boolean useMemoryPersistence) {
this.broker = broker;
this.username = username;
this.password = password;
+ this.useMemoryPersistence = useMemoryPersistence;
}
@Override
public MqttClient create() throws Exception {
String clientId = MqttClient.generateClientId();
- MqttClient client = new MqttClient(broker, clientId);
-
+ MqttClient client = null ;
+ // 浣跨敤鍐呭瓨鎸佷箙鍖栬�岄潪榛樿鐨勬枃浠舵寔涔呭寲
+ if (useMemoryPersistence) {
+ MemoryPersistence persistence = new MemoryPersistence();
+ client = new MqttClient(broker, clientId, persistence);
+ }else{
+ client = new MqttClient(broker, clientId);
+ }
MqttConnectOptions options = new MqttConnectOptions();
options.setUserName(username);
options.setPassword(password.toCharArray());
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/channel/mqtt/Test.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/channel/mqtt/Test.java
index 2611e24..560067f 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/channel/mqtt/Test.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/channel/mqtt/Test.java
@@ -34,7 +34,7 @@
public static void main(String[] args) {
try{
// 鍒濆鍖栬繛鎺ユ睜
- pool = new MqttClientPool("tcp://" + mqSvIp + ":" + mqSvPort, mqSvUserName, mqSvUserPassword, maxConnections);
+ pool = new MqttClientPool("tcp://" + mqSvIp + ":" + mqSvPort, mqSvUserName, mqSvUserPassword, maxConnections, true);
MqttClient clientSub = pool.popClient() ;
testSubscribe(clientSub, topic1);
testSubscribe(clientSub, topic2);
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/global/GlParse.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/global/GlParse.java
index 80e7d3f..df54556 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/global/GlParse.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/global/GlParse.java
@@ -328,14 +328,16 @@
index += 8 ;
cdData.orderNo = ByteUtil.BCD2String_BE(bs, index, index + 7) ;
- index += 8 ;
- cdData.startDt = GlParse.parseRtuDt(bs, index) ;
-
if(cdData.clResult == (byte)0x81){
+ //2025-06-11 鐜嬫睙娴峰畨鎺�
//澶辫触浜嗭紝涓嬮潰灏辨病鏈夋暟鎹簡
return ;
}
+ index += 8 ;
+ cdData.startDt = GlParse.parseRtuDt(bs, index) ;
+
+
index += 6 ;
cdData.endDt = GlParse.parseRtuDt(bs, index) ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/MqttMsgParser.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/MqttMsgParser.java
index 11cfbd6..5a03f7e 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/MqttMsgParser.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/MqttMsgParser.java
@@ -21,7 +21,7 @@
vo.orgTag = topicGrp[0] ;
vo.protocol = topicGrp[1] ;
vo.devId = topicGrp[2] ;
- vo.topic = topicGrp[3] ;
+ vo.name = topicGrp[3] ;
return vo ;
}
}else{
@@ -30,7 +30,7 @@
}
public static String createPubTopic(MqttTopic tp) throws Exception {
- return tp.orgTag + "/" + tp.protocol + "/" + tp.devId + "/" + tp.topic ;
+ return tp.orgTag + "/" + tp.protocol + "/" + tp.devId + "/" + tp.name;
}
public static MqttSubMsg parseSubMsg(MqttTopic subTopic, MqttMessage mqttMsg, MqttCallback callback) throws Exception {
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/MqttPubMsg.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/MqttPubMsg.java
index bd864d3..eba4ecf 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/MqttPubMsg.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/MqttPubMsg.java
@@ -12,7 +12,7 @@
public String mqttResultSendWebUrl ;//Mqtt杩斿洖鍛戒护缁撴灉 鍙戝悜鐩殑鍦皐eb URL
- public String topic ;//娑堟伅涓婚
+ public MqttTopic topic ;//娑堟伅涓婚
public String msg ;//娑堟伅
public boolean isCacheForOffLine ;//涓嬭鍛戒护鎺у埗锛屾秷鎭腑闂翠欢涓嶅湪绾挎槸鍚︾紦瀛樺懡浠�
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/MqttSubMsg.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/MqttSubMsg.java
index bc144f2..8226de7 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/MqttSubMsg.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/MqttSubMsg.java
@@ -15,8 +15,8 @@
public String deviceId ;//璁惧ID
public String protocol;//鍗忚
- public String topic ;//娑堟伅涓婚
- public String msg ;//娑堟伅
+ public MqttTopic topic ;//娑堟伅涓婚
+ public String metaData;//MQTT鎺ㄩ�佹潵鐨勫厓鏁版嵁
public abstract boolean valid();
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/MqttTopic.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/MqttTopic.java
index 8403a73..d088e08 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/MqttTopic.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/MqttTopic.java
@@ -16,6 +16,18 @@
public String orgTag ;//缁勭粐鏍囪瘑
public String protocol ;//鍗忚鍚嶇О
public String devId ;//璁惧锛團Box锛塈D
- public String topic ;//娑堟伅涓婚
+ public String name;//娑堟伅涓婚鏈鍚嶇О
+ public boolean isEmpty(){
+ return orgTag == null || protocol == null || devId == null || name == null
+ || orgTag.trim().length() == 0 || protocol.trim().length() == 0 || devId.trim().length() == 0 || name.trim().length() == 0 ;
+ }
+
+ public String shortName(){
+ return name;
+ }
+
+ public String longName(){
+ return orgTag + "/" + protocol + "/" + devId + "/" + name;
+ }
}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/CodeSdV1.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/CodeSdV1.java
index 4d0cd99..a78f8b0 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/CodeSdV1.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/CodeSdV1.java
@@ -10,4 +10,5 @@
public static final String cd_Stir = "01" ;//鎼呮媽鍚仠鍛戒护
public static final String cd_Inject = "02" ;//娉ㄨ偉鍚仠鍛戒护
public static final String cd_Irr = "03" ;//鐏屾簤鍚仠鍛戒护
+ public static final String cd_Param = "10" ;//璁惧畾鍙傛暟
}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/MqttSubMsgSdV1.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/MqttSubMsgSdV1.java
index 001b8c3..c654c22 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/MqttSubMsgSdV1.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/MqttSubMsgSdV1.java
@@ -24,8 +24,8 @@
public MqttSubMsgSdV1(MqttTopic subTopic, String msg) {
this.deviceId = subTopic.devId ;
this.protocol = subTopic.protocol ;
- this.topic = subTopic.topic ;
- this.msg = msg ;
+ this.topic = subTopic ;
+ this.metaData = msg ;
}
public String toString(){
StringBuilder sb = new StringBuilder();
@@ -35,24 +35,25 @@
.append("\n") ;
}
sb.append("涓婚:")
- .append(topic)
- .append("\n") ;
- sb.append("娑堟伅:")
- .append(msg)
+ .append(topic.longName())
.append("\n") ;
if(vo4Up != null){
sb.append("鏁版嵁:")
.append(vo4Up.toString())
.append("\n") ;
+ }else{
+ sb.append("鍏冩暟鎹�:")
+ .append(metaData)
+ .append("\n") ;
}
-
return sb.toString() ;
}
public boolean subMsgMatchPubMsg(MqttPubMsg pubMsg){
if (pubMsg instanceof MqttPubMsgSdV1) {
- MqttPubMsgSdV1 pubMsgSdV1 = (MqttPubMsgSdV1) pubMsg;
+ //MqttPubMsgSdV1 pubMsgSdV1 = (MqttPubMsgSdV1) pubMsg;
if(this.vo4Up != null && this.vo4Up instanceof StateVo){
+ //鍙涓婃姤鐨勬槸鐘舵�佹暟鎹紝璇存槑璁惧鍝嶅簲浜嗗懡浠�
return true ;
}
}
@@ -64,7 +65,7 @@
if (topic == null || topic.isEmpty()) {
return false;
}
- if (msg == null || msg.isEmpty()) {
+ if (metaData == null || metaData.isEmpty()) {
return false;
}
return true;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/ProtocolConstantSdV1.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/ProtocolConstantSdV1.java
index 60dc354..8961281 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/ProtocolConstantSdV1.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/ProtocolConstantSdV1.java
@@ -20,5 +20,6 @@
public static final String PubTopicStir = "ctrlStir" ;//鎼呮媽鍚仠
public static final String PubTopicInject = "ctrlInject" ;//娉ㄨ偉鍚仠
public static final String PubTopicIrr = "ctrlIrr" ;//鐏屾簤鍚仠
+ public static final String PubTopicParam = "setParam" ;//璁剧疆鍙傛暟
}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/ProtocolParserSdV1.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/ProtocolParserSdV1.java
index df625b1..1a7d373 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/ProtocolParserSdV1.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/ProtocolParserSdV1.java
@@ -4,14 +4,16 @@
import com.alibaba.fastjson2.JSONObject;
import com.dy.common.mw.protocol.Command;
import com.dy.common.mw.protocol4Mqtt.MqttCallback;
-import com.dy.common.mw.protocol4Mqtt.MqttMsgParser;
import com.dy.common.mw.protocol4Mqtt.MqttTopic;
import com.dy.common.mw.protocol4Mqtt.Vo4Up;
import com.dy.common.mw.protocol4Mqtt.pSdV1.comParam.ComCtrlVo;
+import com.dy.common.mw.protocol4Mqtt.pSdV1.comParam.ComSetParamVo;
import com.dy.common.mw.protocol4Mqtt.pSdV1.downVos.FaultClearVo;
import com.dy.common.mw.protocol4Mqtt.pSdV1.downVos.InjectStartVo;
+import com.dy.common.mw.protocol4Mqtt.pSdV1.downVos.ParamSetVo;
import com.dy.common.mw.protocol4Mqtt.pSdV1.downVos.StirStartVo;
import com.dy.common.mw.protocol4Mqtt.pSdV1.upVos.*;
+import com.dy.common.mw.protocol4Mqtt.status.DevRunInfo;
import org.eclipse.paho.client.mqttv3.MqttMessage;
/**
@@ -21,38 +23,46 @@
*/
public class ProtocolParserSdV1 {
public MqttSubMsgSdV1 parseSubMsg(MqttTopic subTopic, MqttMessage mqttMsg, MqttCallback callback) throws Exception {
- String msg = new String(mqttMsg.getPayload(), "UTF-8");
- if(JSON.isValid(msg)){
- throw new Exception("鎺ユ敹鍒癕QTT娑堟伅锛屽崗璁�" + subTopic.protocol + "锛岃澶嘔D" + subTopic.devId + "锛屼富棰�" + subTopic.topic + "娑堟伅鏍煎紡闈瀓son鏁版嵁(" + msg + ")") ;
+ String strTxt = new String(mqttMsg.getPayload(), "UTF-8");
+ if(!JSON.isValid(strTxt)){
+ throw new Exception("鎺ユ敹鍒癕QTT娑堟伅锛屽崗璁�" + subTopic.protocol + "锛岃澶嘔D" + subTopic.devId + "锛屼富棰�" + subTopic.longName() + "娑堟伅鏍煎紡闈瀓son鏁版嵁(" + strTxt + ")") ;
}
- MqttSubMsgSdV1 ms = new MqttSubMsgSdV1(subTopic, msg);
+ MqttSubMsgSdV1 msg = new MqttSubMsgSdV1(subTopic, strTxt);
Vo4Up vo ;
- switch (subTopic.topic) {
+ DevRunInfo stInfo = null ;
+ switch (subTopic.name) {
case ProtocolConstantSdV1.SubTopicWeather -> {
- vo = JSON.parseObject(msg, WeatherVo.class);
+ vo = JSON.parseObject(strTxt, WeatherVo.class);
break;
}
case ProtocolConstantSdV1.SubTopicSoil -> {
- vo = JSON.parseObject(msg, SoilVo.class);
+ vo = JSON.parseObject(strTxt, SoilVo.class);
break;
}
case ProtocolConstantSdV1.SubTopicManure -> {
- vo = JSON.parseObject(msg, ManureVo.class);
+ vo = JSON.parseObject(strTxt, ManureVo.class);
break;
}
case ProtocolConstantSdV1.SubTopicState -> {
//姝ゅ鏈畬鎴愶紝搴旇浜х敓涓�浜涢�氫俊鐨刬nfo锛屼緵涓嬮潰callback.notify(objs)閫氱煡鍑哄幓
- vo = JSON.parseObject(msg, StateVo.class);
+ vo = JSON.parseObject(strTxt, StateVo.class);
+ StateVo stVo = (StateVo)vo ;
+ stInfo = new DevRunInfo() ;
+ stInfo.devId = msg.deviceId ;
+ stInfo.stirRunning = (stVo.stirRunning==null?false:(stVo.stirRunning.byteValue()==1?true:false)) ; //鎼呮媽杩愯 true鏄� false鍚�
+ stInfo.injectRunning = (stVo.injectRunning==null?false:(stVo.injectRunning.byteValue()==1?true:false)) ; //娉ㄨ偉杩愯 true鏄� false鍚�
+ stInfo.irrRunning = (stVo.irrRunning==null?false:(stVo.irrRunning.byteValue()==1?true:false)) ; //鐏屾簤杩愯 true鏄� false鍚�
+ stInfo.alarm = (stVo.alarm==null?false:(stVo.alarm.byteValue()==1?true:false)) ; //鎶ヨ true鏄� false鍚�
break;
}
default -> {
- throw new Exception("鎺ユ敹鍒癕QTT娑堟伅锛屽崗璁�" + subTopic.protocol + "锛岃澶嘔D" + subTopic.devId + "锛屼富棰�" + subTopic.topic + "娑堟伅瑙f瀽閫昏緫鏈疄鐜�");
+ throw new Exception("鎺ユ敹鍒癕QTT娑堟伅锛屽崗璁�" + subTopic.protocol + "锛岃澶嘔D" + subTopic.devId + "锛屼富棰�" + subTopic.name + "娑堟伅瑙f瀽閫昏緫鏈疄鐜�");
}
}
- ms.vo4Up = vo ;
- callback.callback(ms);
- callback.notify(null);//姝ゅ鏈畬鎴�
- return ms;
+ msg.vo4Up = vo ;
+ callback.callback(msg);
+ callback.notify(msg.deviceId, stInfo);
+ return msg;
}
public MqttPubMsgSdV1 createPubMsg(String orgTag, Command com) throws Exception {
@@ -86,6 +96,13 @@
msg = this.createPubMsgOfIrr(orgTag, com);
break;
}
+ case CodeSdV1.cd_Param -> {
+ //璁剧疆鍙傛暟
+ this.checkParam(com);
+ this.checkRtnWebUrl(com);
+ msg = this.createPubMsgOfParam(orgTag, com);
+ break;
+ }
default -> {
throw new Exception("鎺ユ敹鍒癕QTT鍛戒护锛屽崗璁�" + com.protocol + "鐗堟湰" + com.protocolVersion + "鍔熻兘鐮�" + com.code + "鏋勯�犲櫒鏈疄鐜�");
}
@@ -114,8 +131,8 @@
msg.isCacheForOffLine = false ;
msg.hasResponse = true ;
msg.cd = CodeSdV1.cd_Fault ;
- msg.topic = MqttMsgParser.createPubTopic(new MqttTopic(orgTag, com.protocol, com.rtuAddr, ProtocolConstantSdV1.PubTopicFault)) ;
- msg.msg = JSON.toJSONString(new FaultClearVo(cvo.isDo)) ;
+ msg.topic = new MqttTopic(orgTag, com.protocol, com.rtuAddr, ProtocolConstantSdV1.PubTopicFault) ;
+ msg.msg = JSON.toJSONString(new FaultClearVo(cvo.startTrueStopFalse ?(byte)1:0)) ;
return msg ;
}
private MqttPubMsgSdV1 createPubMsgOfStir(String orgTag, Command com) throws Exception {
@@ -130,8 +147,8 @@
msg.isCacheForOffLine = false ;
msg.hasResponse = true ;
msg.cd = CodeSdV1.cd_Fault ;
- msg.topic = MqttMsgParser.createPubTopic(new MqttTopic(orgTag, com.protocol, com.rtuAddr, ProtocolConstantSdV1.PubTopicFault)) ;
- msg.msg = JSON.toJSONString(new StirStartVo(cvo.isDo)) ;
+ msg.topic = new MqttTopic(orgTag, com.protocol, com.rtuAddr, ProtocolConstantSdV1.PubTopicStir) ;
+ msg.msg = JSON.toJSONString(new StirStartVo(cvo.startTrueStopFalse ?(byte)1:0)) ;
return msg ;
}
private MqttPubMsgSdV1 createPubMsgOfInject(String orgTag, Command com) throws Exception {
@@ -146,8 +163,8 @@
msg.isCacheForOffLine = false ;
msg.hasResponse = true ;
msg.cd = CodeSdV1.cd_Fault ;
- msg.topic = MqttMsgParser.createPubTopic(new MqttTopic(orgTag, com.protocol, com.rtuAddr, ProtocolConstantSdV1.PubTopicFault)) ;
- msg.msg = JSON.toJSONString(new InjectStartVo(cvo.isDo)) ;
+ msg.topic = new MqttTopic(orgTag, com.protocol, com.rtuAddr, ProtocolConstantSdV1.PubTopicInject) ;
+ msg.msg = JSON.toJSONString(new InjectStartVo(cvo.startTrueStopFalse ?(byte)1:0)) ;
return msg ;
}
private MqttPubMsgSdV1 createPubMsgOfIrr(String orgTag, Command com) throws Exception {
@@ -162,8 +179,25 @@
msg.isCacheForOffLine = false ;
msg.hasResponse = true ;
msg.cd = CodeSdV1.cd_Fault ;
- msg.topic = MqttMsgParser.createPubTopic(new MqttTopic(orgTag, com.protocol, com.rtuAddr, ProtocolConstantSdV1.PubTopicFault)) ;
- msg.msg = JSON.toJSONString(new StirStartVo(cvo.isDo)) ;
+ msg.topic = new MqttTopic(orgTag, com.protocol, com.rtuAddr, ProtocolConstantSdV1.PubTopicIrr) ;
+ msg.msg = JSON.toJSONString(new StirStartVo(cvo.startTrueStopFalse ?(byte)1:0)) ;
+ return msg ;
+ }
+
+ private MqttPubMsgSdV1 createPubMsgOfParam(String orgTag, Command com) throws Exception {
+ JSONObject obj = (JSONObject) com.param;
+ String json = obj.toJSONString();
+ ComSetParamVo cvo = JSON.parseObject(json, ComSetParamVo.class);
+ if(cvo == null){
+ throw new Exception("json杞珻omSetParamVo涓簄ull") ;
+ }
+ MqttPubMsgSdV1 msg = new MqttPubMsgSdV1() ;
+ this.setPubMsgBase(com, msg);
+ msg.isCacheForOffLine = false ;
+ msg.hasResponse = false ;
+ msg.cd = CodeSdV1.cd_Param ;
+ msg.topic = new MqttTopic(orgTag, com.protocol, com.rtuAddr, ProtocolConstantSdV1.PubTopicParam) ;
+ msg.msg = JSON.toJSONString(new ParamSetVo(cvo.stirDuration, cvo.injectDuration)) ;
return msg ;
}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/comParam/ComCtrlVo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/comParam/ComCtrlVo.java
index 185e4f5..6e6e9f6 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/comParam/ComCtrlVo.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/comParam/ComCtrlVo.java
@@ -6,7 +6,7 @@
* @Description
*/
public class ComCtrlVo {
- //鏄惁鎺у埗鍔ㄤ綔锛宼rue鏄紝false鍚�
+ //鍚仠鍔ㄤ綔锛宼rue鏄紝false鍚�
//鍙互鎵ц鍔熻兘鐮� 00锛�01锛�02锛�03鐨勫姩浣�
- public boolean isDo;//
+ public boolean startTrueStopFalse;//
}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/comParam/ComSetParamVo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/comParam/ComSetParamVo.java
new file mode 100644
index 0000000..a14d5b1
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/comParam/ComSetParamVo.java
@@ -0,0 +1,23 @@
+package com.dy.common.mw.protocol4Mqtt.pSdV1.comParam;
+
+import com.alibaba.fastjson2.annotation.JSONField;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/6/11 17:03
+ * @Description
+ */
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class ComSetParamVo {
+ // 鎼呮媽璁惧畾鏃堕棿
+ public Integer stirDuration ;
+
+ // 娉ㄨ偉璁惧畾鏃堕棿
+ public Integer injectDuration ;
+
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/downVos/FaultClearVo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/downVos/FaultClearVo.java
index e9657ce..ec31c5b 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/downVos/FaultClearVo.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/downVos/FaultClearVo.java
@@ -16,10 +16,10 @@
@AllArgsConstructor
public class FaultClearVo implements Vo4Down {
@JSONField(name = "鏁呴殰瑙i櫎")
- public boolean isDo ;
+ public Byte isDo ;//1鏄紝0鍚�
@Override
public String toString(){
- return "鏁呴殰瑙i櫎锛�" + (isDo?"鏄�":"鍚�") ;
+ return "鏁呴殰瑙i櫎锛�" + (isDo==1?"鏄�":"鍚�") ;
}
}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/downVos/InjectStartVo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/downVos/InjectStartVo.java
index 4311fd2..5e4190e 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/downVos/InjectStartVo.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/downVos/InjectStartVo.java
@@ -16,9 +16,10 @@
@AllArgsConstructor
public class InjectStartVo implements Vo4Down {
@JSONField(name = "娉ㄨ偉鍚仠")
- public boolean isDo ;//true涓哄惎锛宖alse涓哄仠
+ public Byte isDo ;//1鏄紝0鍚�
+
@Override
public String toString(){
- return "娉ㄨ偉鍚仠锛�" + (isDo?"鍚�":"鍋�") ;
+ return "娉ㄨ偉鍚仠锛�" + (isDo==1?"鍚�":"鍋�") ;
}
}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/downVos/IrrStartVo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/downVos/IrrStartVo.java
index f05c154..69feb68 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/downVos/IrrStartVo.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/downVos/IrrStartVo.java
@@ -16,9 +16,10 @@
@AllArgsConstructor
public class IrrStartVo implements Vo4Down {
@JSONField(name = "鐏屾簤鍚仠")
- public boolean isDo ;//true涓哄惎锛宖alse涓哄仠
+ public Byte isDo ;//1鏄紝0鍚�
+
@Override
public String toString(){
- return "鐏屾簤鍚仠锛�" + (isDo?"鍚�":"鍋�") ;
+ return "鐏屾簤鍚仠锛�" + (isDo==1?"鏄�":"鍚�") ;
}
}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/downVos/ParamSetVo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/downVos/ParamSetVo.java
new file mode 100644
index 0000000..48ecd14
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/downVos/ParamSetVo.java
@@ -0,0 +1,31 @@
+package com.dy.common.mw.protocol4Mqtt.pSdV1.downVos;
+
+import com.alibaba.fastjson2.annotation.JSONField;
+import com.dy.common.mw.protocol4Mqtt.Vo4Down;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/6/11 16:55
+ * @Description
+ */
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class ParamSetVo implements Vo4Down {
+ @JSONField(name = "鎼呮媽璁惧畾鏃堕棿")
+ public Integer stirDuration ;
+
+ @JSONField(name = "娉ㄨ偉璁惧畾鏃堕棿")
+ public Integer injectDuration ;
+
+ @Override
+ public String toString(){
+ StringBuilder sb = new StringBuilder();
+ sb.append("鎼呮媽璁惧畾鏃堕棿锛�" + stirDuration + "\n" );
+ sb.append("娉ㄨ偉璁惧畾鏃堕棿锛�" + injectDuration + "\n" );
+ return sb.toString();
+ }
+}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/downVos/StirStartVo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/downVos/StirStartVo.java
index 44baf99..333207e 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/downVos/StirStartVo.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/downVos/StirStartVo.java
@@ -16,9 +16,10 @@
@AllArgsConstructor
public class StirStartVo implements Vo4Down {
@JSONField(name = "鎼呮媽鍚仠")
- public boolean isDo ;//true涓哄惎锛宖alse涓哄仠
+ public Byte isDo ;//1鏄紝0鍚�
+
@Override
public String toString(){
- return "鎼呮媽鍚仠锛�" + (isDo?"鍚�":"鍋�") ;
+ return "鎼呮媽鍚仠锛�" + (isDo==1?"鏄�":"鍚�") ;
}
}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/upVos/ManureVo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/upVos/ManureVo.java
index f038514..a2f9ae8 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/upVos/ManureVo.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/upVos/ManureVo.java
@@ -12,6 +12,18 @@
*/
@Data
public class ManureVo implements Vo4Up {
+ @JSONField(name = "flexem_message_id")
+ public Integer messageId ;//娑堟伅ID
+
+ @JSONField(name = "鑲ユ枡娴侀噺")
+ public Float manureFlow ;//鑲ユ枡娴侀噺
+
+ @JSONField(name = "娉ㄨ偉鏃堕暱")
+ public Integer manureTime ;//娉ㄨ偉鏃堕暱
+
+ @JSONField(name = "鎼呮媽鏃堕暱")
+ public Integer stirTime ;//鎼呮媽鏃堕暱
+
@JSONField(name = "flexem_timestamp")
public Long devDt ;//璁惧鏃堕棿
@@ -27,9 +39,13 @@
@Override
public String toString(){
StringBuilder sb = new StringBuilder();
- sb.append("姘磋偉鏁版嵁锛�") ;
- sb.append(" 璁惧鏃堕棿锛�"+devDt) ;
- sb.append(" 璁惧鏃堕棿锛�"+ this.getDevDtStr()) ;
+ sb.append("姘磋偉鏁版嵁=>") ;
+ sb.append(" 娑堟伅ID锛�" + messageId + ", ") ;
+ sb.append(" 鑲ユ枡娴侀噺锛�" + manureFlow + ", ") ;
+ sb.append(" 娉ㄨ偉鏃堕暱锛�" + manureTime + ", ") ;
+ sb.append(" 鎼呮媽鏃堕暱锛�" + stirTime + ", ") ;
+ sb.append(" 璁惧鏃堕棿锛�" + devDt + ", ") ;
+ sb.append(" 璁惧鏃堕棿锛�" + this.getDevDtStr() + ", ") ;
sb.append("\n") ;
return sb.toString() ;
}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/upVos/SoilVo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/upVos/SoilVo.java
index a465609..f5bb1e0 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/upVos/SoilVo.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/upVos/SoilVo.java
@@ -12,6 +12,33 @@
*/
@Data
public class SoilVo implements Vo4Up {
+ @JSONField(name = "flexem_message_id")
+ public Integer messageId ;//娑堟伅ID
+
+ @JSONField(name = "鍦熷¥婀垮害1")
+ public Float soilHumidity1 ;//鍦熷¥婀垮害1
+
+ @JSONField(name = "鍦熷¥婀垮害2")
+ public Float soilHumidity2 ;//鍦熷¥婀垮害2
+
+ @JSONField(name = "鍦熷¥婀垮害3")
+ public Float soilHumidity3 ;//鍦熷¥婀垮害3
+
+ @JSONField(name = "鍦熷¥婀垮害4")
+ public Float soilHumidity4 ;//鍦熷¥婀垮害4
+
+ @JSONField(name = "鍦熷¥婀垮害1")
+ public Float soilTemperature1 ;//鍦熷¥娓╁害1
+
+ @JSONField(name = "鍦熷¥娓╁害2")
+ public Float soilTemperature2 ;//鍦熷¥娓╁害2
+
+ @JSONField(name = "鍦熷¥娓╁害3")
+ public Float soilTemperature3 ;//鍦熷¥娓╁害3
+
+ @JSONField(name = "鍦熷¥娓╁害4")
+ public Float soilTemperature4 ;//鍦熷¥娓╁害4
+
@JSONField(name = "flexem_timestamp")
public Long devDt ;//璁惧鏃堕棿
@@ -27,10 +54,20 @@
@Override
public String toString(){
StringBuilder sb = new StringBuilder();
- sb.append("澧掓儏鏁版嵁锛�") ;
- sb.append(" 璁惧鏃堕棿锛�"+devDt) ;
- sb.append(" 璁惧鏃堕棿锛�"+ this.getDevDtStr()) ;
+ sb.append("澧掓儏鏁版嵁=>") ;
+ sb.append(" 娑堟伅ID锛�" + messageId + ", ") ;
+ sb.append(" 鍦熷¥婀垮害1锛�" + soilHumidity1 + ", ") ;
+ sb.append(" 鍦熷¥婀垮害2锛�" + soilHumidity2 + ", ") ;
+ sb.append(" 鍦熷¥婀垮害3锛�" + soilHumidity3 + ", ") ;
+ sb.append(" 鍦熷¥婀垮害4锛�" + soilHumidity4 + ", ") ;
+ sb.append(" 鍦熷¥娓╁害1锛�" + soilTemperature1 + ", ") ;
+ sb.append(" 鍦熷¥娓╁害2锛�" + soilTemperature2 + ", ") ;
+ sb.append(" 鍦熷¥娓╁害3锛�" + soilTemperature3 + ", ") ;
+ sb.append(" 鍦熷¥娓╁害4锛�" + soilTemperature4 + ", ") ;
+ sb.append(" 璁惧鏃堕棿锛�" + devDt + ", ") ;
+ sb.append(" 璁惧鏃堕棿锛�" + this.getDevDtStr() + ", ") ;
sb.append("\n") ;
return sb.toString() ;
+
}
}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/upVos/StateVo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/upVos/StateVo.java
index cae3afc..fb3885d 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/upVos/StateVo.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/upVos/StateVo.java
@@ -12,6 +12,21 @@
*/
@Data
public class StateVo implements Vo4Up {
+ @JSONField(name = "flexem_message_id")
+ public Integer messageId ;//娑堟伅ID
+
+ @JSONField(name = "鎼呮媽杩愯")
+ public Byte stirRunning ;//鎼呮媽杩愯
+
+ @JSONField(name = "娉ㄨ偉杩愯")
+ public Byte injectRunning ;//娉ㄨ偉杩愯
+
+ @JSONField(name = "鐏屾簤杩愯")
+ public Byte irrRunning ;//鐏屾簤杩愯
+
+ @JSONField(name = "鎶ヨ")
+ public Byte alarm ;//鎶ヨ
+
@JSONField(name = "flexem_timestamp")
public Long devDt ;//璁惧鏃堕棿
@@ -27,9 +42,14 @@
@Override
public String toString(){
StringBuilder sb = new StringBuilder();
- sb.append("鐘舵�佹暟鎹細") ;
- sb.append(" 璁惧鏃堕棿锛�"+devDt) ;
- sb.append(" 璁惧鏃堕棿锛�"+ this.getDevDtStr()) ;
+ sb.append("鐘舵�佹暟鎹�=>") ;
+ sb.append(" 娑堟伅ID锛�" + messageId + ", ") ;
+ sb.append(" 鎼呮媽杩愯锛�" + stirRunning + ", ") ;
+ sb.append(" 娉ㄨ偉杩愯锛�" + injectRunning + ", ") ;
+ sb.append(" 鐏屾簤杩愯锛�" + irrRunning + ", ") ;
+ sb.append(" 鎶ヨ锛�" + alarm + ", ") ;
+ sb.append(" 璁惧鏃堕棿锛�" + devDt + ", ") ;
+ sb.append(" 璁惧鏃堕棿锛�" + this.getDevDtStr() + ", ") ;
sb.append("\n") ;
return sb.toString() ;
}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/upVos/WeatherVo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/upVos/WeatherVo.java
index 6ebc8be..170bf51 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/upVos/WeatherVo.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/pSdV1/upVos/WeatherVo.java
@@ -43,7 +43,7 @@
public String devDtStr ;//璁惧鏃堕棿
public String getDevDtStr() {
- if(devDt == null){
+ if(devDt != null){
return DateTime.yyyy_MM_dd_HH_mm_ss(DateTime.getDate(devDt)) ;
}else{
return "" ;
@@ -53,17 +53,17 @@
@Override
public String toString(){
StringBuilder sb = new StringBuilder();
- sb.append("姘旇薄鏁版嵁锛�") ;
- sb.append(" 娑堟伅ID锛�"+messageId) ;
- sb.append(" 浜屾哀鍖栫⒊锛�"+carbonDioxide) ;
- sb.append(" 鍏夌収寮哄害锛�"+lightIntensity) ;
- sb.append(" 澶ф皵鍘嬪姏锛�"+atmosphericPressure) ;
- sb.append(" 绌烘皵娓╁害锛�"+airTemperature) ;
- sb.append(" 绌烘皵婀垮害锛�"+airHumidity) ;
- sb.append(" PM2.5锛�"+pm25) ;
- sb.append(" PM10锛�"+pm10) ;
- sb.append(" 璁惧鏃堕棿锛�"+devDt) ;
- sb.append(" 璁惧鏃堕棿锛�"+ this.getDevDtStr()) ;
+ sb.append("姘旇薄鏁版嵁=>") ;
+ sb.append(" 娑堟伅ID锛�" + messageId + ", ") ;
+ sb.append(" 浜屾哀鍖栫⒊锛�" + carbonDioxide + ", ") ;
+ sb.append(" 鍏夌収寮哄害锛�" + lightIntensity + ", ") ;
+ sb.append(" 澶ф皵鍘嬪姏锛�" + atmosphericPressure + ", ") ;
+ sb.append(" 绌烘皵娓╁害锛�" + airTemperature + ", ") ;
+ sb.append(" 绌烘皵婀垮害锛�" + airHumidity + ", ") ;
+ sb.append(" PM2.5锛�" + pm25 + ", ") ;
+ sb.append(" PM10锛�" + pm10 + ", ") ;
+ sb.append(" 璁惧鏃堕棿锛�" + devDt + ", ") ;
+ sb.append(" 璁惧鏃堕棿锛�" + this.getDevDtStr() + ", ") ;
sb.append("\n") ;
return sb.toString() ;
}
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/status/DevOnLineSt.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/status/DevOnLineInfo.java
similarity index 83%
rename from pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/status/DevOnLineSt.java
rename to pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/status/DevOnLineInfo.java
index 1092b27..99eda6c 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/status/DevOnLineSt.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/status/DevOnLineInfo.java
@@ -9,7 +9,7 @@
* @Description
*/
@Data
-public class DevOnLineSt implements MqttNotifyInfo {
+public class DevOnLineInfo implements MqttNotifyInfo {
public String id ;
public String protocol ;
public Boolean onLine ;
diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/status/DevRunSt.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/status/DevRunInfo.java
similarity index 82%
rename from pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/status/DevRunSt.java
rename to pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/status/DevRunInfo.java
index 0fe300a..4811f1c 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/status/DevRunSt.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol4Mqtt/status/DevRunInfo.java
@@ -9,8 +9,8 @@
* @Description
*/
@Data
-public class DevRunSt implements MqttNotifyInfo {
- public String id ;
+public class DevRunInfo implements MqttNotifyInfo {
+ public String devId ;//MQTT璁剧疆ID
public Boolean stirRunning ;//鎼呮媽杩愯 true鏄� false鍚�
public Boolean injectRunning ;//娉ㄨ偉杩愯 true鏄� false鍚�
public Boolean irrRunning ;//鐏屾簤杩愯 true鏄� false鍚�
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/Server.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/Server.java
index 0cf1c24..e823bbd 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/Server.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/Server.java
@@ -474,6 +474,7 @@
if(mqVo.poolMaxSize <= 1 || mqVo.poolMaxSize > 1000){
throw new Exception("config.mqtt.poolMaxSize閰嶇疆鐨勮繛鎺ユ睜杩炴帴鏈�澶ф暟閲忎笉鍚堟硶") ;
}
+ mqVo.useMemoryPersistence = conf.getSetAttrBoolean(doc, "config.mqtt", "useMemoryPersistence", null, null) ;
String proAndDevIds = conf.getSetAttrTxt(doc, "config.mqtt", "protocolAndDeviceIds", null, false, null) ;
if(proAndDevIds == null || proAndDevIds.trim().equals("")){
throw new Exception("config.mqtt.protocolAndDeviceIds閰嶇疆涓嶅悎娉�") ;
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/ServerShutDownHook.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/ServerShutDownHook.java
index 5171b77..95a6248 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/ServerShutDownHook.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/ServerShutDownHook.java
@@ -32,7 +32,7 @@
com2.code = CodeLocal.stopMqttSv ;
com2.type = CommandType.innerCommand ;
new CommandInnerDeaLer().deal(com2) ;
-
+ log.info("鍏抽棴绋嬪簭鍓嶏紝鍏抽棴浜哅QTT鏈嶅姟");
}catch (Exception e){
log.error("绋嬪簭锛堟帶鍒跺彴锛夊叧闂挬瀛愬彂鐢熷紓甯�", e);
}
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/CommandInnerDeaLer.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/CommandInnerDeaLer.java
index 6b4d081..0e2375b 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/CommandInnerDeaLer.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/CommandInnerDeaLer.java
@@ -113,6 +113,10 @@
rCom = this.stopMqttSv(com);
break;
}
+ case CodeLocal.recoverMqttSv -> {
+ rCom = this.recoverMqttSv(com);
+ break;
+ }
default -> {
rCom = ReturnCommand.errored("鍑洪敊锛屾敹鍒板唴閮ㄥ懡浠ょ殑鍔熻兘鐮佷笉鑳借瘑鍒紒", com.getId(), com.getCode());
break;
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/ReturnCommand.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/ReturnCommand.java
index 3a80412..676852f 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/ReturnCommand.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/ReturnCommand.java
@@ -19,7 +19,6 @@
* @param message
*/
public static Command successed(String message, String commandId, String code, Object attachment) {
- log.info(message);
Command command = new Command().createReturnSuccessCommand(message, commandId, code);
command.setAttachment(attachment);
return command;
@@ -29,7 +28,6 @@
* @param message
*/
public static Command successed(String message, String commandId, String code) {
- log.info(message);
return new Command().createReturnSuccessCommand(message, commandId, code);
}
/**
@@ -37,7 +35,6 @@
* @param message
*/
public static Command errored(String message, String commandId, String code) {
- log.error(message);
return new Command().createReturnErrorCommand(message, commandId, code);
}
}
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/CodeLocal.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/CodeLocal.java
index e1a0417..56096ba 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/CodeLocal.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/local/localProtocol/CodeLocal.java
@@ -38,7 +38,7 @@
public static final String onPartLineMqtt = "LMCD0002" ;//鏌ヨ閮ㄥ垎MQTT璁惧鍦ㄧ嚎鎯呭喌
- public static final String onLineStatisticsMqtt = "LMCD0003" ;//鏌ヨ鎵�鏈塎QTT璁惧鐘舵�佺粺璁℃儏鍐�
+ public static final String onLineStatisticsMqtt = "LMCD0003" ;//鏌ヨ鎵�鏈塎QTT璁惧鍦ㄧ嚎鐘舵�佺粺璁℃儏鍐�
public static final String allRtuStatesMqtt = "LMCD0010" ;//鏌ヨ鎵�鏈塎QTT璁惧鐘舵��
@@ -48,5 +48,7 @@
public static final String stopMqttSv = "LMCD0110" ;//鍋滄Mqtt鏈嶅姟
+ public static final String recoverMqttSv = "LMCD0112" ;//閲嶅惎MQTT鏈嶅姟锛屾帴鍏ユ柊鐨凪QTT杩炴帴
+
}
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/mqtt/DevStatusDealer.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/mqtt/DevStatusDealer.java
index c164c0a..d3b2f2b 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/mqtt/DevStatusDealer.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/mqtt/DevStatusDealer.java
@@ -1,6 +1,6 @@
package com.dy.rtuMw.server.mqtt;
-import com.dy.common.mw.protocol4Mqtt.status.DevRunSt;
+import com.dy.common.mw.protocol4Mqtt.status.DevRunInfo;
import com.dy.rtuMw.server.forTcp.RtuLogDealer;
import com.dy.rtuMw.server.local.localProtocol.RtuOnLineStateStatisticsVo;
@@ -55,7 +55,7 @@
Map.Entry<String, DevStatus> entry = null ;
while(it.hasNext()){
entry = it.next() ;
- if(((DevStatus)entry).onLine != null && ((DevStatus)entry).onLine.booleanValue()){
+ if((entry.getValue()).onLine != null && (entry.getValue()).onLine.booleanValue()){
vo.onLineNum++ ;
}else{
vo.offLineNum++ ;
@@ -166,7 +166,7 @@
}
}
- public static void setStatus(String devId, DevRunSt st){
+ public static void setStatus(String devId, DevRunInfo st){
DevStatus vo = map.get(devId) ;
if(vo != null) {
if(st.stirRunning != null){
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/mqtt/MqttManager.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/mqtt/MqttManager.java
index ac3e211..8085e91 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/mqtt/MqttManager.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/mqtt/MqttManager.java
@@ -3,12 +3,15 @@
import com.dy.common.mw.channel.mqtt.MqttClientPool;
import com.dy.common.mw.protocol4Mqtt.MqttNotify;
import com.dy.common.mw.protocol4Mqtt.MqttNotifyInfo;
-import com.dy.common.mw.protocol4Mqtt.status.DevOnLineSt;
-import com.dy.common.mw.protocol4Mqtt.status.DevRunSt;
+import com.dy.common.mw.protocol4Mqtt.status.DevOnLineInfo;
+import com.dy.common.mw.protocol4Mqtt.status.DevRunInfo;
import com.dy.rtuMw.server.ServerProperties;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.eclipse.paho.client.mqttv3.MqttClient;
+
+import java.util.ArrayList;
+import java.util.List;
/**
* @Author: liurunyu
@@ -24,6 +27,8 @@
private MqttUnitConfigVo configVo ;
private MqttClientPool pool;
+
+ private List<MqttClient> subClients ;
private MqttManager(){
}
@@ -43,8 +48,9 @@
* @throws Exception
*/
public void start()throws Exception{
+ subClients = new ArrayList<>();
String URL = "tcp://" + this.configVo.svIp + ":" + this.configVo.svPort;
- this.pool = new MqttClientPool(URL, this.configVo.svUserName, this.configVo.svUserPassword, this.configVo.poolMaxSize);
+ this.pool = new MqttClientPool(URL, this.configVo.svUserName, this.configVo.svUserPassword, this.configVo.poolMaxSize, this.configVo.useMemoryPersistence);
if(this.pool.isClose()){
throw new Exception("Mqtt杩炴帴姹犲垵濮嬪寲澶辫触");
}
@@ -57,6 +63,7 @@
if(clientSub == null || !clientSub.isConnected()){
throw new Exception("Mqtt杩炴帴姹犺幏寰楄闃呰繛鎺ヤ笉鍙敤");
}
+ subClients.add(clientSub) ;
// 璁㈤槄涓婚
for(int i = 0; i < this.configVo.subTopics.length; i++){
for(int j = 0 ; j < this.configVo.protocolAndDeviceIds.length; j++){
@@ -70,15 +77,15 @@
public void notify(String devId, MqttNotifyInfo... infos) {
if(devId != null && infos != null && infos.length > 0){
for(MqttNotifyInfo info : infos){
- if(info instanceof DevOnLineSt){
- DevOnLineSt onLineSt = (DevOnLineSt)info;
+ if(info instanceof DevOnLineInfo){
+ DevOnLineInfo onLineSt = (DevOnLineInfo)info;
if(onLineSt.onLine != null && onLineSt.onLine.booleanValue()){
- DevStatusDealer.onLine(devId, ((DevOnLineSt)info).protocol);
+ DevStatusDealer.onLine(devId, ((DevOnLineInfo)info).protocol);
}else{
DevStatusDealer.offLine(devId);
}
- } else if(info instanceof DevRunSt){
- DevStatusDealer.setStatus(devId, (DevRunSt)info);
+ } else if(info instanceof DevRunInfo){
+ DevStatusDealer.setStatus(devId, (DevRunInfo)info);
}
}
}
@@ -90,6 +97,18 @@
}
public void stop()throws Exception{
+ if(subClients != null && subClients.size() > 0){
+ for (MqttClient client : subClients) {
+ if(client != null && client.isConnected()){
+ try{
+ client.disconnect();
+ client.close();
+ }catch (Exception e){
+ e.printStackTrace();
+ }
+ }
+ }
+ }
if(this.pool != null){
// 鍏抽棴杩炴帴姹�
this.pool.close();
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/mqtt/MqttMessageListener.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/mqtt/MqttMessageListener.java
index 7d8c6ea..c109e53 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/mqtt/MqttMessageListener.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/mqtt/MqttMessageListener.java
@@ -22,51 +22,29 @@
@Override
public void messageArrived(String topic, MqttMessage msg) throws Exception {
- MqttTopic subTopic = MqttMsgParser.parseSubTopic(topic) ;
- MqttSubMsg subMsg = MqttMsgParser.parseSubMsg(subTopic, msg, new MqttCallback(){
- @Override
- public void callback(MqttSubMsg subMsg) {
- DevStatusDealer.onLine(subMsg.deviceId, subMsg.protocol);
- DevStatusDealer.afterReceiveSubMessage(subMsg.deviceId);
- RtuLogDealer.log4Mqtt(subMsg.deviceId, "璁㈤槄娑堟伅 涓婚锛�" + subMsg.topic + " 娑堟伅锛�" + subMsg.msg);
- }
- @Override
- public void notify(String devId, MqttNotifyInfo... infos) {
- if(notify != null){
- notify.notify(devId, infos) ;
+ try {
+ MqttTopic subTopic = MqttMsgParser.parseSubTopic(topic);
+ MqttSubMsg subMsg = MqttMsgParser.parseSubMsg(subTopic, msg, new MqttCallback() {
+ @Override
+ public void callback(MqttSubMsg subMsg) {
+ DevStatusDealer.onLine(subMsg.deviceId, subMsg.protocol);
+ DevStatusDealer.afterReceiveSubMessage(subMsg.deviceId);
+ RtuLogDealer.log4Mqtt(subMsg.deviceId, "璁㈤槄娑堟伅 涓婚锛�" + subMsg.topic.longName() + " 鍏冩暟鎹細" + subMsg.metaData);
}
- }
- }) ;
- this.nextDeal(subMsg);
- }
- private void nextDeal(MqttSubMsg subMsg)throws Exception {
- subMsg.action(new Callback() {
- @Override
- public void call(Object obj) {
- MqttSubMsg subMs = (MqttSubMsg) obj ;
- MqttPubMsg pubMs = MqttPubMsgCache.matchFromTail(subMs) ;
- if(pubMs != null){
- //鍖归厤鍒颁笅琛屾秷鎭紙鍛戒护锛�
- subMs.mqttResultSendWebUrl = pubMs.mqttResultSendWebUrl ;
- subMs.commandId = pubMs.commandId ;
- try {
- MqttComResultCache.getInstance().cacheMqttComResult(new MqttComResultNode(subMs));
- } catch (Exception e) {
- log.error("缂撳瓨鍙戝竷娑堟伅锛堝懡浠わ級缁撴灉鍙戠敓寮傚父", e);
+
+ @Override
+ public void notify(String devId, MqttNotifyInfo... infos) {
+ if (notify != null) {
+ notify.notify(devId, infos);
}
}
- try{
- MqttSubMsgCache.getInstance().cacheMsg(new MqttSubMsgNode(subMsg));
- }catch (Exception e){
- log.error("缂撳瓨璁㈤槄娑堟伅鏁版嵁鍙戠敓寮傚父", e);
- }
- }
- @Override
- public void call(Object... objs) {
- }
- @Override
- public void exception(Exception e) {
- }
- });
+ });
+ this.nextDeal(subMsg);
+ }catch(Exception e){
+ log.error("澶勭悊MQTT璁㈤槄娑堟伅鍙戠敓寮傚父", e);
+ }
+ }
+ private void nextDeal(MqttSubMsg subMsg)throws Exception {
+ subMsg.action(new MqttSubMsgDealer());
}
}
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/mqtt/MqttPubMsgCache.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/mqtt/MqttPubMsgCache.java
index 2ae8adc..b4b948a 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/mqtt/MqttPubMsgCache.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/mqtt/MqttPubMsgCache.java
@@ -86,8 +86,7 @@
while(node != null && node.obj != null){
obj = (MqttPubMsgNode)node.obj;
pubMsg = obj.result ;
- if(pubMsg != null
- && subMsg.subMsgMatchPubMsg(pubMsg)){
+ if(pubMsg != null && subMsg.subMsgMatchPubMsg(pubMsg)){
obj.onceReceivedResult = true ;//鏍囪瘑宸茬粡鏀跺埌鍛戒护缁撴灉
return pubMsg;
}else{
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/mqtt/MqttPubMsgNode.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/mqtt/MqttPubMsgNode.java
index 7b827d5..504ee3f 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/mqtt/MqttPubMsgNode.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/mqtt/MqttPubMsgNode.java
@@ -65,7 +65,7 @@
}else{
if(mqttClient != null && mqttClient.isConnected()){
try {
- mqttManager.publishMsg(mqttClient, this.result.topic, this.result.msg);
+ mqttManager.publishMsg(mqttClient, this.result.topic.longName(), this.result.msg);
DevStatusDealer.afterSendPubMessage(this.result.deviceId);
RtuLogDealer.log4Mqtt(this.result.deviceId, "鍙戝竷娑堟伅 涓婚锛�" + this.result.topic + " 娑堟伅锛�" + this.result.msg);
log.info("鍙戝竷MQTT娑堟伅锛堜富棰�=" + this.result.topic + "锛�" + this.result.msg);
@@ -74,7 +74,11 @@
}finally {
mqttManager.pushMqttClient(mqttClient);
}
- return false ;
+ if(this.result.hasResponse){
+ return false ;
+ }else{
+ return true ;
+ }
}else{
//鏈浘杩炴帴MQTT鏈嶅姟鍣�
return this.decideRemoveNodeFromCach(now) ;
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/mqtt/MqttSubMsgDealer.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/mqtt/MqttSubMsgDealer.java
new file mode 100644
index 0000000..116239d
--- /dev/null
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/mqtt/MqttSubMsgDealer.java
@@ -0,0 +1,41 @@
+package com.dy.rtuMw.server.mqtt;
+
+import com.dy.common.mw.protocol4Mqtt.MqttPubMsg;
+import com.dy.common.mw.protocol4Mqtt.MqttSubMsg;
+import com.dy.common.util.Callback;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2025/6/11 17:33
+ * @Description
+ */
+@Slf4j
+public class MqttSubMsgDealer implements Callback {
+ @Override
+ public void call(Object obj) {
+ MqttSubMsg subMs = (MqttSubMsg) obj ;
+ MqttPubMsg pubMs = MqttPubMsgCache.matchFromTail(subMs) ;
+ if(pubMs != null){
+ //鍖归厤鍒颁笅琛屾秷鎭紙鍛戒护锛�
+ subMs.mqttResultSendWebUrl = pubMs.mqttResultSendWebUrl ;
+ subMs.commandId = pubMs.commandId ;
+ try {
+ MqttComResultCache.getInstance().cacheMqttComResult(new MqttComResultNode(subMs));
+ } catch (Exception e) {
+ log.error("缂撳瓨鍙戝竷娑堟伅锛堝懡浠わ級缁撴灉鍙戠敓寮傚父", e);
+ }
+ }
+ try{
+ MqttSubMsgCache.getInstance().cacheMsg(new MqttSubMsgNode(subMs));
+ }catch (Exception e){
+ log.error("缂撳瓨璁㈤槄娑堟伅鏁版嵁鍙戠敓寮傚父", e);
+ }
+ }
+ @Override
+ public void call(Object... objs) {
+ }
+ @Override
+ public void exception(Exception e) {
+ }
+}
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/mqtt/MqttUnitConfigVo.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/mqtt/MqttUnitConfigVo.java
index f96f189..e2cad34 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/mqtt/MqttUnitConfigVo.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/mqtt/MqttUnitConfigVo.java
@@ -13,6 +13,7 @@
public String svUserName ;//
public String svUserPassword ;//
public Integer poolMaxSize ;//
+ public Boolean useMemoryPersistence ;
public String[] protocolAndDeviceIds ;//璁惧鍗忚涓嶪D锛團Box锛塱d
public String[] deviceIds ;//璁惧锛團Box锛塱d
public String[] subTopics ;//璁㈤槄鐨勪富棰�
@@ -27,6 +28,7 @@
this.svUserName = "dyyjy" ;
this.svUserPassword = "Dyyjy2025,;.abc!@#" ;
this.poolMaxSize = 10 ;
+ useMemoryPersistence = true ;
this.pubTopicQos = 1 ;
this.noSubThenOff = 10 * 60 * 10000L ;
}
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1/TkDealAlarmStatus.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1/TkDealAlarmStatus.java
index 23808df..dfc00f9 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1/TkDealAlarmStatus.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V1/TkDealAlarmStatus.java
@@ -63,13 +63,14 @@
toNext = true ;
}
}
- if(this.needSave2Db( d.getRtuAddr())){
+ //2025-06-11 鍥犱负81鍛戒护鏄疪TU鐘舵�佹敼鍙樻椂鍗充笂鎶ワ紝鎵�浠ュ彲浠ュ強鏃朵綋鐜扮姸鎬佸彉鍖栵紝杩涜�屼笉鍙楀瓨鍌ㄦ帶鍒�
+ //if(this.needSave2Db( d.getRtuAddr())){
//鍦ㄤ竴涓皬鏃跺唴娌℃湁瀛樺偍鎶ヨ鏁版嵁
this.toMsCenter(controller, d.getRtuAddr(), dV1, dataCd81Vo.alarmVo, dataCd81Vo.stateVo);
this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), dataCd81Vo.rtuDt, dV1, dataCd81Vo.alarmVo, dataCd81Vo.stateVo);
this.saveHistory(sv, controller, d.getRtuAddr(), dataCd81Vo.rtuDt, dV1, dataCd81Vo.alarmVo, dataCd81Vo.stateVo);
- this.cacheSaveTime(d.getRtuAddr());
- }
+ //this.cacheSaveTime(d.getRtuAddr());
+ //}
}
} else if (cdObj instanceof DataCd84Vo) {
//闃�寮�宸ヤ綔鎶�
@@ -78,7 +79,7 @@
Object[] objs = this.getTaskResults(TkPreGenObjs.taskId);
DbSv sv = (DbSv) objs[0];
PrController controller = (PrController) objs[1];
- /** 闃�寮�宸ヤ綔鎶ワ紝闃�闂ㄧ姸鎬佷竴瀹氭槸鎵撳紑鐘舵�侊紝鎵�浠ヤ笉璁剧疆涓嬮潰鏁版嵁浠ュ鍚庣画浠诲姟璁剧疆铏氭嫙鍗$姸鎬�
+ /* 闃�寮�宸ヤ綔鎶ワ紝闃�闂ㄧ姸鎬佷竴瀹氭槸鎵撳紑鐘舵�侊紝鎵�浠ヤ笉璁剧疆涓嬮潰鏁版嵁浠ュ鍚庣画浠诲姟璁剧疆铏氭嫙鍗$姸鎬�
if(dataCd84Vo.stateVo != null && dataCd84Vo.stateVo.valveState != null && dataCd84Vo.stateVo.valveState.byteValue() == DataStateVo.ValveCloseState){
if(controller != null && controller.getIntakeId() != null){
this.taskResult = new Object[]{controller.getIntakeId(), DataStateVo.ValveCloseState} ;
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V2/TkDealAlarmStatusV2.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V2/TkDealAlarmStatusV2.java
index 24e0c4b..6f0856b 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V2/TkDealAlarmStatusV2.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V2/TkDealAlarmStatusV2.java
@@ -76,7 +76,8 @@
//闅忔満鑷姤鎶�
DataCd81Vo dataCd81Vo = (DataCd81Vo)cdObj ;
if (dataCd81Vo.alarmVo != null || dataCd81Vo.stateVo != null) {
- if(this.needSave2Db( d.getRtuAddr())) {
+ //2025-06-11 鍥犱负81鍛戒护鏄疪TU鐘舵�佹敼鍙樻椂鍗充笂鎶ワ紝鎵�浠ュ彲浠ュ強鏃朵綋鐜扮姸鎬佸彉鍖栵紝杩涜�屼笉鍙楀瓨鍌ㄦ帶鍒�
+ //if(this.needSave2Db( d.getRtuAddr())) {
//鍦ㄤ竴涓皬鏃跺唴娌℃湁瀛樺偍鎶ヨ鏁版嵁
Object[] objs = this.getTaskResults(TkPreGenObjsV2.taskId);
DbSv sv = (DbSv) objs[0];
@@ -91,7 +92,7 @@
toNext = true ;
}
}
- }
+ //}
}
} else if (cdObj instanceof DataCd84Vo) {
//闃�寮�宸ヤ綔鎶�
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealAlarmStatusV202404.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealAlarmStatusV202404.java
index c9d63e0..9062205 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealAlarmStatusV202404.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/rtuData/p206V202404/TkDealAlarmStatusV202404.java
@@ -48,18 +48,16 @@
PrController controller = (PrController)objs[1] ;
if(cdObj instanceof DataCd81Vo){
//璁惧缁堢闅忔満鑷姤
- if(this.needSave2Db( d.getRtuAddr())) {
- //鍦ㄤ竴涓皬鏃跺唴娌℃湁瀛樺偍鎶ヨ鏁版嵁
- DataCd81Vo cdData = (DataCd81Vo)(cdObj) ;
- this.toMsCenter(controller, d.getRtuAddr(), dV202404, cdData, dV202404.dt);
- this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), cdData.rtuDt, cdData, dV202404.dt) ;
- this.saveHistory(sv, controller, d.getRtuAddr(), cdData.rtuDt, cdData, dV202404.dt) ;
- this.cacheSaveTime(d.getRtuAddr());
- if(cdData.statePump != null && cdData.statePump.byteValue() == AlarmVo.DevCloseState){
- if(controller != null && controller.getIntakeId() != null){
- this.taskResult = new Object[]{controller.getIntakeId(), AlarmVo.DevCloseState} ;
- toNext = true ;
- }
+ //81鍔熻兘鐮佹暟鎹紝涓嶈繘琛屸�滃湪涓�涓皬鏃跺唴娌℃湁瀛樺偍鎶ヨ鏁版嵁鈥濈殑鎺у埗
+ DataCd81Vo cdData = (DataCd81Vo)(cdObj) ;
+ this.toMsCenter(controller, d.getRtuAddr(), dV202404, cdData, dV202404.dt);
+ this.saveOrUpdateLast(sv, controller, d.getRtuAddr(), cdData.rtuDt, cdData, dV202404.dt) ;
+ this.saveHistory(sv, controller, d.getRtuAddr(), cdData.rtuDt, cdData, dV202404.dt) ;
+ this.cacheSaveTime(d.getRtuAddr());
+ if(cdData.statePump != null && cdData.statePump.byteValue() == AlarmVo.DevCloseState){
+ if(controller != null && controller.getIntakeId() != null){
+ this.taskResult = new Object[]{controller.getIntakeId(), AlarmVo.DevCloseState} ;
+ toNext = true ;
}
}
}else if(cdObj instanceof DataCd80_5BVo){
@@ -78,7 +76,9 @@
}
}
}
- }else if(cdObj instanceof DataCd93_A3Vo){
+ }
+ /* 2025-06-11 鐜嬫睙娴疯锛氫互涓嬫暟鎹腑鐨勭姸鎬佷笉鍑嗙‘锛屽挨鍏堕榾闂ㄧ姸鎬侊紝鎵�浠ヤ笉鍐嶉噰绾�
+ else if(cdObj instanceof DataCd93_A3Vo){
//骞冲彴/APP杩滅▼鍏抽棴姘存车/闃�闂� + 鍒峰崱鍏虫车/闃�涓婃姤
if(this.needSave2Db( d.getRtuAddr())) {
//鍦ㄤ竴涓皬鏃跺唴娌℃湁瀛樺偍鎶ヨ鏁版嵁
@@ -127,6 +127,7 @@
}
}
}
+ */
}catch (Exception e){
log.error("淇濆瓨鎺у埗鍣ㄦ姤璀﹀拰鐘舵�佹暟鎹椂鍙戠敓寮傚父", e);
}
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/web/com/CommandCtrl.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/web/com/CommandCtrl.java
index 5c13be1..a53defb 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/web/com/CommandCtrl.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/web/com/CommandCtrl.java
@@ -58,7 +58,21 @@
*/
@GetMapping("/rtuLogFile")
public void rtuLogFile(String rtuAddr, HttpServletRequest req, HttpServletResponse rep){
- File logFile = ResourceUnit.getInstance().getLogFile(rtuAddr + ".log") ;
+ logFile(rtuAddr, req, rep) ;
+ }
+
+ /**
+ * 涓嬭浇鎺у埗鍣紙RTU锛変笂涓嬭鏁版嵁鐨刲og鏃ュ織鏂囦欢
+ * @param devId
+ * @param req
+ * @param rep
+ */
+ @GetMapping("/mqttDevLogFile")
+ public void mqttDevLogFile(String devId, HttpServletRequest req, HttpServletResponse rep){
+ logFile(devId, req, rep) ;
+ }
+ private void logFile(String fileName, HttpServletRequest req, HttpServletResponse rep){
+ File logFile = ResourceUnit.getInstance().getLogFile(fileName + ".log") ;
if(logFile != null && logFile.exists()){
//鍦⊿pring Boot涓紝application/octet-stream;charset=UTF-8閫氬父琛ㄧず鍝嶅簲鐨勫唴瀹规槸瀛楄妭娴侊紝
//骞朵笖瀛楃闆嗘槸UTF-8銆傚浜庤繖绉嶇被鍨嬬殑鍝嶅簲锛孲pring Boot榛樿浣跨敤ByteArrayHttpMessageConverter鏉ュ鐞嗭紝
@@ -67,7 +81,7 @@
//瀛楃闆嗛�氬父鐢ㄤ簬鏂囨湰鍐呭锛岃�宎pplication/octet-stream閫氬父鐢ㄤ簬浜岃繘鍒跺唴瀹癸紝鍥犳鍦ㄨ繖绉嶆儏鍐典笅鎸囧畾瀛楃闆嗗彲鑳芥槸涓嶅悎閫傜殑銆�
//涓嶈繃锛屽鏋滀綘纭疄闇�瑕佸鐞嗗甫鏈夌壒瀹氬瓧绗﹂泦鐨刟pplication/octet-stream鍝嶅簲锛屼綘鍙兘闇�瑕佽嚜瀹氫箟HttpMessageConverter銆�
rep.addHeader("content-type", "application/octet-stream;charset=UTF-8");
- rep.addHeader("Content-Disposition", "attachment;fileName=" + (rtuAddr + ".log")) ;
+ rep.addHeader("Content-Disposition", "attachment;fileName=" + (fileName + ".log")) ;
ServletOutputStream out = null;
FileInputStream in = null ;
try {
@@ -112,27 +126,38 @@
*/
@GetMapping("/rtuLogText")
public BaseResponse<List<String>> rtuLogText(String rtuAddr){
+ return logText(rtuAddr, true) ;
+ }
+ /**
+ * 涓嬭浇鎺у埗鍣紙RTU锛変笂涓嬭鏁版嵁鐨刲og鏃ュ織鏂囦欢
+ * @param devId
+ */
+ @GetMapping("/mqttDevLogText")
+ public BaseResponse<List<String>> mqttDevLogText(String devId){
+ return logText(devId, false) ;
+ }
+ /**
+ * 涓嬭浇鎺у埗鍣紙RTU锛変笂涓嬭鏁版嵁鐨刲og鏃ュ織鏂囦欢
+ * @param fileName
+ * @param reverseOrder
+ */
+ private BaseResponse<List<String>> logText(String fileName, boolean reverseOrder){
List<String> list ;
- File logFile = ResourceUnit.getInstance().getLogFile(rtuAddr + ".log") ;
+ File logFile = ResourceUnit.getInstance().getLogFile(fileName + ".log") ;
if(logFile != null && logFile.exists()){
BufferedReader reader = null ;
try {
reader = new BufferedReader(new FileReader(logFile)) ;
- //鏂扮殑瀹炵幇鏂规硶
Stream<String> linesStream = reader.lines() ;
- //list = linesStream.toList() ; //鎸夊師鏉ラ『搴�
- list = linesStream.sorted(Comparator.reverseOrder()).collect(Collectors.toList()) ;//鍊掑簭
- /* 鍘熸潵鐨勫疄鐜版柟娉�
- list = new ArrayList() ;
- String line ;
- while((line = reader.readLine()) != null){
- list.add(line) ;
+ if(reverseOrder){
+ list = linesStream.sorted(Comparator.reverseOrder()).collect(Collectors.toList()) ;//鍊掑簭
+ }else{
+ list = linesStream.toList() ; //鎸夊師鏉ラ『搴�
}
- */
return BaseResponseUtils.buildSuccess(list);
} catch (Exception e) {
list = new ArrayList() ;
- list.add("璇诲彇鎺у埗鍣紙" + rtuAddr + "锛夌殑鏃ュ織鏂囦欢寮傚父锛�" + (e.getMessage() == null?"":("锛�" + e.getMessage()))) ;
+ list.add("璇诲彇鎺у埗鍣紙" + fileName + "锛夌殑鏃ュ織鏂囦欢寮傚父锛�" + (e.getMessage() == null?"":("锛�" + e.getMessage()))) ;
return BaseResponseUtils.buildSuccess(list);
}finally{
if(reader != null){
@@ -144,7 +169,7 @@
}
}else{
list = new ArrayList() ;
- list.add("鏈緱鍒版帶鍒跺櫒锛�" + rtuAddr + "锛夌殑鏃ュ織鏂囦欢") ;
+ list.add("鏈緱鍒版帶鍒跺櫒锛�" + fileName + "锛夌殑鏃ュ織鏂囦欢") ;
return BaseResponseUtils.buildSuccess(list);
}
}
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.properties b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.properties
index b692e83..6eaec36 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.properties
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.properties
@@ -10,7 +10,7 @@
# 鐢樺窞锛� gz
# 鍑夊窞锛� lz
# 閲戝窛锛� jc
-base.orgTag=mq
+base.orgTag=ym
# 233鏈嶅姟鍣細
# 鍏冭皨锛� 60000
@@ -45,7 +45,7 @@
# 鐢樺窞锛� mqtt.enable=false mqtt.protocolAndDeviceIds= mqtt.topicAndQos=
# 鍑夊窞锛� mqtt.enable=false mqtt.protocolAndDeviceIds= mqtt.topicAndQos=
# 閲戝窛锛� mqtt.enable=true mqtt.protocolAndDeviceIds=? mqtt.topicAndQos=weather,1;soil,1;manure,1;state,1
-mqtt.enable=true
+mqtt.enable=false
mqtt.protocolAndDeviceIds=sd1/338220031439,sd1/338220031440
mqtt.subTopicAndQos=weather,1;soil,1;manure,1;state,1
#MQtt璁惧鍦ㄤ竴瀹氭椂闂达紙鍒嗛挓锛夊悗鏈彂甯冩秷鎭紝璁や负璁惧绂荤嚎
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.xml b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.xml
index 3d3e466..50e5d2c 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.xml
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/config.xml
@@ -171,6 +171,7 @@
svUserName MQTT鏈嶅姟鍣ㄧ敤鎴峰悕
svUserPassword MQTT鏈嶅姟鍣ㄧ敤鎴峰瘑鐮�
poolMaxSize 杩炴帴姹犳渶澶ц繛鎺ユ暟
+ useMemoryPersistence 浣跨敤鍐呭瓨鎸佷箙鍖栬�岄潪榛樿鐨勬枃浠舵寔涔呭寲(true鏄� false鍚�)
protocolAndDeviceIds 鍦ㄥ瓙绯荤粺锛坥rgTag锛変腑鎺ュ叆鐨勮澶�(FBox)鎵�鐢ㄥ崗璁強璁惧id闆嗗悎,澶氫釜鐢ㄩ�楀彿闅斿紑锛屽崗璁笌ID鐢ㄦ鏂滄潬闅斿紑锛屼緥濡傦細sd1/338220031439,sd1/338220031440
subTopicAndQos: 璁㈤槄涓婚涓嶲os锛屼富棰樺悕涓庡叾Qos鐢ㄩ�楀彿闅斿紑锛屽涓富棰樺強Qos鐢ㄥ垎鍙烽殧寮�锛屼緥濡傦細ym/topic1,1;ym/topic2,1;ym/topic3,1锛屽鏋滄湁澶氫釜OrgTag锛屼富棰樺墠缂�鐢ㄥ叾OrgTag
pubTopicQos: 鍙戝竷涓婚鐨凲os锛屽彇鍊艰寖鍥达細
@@ -185,6 +186,7 @@
svUserName="dyyjy"
svUserPassword="Dyyjy2025,;.abc!@#"
poolMaxSize="10"
+ useMemoryPersistence="true"
protocolAndDeviceIds="${mqtt.protocolAndDeviceIds}"
subTopicAndQos="${mqtt.subTopicAndQos}"
pubTopicQos="1"
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-param-set/src/main/java/com/dy/pipIrrParamSet/paramSet/ParamKey.java b/pipIrr-platform/pipIrr-mw/pipIrr-param-set/src/main/java/com/dy/pipIrrParamSet/paramSet/ParamKey.java
index ee7504b..4f87723 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-param-set/src/main/java/com/dy/pipIrrParamSet/paramSet/ParamKey.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-param-set/src/main/java/com/dy/pipIrrParamSet/paramSet/ParamKey.java
@@ -31,6 +31,8 @@
public static final String TcpPort = "tcpPort" ;
public static final String UpDataMinInterval = "upDataMinInterval" ;
public static final String WebPort = "webPort" ;
+ public static final String MqttEnable = "mqttEnable" ;
+ public static final String MqttNoSubThenOff = "noSubThenOff" ;
public static final String ActutorPort = "actutorPort" ;
public static final String DbName = "dbName" ;
}
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-param-set/src/main/java/com/dy/pipIrrParamSet/paramSet/ParamSetMw.java b/pipIrr-platform/pipIrr-mw/pipIrr-param-set/src/main/java/com/dy/pipIrrParamSet/paramSet/ParamSetMw.java
index 806467e..b5234a5 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-param-set/src/main/java/com/dy/pipIrrParamSet/paramSet/ParamSetMw.java
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-param-set/src/main/java/com/dy/pipIrrParamSet/paramSet/ParamSetMw.java
@@ -121,6 +121,10 @@
newLine = "tcp.port=" + paramMap.get(ParamKey.TcpPort);
}else if(newLine != null && newLine.trim().startsWith("base.upData.min.interval=")){
newLine = "base.upData.min.interval=" + paramMap.get(ParamKey.UpDataMinInterval);
+ }else if(newLine != null && newLine.trim().startsWith("mqtt.enable=")){
+ newLine = "mqtt.enable=" + paramMap.get(ParamKey.MqttEnable);
+ }else if(newLine != null && newLine.trim().startsWith("mqtt.noSubThenOff=")){
+ newLine = "mqtt.noSubThenOff=" + paramMap.get(ParamKey.MqttNoSubThenOff);
}
newLines.add(newLine);
}
@@ -150,6 +154,12 @@
key = ParamKey.WebPort;
this.getConfig(env, map, paramNamePre + key, key);
+ key = ParamKey.MqttEnable;
+ this.getConfig(env, map, paramNamePre + key, key);
+
+ key = ParamKey.MqttNoSubThenOff;
+ this.getConfig(env, map, paramNamePre + key, key);
+
key = ParamKey.ActutorPort;
this.getConfig(env, map, paramNamePre + key, key);
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-param-set/src/main/resources/application-params.yml b/pipIrr-platform/pipIrr-mw/pipIrr-param-set/src/main/resources/application-params.yml
index 24a9806..de19a1c 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-param-set/src/main/resources/application-params.yml
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-param-set/src/main/resources/application-params.yml
@@ -4,6 +4,8 @@
orgTag: ym
tcpPort: 60000
upDataMinInterval: 6
+ mqttEnable: false
+ noSubThenOff: 10
webPort: 8070
actutorPort: 9070
dbName: pipIrr_ym
@@ -11,6 +13,8 @@
orgTag: sp
tcpPort: 62000
upDataMinInterval: 6
+ mqttEnable: false
+ noSubThenOff: 10
webPort: 8073
actutorPort: 9073
dbName: pipIrr_sp
@@ -18,6 +22,8 @@
orgTag: test
tcpPort: 65000
upDataMinInterval: 6
+ mqttEnable: false
+ noSubThenOff: 10
webPort: 8072
actutorPort: 9072
dbName: pipIrr_test
@@ -25,6 +31,8 @@
orgTag: mj
tcpPort: 61000
upDataMinInterval: 6
+ mqttEnable: false
+ noSubThenOff: 10
webPort: 8071
actutorPort: 9071
dbName: pipIrr_mj
@@ -33,6 +41,8 @@
orgTag: mq
tcpPort: 60100
upDataMinInterval: 6
+ mqttEnable: true
+ noSubThenOff: 10
webPort: 8100
actutorPort: 9100
dbName: pipIrr_mq
@@ -40,6 +50,8 @@
orgTag: yq
tcpPort: 60101
upDataMinInterval: 6
+ mqttEnable: false
+ noSubThenOff: 10
webPort: 8101
actutorPort: 9101
dbName: pipIrr_yq
@@ -47,6 +59,8 @@
orgTag: hlj
tcpPort: 60102
upDataMinInterval: 6
+ mqttEnable: false
+ noSubThenOff: 10
webPort: 8102
actutorPort: 9102
dbName: pipIrr_hlj
@@ -54,6 +68,8 @@
orgTag: gz
tcpPort: 60103
upDataMinInterval: 6
+ mqttEnable: false
+ noSubThenOff: 10
webPort: 8103
actutorPort: 9103
dbName: pipIrr_gz
@@ -61,6 +77,8 @@
orgTag: lz
tcpPort: 60104
upDataMinInterval: 6
+ mqttEnable: false
+ noSubThenOff: 10
webPort: 8104
actutorPort: 9104
dbName: pipIrr_lz
@@ -68,6 +86,8 @@
orgTag: jc
tcpPort: 60105
upDataMinInterval: 6
+ mqttEnable: true
+ noSubThenOff: 10
webPort: 8105
actutorPort: 9105
dbName: pipIrr_jc
diff --git "a/pipIrr-platform/\346\226\207\346\241\243/\346\211\223\345\214\205\345\217\221\345\270\203/\346\211\223\345\214\205\345\217\221\345\270\203\351\205\215\347\275\256\344\277\256\346\224\271.docx" "b/pipIrr-platform/\346\226\207\346\241\243/\346\211\223\345\214\205\345\217\221\345\270\203/\346\211\223\345\214\205\345\217\221\345\270\203\351\205\215\347\275\256\344\277\256\346\224\271.docx"
index b568832..6a380ca 100644
--- "a/pipIrr-platform/\346\226\207\346\241\243/\346\211\223\345\214\205\345\217\221\345\270\203/\346\211\223\345\214\205\345\217\221\345\270\203\351\205\215\347\275\256\344\277\256\346\224\271.docx"
+++ "b/pipIrr-platform/\346\226\207\346\241\243/\346\211\223\345\214\205\345\217\221\345\270\203/\346\211\223\345\214\205\345\217\221\345\270\203\351\205\215\347\275\256\344\277\256\346\224\271.docx"
Binary files differ
--
Gitblit v1.8.0