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