From 00d54db361d697cf8fdf2f15940f4650b21b3185 Mon Sep 17 00:00:00 2001 From: zhubaomin <zhubaomin> Date: 星期一, 21 四月 2025 15:05:35 +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/forTcp/MidResultActionFromRtu.java | 73 ++++++++++++++++++++++++++++++++++++ 1 files changed, 73 insertions(+), 0 deletions(-) diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/MidResultActionFromRtu.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/MidResultActionFromRtu.java new file mode 100644 index 0000000..7de3eba --- /dev/null +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/forTcp/MidResultActionFromRtu.java @@ -0,0 +1,73 @@ +package com.dy.rtuMw.server.forTcp; + +import com.dy.rtuMw.server.rtuData.RtuComResultCache; +import com.dy.rtuMw.server.rtuData.RtuComResultNode; +import com.dy.rtuMw.server.rtuData.RtuDataNode; +import com.dy.rtuMw.server.rtuData.RtuDataCache; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import com.dy.common.mw.protocol.MidResult; +import com.dy.common.mw.protocol.MidResultAction; +import com.dy.common.mw.protocol.MidResultFromRtu; +import com.dy.common.mw.protocol.MidResultToRtu; + +public class MidResultActionFromRtu implements MidResultAction { + + private static Logger log = LogManager.getLogger(MidResultActionFromRtu.class) ; + + @Override + public void doAction(MidResult result) { + if(result != null && result instanceof MidResultFromRtu){ + //濡傛灉姝ゅ闇�瑕佹洿澶氱殑閫昏緫澶勭悊锛屽彲浠ョ敓鎴愪竴涓换鍔$被锛堝疄鐜癈oreTask锛夊璞¤繘琛屽鐞� + //褰撳墠锛屽鐞嗙洿鎺ヨ繘琛� + MidResultFromRtu resFromRtu = (MidResultFromRtu)result ; + if(!resFromRtu.reportOrResponse_trueOrFalse){ + //鍛戒护搴旂瓟 + //姝ゅ瀹炵幇锛屼笌浠ュ墠涓嶄竴鏍凤紝 + //浠ュ墠瀹炵幇锛氬尮閰嶅懡浠ゆ槸浠庡悗鍚戝墠鍖归厤锛� + //褰撳墠瀹炵幇锛屽尮閰嶅懡浠ゆ槸浠庡墠鍚戝悗鍖归厤锛屽師鍥狅細涓句緥锛屽綋鎵归噺涓嬪彂琛ュ彫鍛戒护锛屽鏋滀粠鍚庡尮閰嶏紝鍒欏墠闈㈠懡浠や細涓嬪彂澶氭锛屽嵆涓�涓笂鎶ユ鏁版嵁浼氳ˉ鍙娆� + MidResultToRtu resToRtu = TcpDownCommandCache.matchFromHead(resFromRtu) ; + if(resToRtu != null){ + //鍖归厤鍒颁笅鍙戠殑鍛戒护 + resFromRtu.matchedCommand(resToRtu.commandId, resToRtu.rtuResultSendWebUrl) ; + this.nextDealRtuData(false, resFromRtu); + this.nextDealRtuComResult(resFromRtu); + }else{ + log.error("鍖归厤鍛戒护澶辫触锛屽姛鑳界爜鏄細" + ((MidResultFromRtu) result).upCode ); + this.nextDealRtuData(false, resFromRtu); + //鏈尮閰嶅埌涓嬪彂鐨勫懡浠わ紝鍛戒护鍦ㄧ紦瀛樺洜瓒呮椂琚竻闄や簡 + RtuStatusDealer.commandFail2Success(resFromRtu.rtuAddr) ; + } + }else{ + //涓诲姩涓婃姤鏁版嵁 + this.nextDealRtuData(true, resFromRtu); + } + } + } + + /** + * 杩涘叆澶氱嚎绋嬬幆澧冧腑杩愯 + * @param reportOrResponse_trueOrFalse + * @param resFromRtu + */ + private void nextDealRtuData(boolean reportOrResponse_trueOrFalse, MidResultFromRtu resFromRtu){ + try{ + RtuDataCache.cacheRtuUpData(reportOrResponse_trueOrFalse, new RtuDataNode(resFromRtu.data)); + }catch(Exception e){ + log.error(e.getMessage(), e); + } + } + + /** + * 杩涘叆鍗曠嚎绋嬬幆澧冧腑杩愯 + * @param resFromRtu + */ + private void nextDealRtuComResult(MidResultFromRtu resFromRtu){ + try{ + RtuComResultCache.cacheRtuComResult(new RtuComResultNode(resFromRtu.data)); + }catch(Exception e){ + log.error(e.getMessage(), e); + } + } +} -- Gitblit v1.8.0