From 1a2b07f01ba4616fd9e894dddf474b56d020158c Mon Sep 17 00:00:00 2001 From: zhubaomin <zhubaomin> Date: 星期一, 07 四月 2025 15:18:51 +0800 Subject: [PATCH] 整理版本 --- pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/ProtocolUnit.java | 93 ++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 93 insertions(+), 0 deletions(-) diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/ProtocolUnit.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/ProtocolUnit.java new file mode 100644 index 0000000..1e26b29 --- /dev/null +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/ProtocolUnit.java @@ -0,0 +1,93 @@ +package com.dy.common.mw.protocol; + +import java.util.Collection; +import java.util.HashMap; + +import com.dy.common.mw.UnitAdapterInterface; +import com.dy.common.mw.UnitInterface; +import com.dy.common.mw.UnitCallbackInterface; + + +public class ProtocolUnit implements UnitInterface { + + private static final ProtocolUnit instance = new ProtocolUnit() ; + + public ProtocolUnitAdapter adapter ; + + private ProtocolUnit(){} + + public static ProtocolUnit getInstance(){ + return instance ; + } + + @Override + public void setAdapter(UnitAdapterInterface adapter) throws Exception { + if(adapter == null){ + throw new Exception("鍗忚妯″潡閫傞厤鍣ㄥ璞′笉鑳戒负绌猴紒") ; + } + this.adapter = (ProtocolUnitAdapter)adapter ; + + ProtocolConfigVo vo = this.adapter.getConfig() ; + if(vo == null){ + throw new Exception("鍗忚妯″潡閰嶇疆瀵硅薄涓嶈兘涓虹┖锛�") ; + } + if(vo.centerAddr < 0 || vo.centerAddr > 4){//浜戞帶鍒朵腑蹇冨湴鍧�鏄�0 + throw new Exception("鍗忚妯″潡閰嶇疆瀵硅薄灞炴�т腑蹇冨湴鍧�鍙兘鏄�0銆�1銆�2銆�3銆�4 锛�") ; + } + } + + /** + * 鍚姩妯″潡 + */ + public void start(UnitCallbackInterface callback) throws Exception { + //寰楀埌鍞竴瀹炰緥锛� 骞跺湪鐢熸垚鍞竴瀹炰緥鏃讹紝鎵弿娉ㄨВ绫� + AnnotationScan.getIntance() ; + + //鍚勪釜鍗忚椹卞姩绫绘壂鎻忚嚜宸辩殑鍔熻兘鐮佹敞瑙� + HashMap<String, AnnotationDriverVo> drivers = ProtocolCache.getDriverMap() ; + Collection<String> keys = drivers.keySet() ; + StringBuilder totalProtocols = new StringBuilder() ; + for(String protocolNameVersion : keys){ + if(!totalProtocols.isEmpty()){ + totalProtocols.append("锛�") ; + } + totalProtocols.append(protocolNameVersion) ; + Driver dri = ProtocolCache.getDriver(protocolNameVersion) ; + if(dri != null){ + dri.scanAnnotationCode(); + dri.setNotify(adapter.getSingleRtuInfoNotify(protocolNameVersion)); + } + } + if(adapter.getConfig().showStartInfo){ + System.out.println("鍗忚妯″潡鎴愬姛鍚姩锛�" + + "鏀寔鐨勫崗璁細" + totalProtocols ); + } + callback.call(null); + } + + /** + * 鏄惁鍙湁涓�涓崗璁� + * @return 缁撴灉 + */ + @SuppressWarnings("unused") + public boolean isOnlyOneProtocol(){ + HashMap<String, AnnotationDriverVo> drivers = ProtocolCache.getDriverMap() ; + return drivers.size() == 1 ; + } + + @Override + public void stop(UnitCallbackInterface callback) { + } + + /* + public static void main(String[] args) throws Exception{ + ProtocolUnit protoUnit = ProtocolUnit.getInstance(); + protoUnit.start(new UnitStartedCallbackInterface(){ + @Override + public void call(Object obj) { + } + }); + } + */ + +} -- Gitblit v1.8.0