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