From fb31efc4c1efee99164dc83f6f67f1f609d1ba40 Mon Sep 17 00:00:00 2001 From: liurunyu <lry9898@163.com> Date: 星期一, 20 十一月 2023 17:03:10 +0800 Subject: [PATCH] 接入中间件代码整理后 --- pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/pMeterV1_0_1/OnLineV1_0_1.java | 5 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/rtuStatus/StUpData.java | 12 pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/ServerProperties.java | 2 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/DriverParserDataCallback.java | 2 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/PrefixedDataAvailable.java | 2 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/rtuStatus/RtuStatuz.java | 12 pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/AdapterImp_TcpUnit.java | 33 ++ pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/OnLine.java | 11 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/rtuStatus/StPumpStatus.java | 12 pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/resources/config.xml | 4 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/OnLinePool.java | 9 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/CodeParseCallback.java | 2 pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/tasks/ToRtuConstantTask.java | 13 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/CommandType.java | 1 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/Data.java | 36 +- pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/forTcp/RtuLogDealer.java | 4 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/PrefixedDataAvailableHandleImp.java | 26 - pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/rtuStatus/StDownData.java | 12 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/ProtocolConfigVo.java | 2 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206/ProtocolConstantV206.java | 4 pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/resource/ResourceUnit.java | 2 pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/tasks/RtuUpTask.java | 42 +- pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/resource/ResourceUnitConfigVo.java | 4 pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/forTcp/MidResultActionFromRtu.java | 12 pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/pom.xml | 5 pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/AdapterImp_ProtocolUnit.java | 60 ++++ pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/Driver.java | 4 pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/PipIrrMwAcceptApplication.java | 15 + pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/AdapterImp_RmiUnit.java | 26 + pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/Server.java | 316 +++++++++++++++++++++ pipIrr-platform/pipIrr-common/pipIrr-common.iml | 1 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/rtuStatus/StOnOffLine.java | 12 pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/AdapterImp_CoreUnit.java | 19 + pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/support/SupportUnitConfigVo.java | 14 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/PrefixedDataAvailablePool.java | 19 pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/AdapterImp_ResourceUnit.java | 19 + pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/AdapterImp_SupportUnit.java | 20 + pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/OnLineHandle.java | 4 pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/forRmi/RmiRequestedCallback.java | 30 ++ pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/ProtocolUnitAdapter.java | 6 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/ProtocolCach.java | 45 +- pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/ProtocolUnit.java | 9 42 files changed, 721 insertions(+), 167 deletions(-) diff --git a/pipIrr-platform/pipIrr-common/pipIrr-common.iml b/pipIrr-platform/pipIrr-common/pipIrr-common.iml index bfdde8c..7fe4295 100644 --- a/pipIrr-platform/pipIrr-common/pipIrr-common.iml +++ b/pipIrr-platform/pipIrr-common/pipIrr-common.iml @@ -105,6 +105,5 @@ <orderEntry type="library" name="Maven: org.jdom:jdom2:2.0.6.1" level="project" /> <orderEntry type="library" name="Maven: cn.hutool:hutool-all:5.8.21" level="project" /> <orderEntry type="library" name="Maven: org.apache.mina:mina-core:2.2.1" level="project" /> - <orderEntry type="library" name="Maven: org.quartz-scheduler:quartz-weblogic:2.1.7" level="project" /> </component> </module> \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/CodeParseCallback.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/CodeParseCallback.java index 23776b9..eb5141b 100644 --- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/CodeParseCallback.java +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/CodeParseCallback.java @@ -5,7 +5,7 @@ /** * 璁剧疆涓婅鏁版嵁绫诲瀷锛屼笂鎶ユ暟鎹�:true锛屽懡浠ゅ簲绛�:false锛屽叾浠栵紙濡傚績璺炽�侀摼璺淮鎸侊級:null * 鍙栧緱鏁版嵁涓殑rtuAddr - * @param reportOrResponse_trueOrFalse + * @param reportOrResponse_trueOrFalse 涓婃姤鏄痶rue锛屽懡浠ゅ搷搴旀槸false */ void callback(Boolean reportOrResponse_trueOrFalse) ; diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/CommandType.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/CommandType.java index 84869f0..df5a37a 100644 --- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/CommandType.java +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/CommandType.java @@ -12,6 +12,7 @@ * 閽堝Rtu澶栭儴鍛戒护 * 鍙兘鏄紓姝ワ紝鍛戒护缁撴灉閫氳繃鐩稿叧鐨勪俊鎭彂甯冮�氶亾鍙戝竷鍑哄幓 */ + @SuppressWarnings("unused") public static final String outerCommand = "outerCommand" ; /** diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/Data.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/Data.java index 53ffb2c..cbc9b69 100644 --- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/Data.java +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/Data.java @@ -2,17 +2,17 @@ import com.alibaba.fastjson2.JSON; +import java.io.Serial; + /** * 鏁版嵁鏍� * @author Administrator * */ public class Data implements java.io.Serializable{ - + @Serial private static final long serialVersionUID = 20160805192500101L; - - public static String ALIAS = Data.class.getName() ; - + private String commandId ;//鍛戒护ID锛屽彲鑳戒负null private String rtuAddr ;//缁堢鍦板潃 private String meterNo ;//姘磋〃鍙� @@ -22,17 +22,17 @@ private String hex ;//涓婃姤鏁版嵁鐨勫崄鍏繘鍒� public String toString() { - StringBuffer sb = new StringBuffer() ; - sb.append("涓婅鎶ユ枃(鍗佸叚杩涘埗): " + (hex == null?"":hex) + "\n") ; // - sb.append("IMEI鍙� : " + (rtuAddr==null?"":rtuAddr) + "\n") ; - sb.append("姘磋〃鍙� : " + (meterNo==null?"":meterNo) + "\n") ; + StringBuilder sb = new StringBuilder() ; + sb.append("涓婅鎶ユ枃(鍗佸叚杩涘埗): ").append((hex == null?"":hex)).append("\n") ; // + sb.append("IMEI鍙� : ").append((rtuAddr==null?"":rtuAddr)).append("\n") ; + sb.append("姘磋〃鍙� : ").append((meterNo==null?"":meterNo)).append("\n") ; if(commandId != null){ - sb.append("鍛戒护ID : " + commandId + "\n") ; //鍛戒护ID + sb.append("鍛戒护ID : ").append(commandId).append("\n") ; //鍛戒护ID } - sb.append("鍗忚 : " + (protocol == null?"":protocol) + "\n") ; // + sb.append("鍗忚 : ").append((protocol == null?"":protocol)).append("\n") ; // sb.append((code == null ? "" : ("鍔熻兘鐮�:" + code + "\n"))) ; if(this.subData != null){ - sb.append("涓婅鏁版嵁锛歕n" + this.subData.toString()) ; + sb.append("涓婅鏁版嵁锛歕n").append(this.subData) ; } return sb.toString() ; } @@ -40,19 +40,18 @@ /** * 瀵硅薄杞垚json - * @return json - * @throws Exception + * @return 瀵硅薄 */ - public String toJson()throws Exception{ + public String toJson(){ return JSON.toJSONString(this); } /** * json杞垚瀵硅薄 - * @param json - * @return Data - * @throws Exception + * @param json json + * @return Data Date */ - public static Data jsonToObject(String json)throws Exception{ + @SuppressWarnings("unused") + public static Data jsonToObject(String json){ return JSON.parseObject(json, Data.class) ; } @@ -119,6 +118,7 @@ this.subData = subData; } + @SuppressWarnings("unused") public String getHex() { return hex; } diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/Driver.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/Driver.java index b3efc80..4b607f3 100644 --- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/Driver.java +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/Driver.java @@ -113,7 +113,7 @@ } if(clazz != null){ //codeParse = clazz.newInstance() ; - codeParse = clazz.getDeclaredConstructor(CodeParse.class).newInstance(); + codeParse = clazz.getDeclaredConstructor().newInstance(); upCode2ClassInstance.put(code, codeParse) ; } } @@ -135,7 +135,7 @@ } if(clazz != null){ //codeParse = clazz.newInstance() ; - codeParse = clazz.getDeclaredConstructor(CodeParse.class).newInstance(); + codeParse = clazz.getDeclaredConstructor().newInstance(); downCode2ClassInstance.put(code, codeParse) ; } } diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/DriverParserDataCallback.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/DriverParserDataCallback.java index 62b845a..5ca3e20 100644 --- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/DriverParserDataCallback.java +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/DriverParserDataCallback.java @@ -5,7 +5,7 @@ /** * 瑙f瀽涓婅鏁版嵁鍚庡洖璋� * @param rtuAddr 涓婅鏁版嵁鍗忚澶翠腑鐨処MEI鍙� - * @param rtuAddr 涓婅鏁版嵁鍗忚澶翠腑鐨勬按琛ㄥ彿 + * @param meterNo 涓婅鏁版嵁鍗忚澶翠腑鐨勬按琛ㄥ彿 * @param code 涓婅鏁版嵁 鍔熻兘鐮� * @param upHex 涓婅鏁版嵁 * @param reportOrResponse_trueOrFalse 涓婅鏁版嵁鏄富鍔ㄤ笂鎶ヨ繕鏄懡浠ょ粨鏋� diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/OnLine.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/OnLine.java index a005b72..f8b693b 100644 --- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/OnLine.java +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/OnLine.java @@ -4,11 +4,10 @@ /** * 瀵逛笂绾挎暟鎹繘琛屽垎鏋� - * @param aepImei 鐢典俊骞冲彴浼犳潵鐨処MEI鍙� * @param upBuf 涓婅鏁版嵁 * @return OnLineResult */ - OnLineResult parse(String aepImei, byte[] upBuf)throws Exception ; + OnLineResult parse(byte[] upBuf)throws Exception ; /** * 鍒嗘瀽缁撴灉 @@ -28,9 +27,9 @@ } } - public static final int OnLineAction_fail = 0; //鍒嗘瀽涓婄嚎鏁版嵁澶辫触锛屽鎻愪緵鐨勬暟鎹负null绛夊師鍥� - public static final int OnLineAction_success = 1; //鍒嗘瀽涓婄嚎鏁版嵁鎴愬姛锛屽苟鑳藉緱鍒癐MEI鍙� - public static final int OnLineAction_success_noMe = 2; //鍒嗘瀽涓婄嚎鏁版嵁鎴愬姛锛岃瘑鍒嚭涓嶆槸鏈崗璁暟鎹� - public static final int OnLineAction_success_response = 3; //鍒嗘瀽涓婄嚎鏁版嵁鎴愬姛锛屽苟闇�瑕佸悜Rtu鍥炲啓鏁版嵁 + int OnLineAction_fail = 0; //鍒嗘瀽涓婄嚎鏁版嵁澶辫触锛屽鎻愪緵鐨勬暟鎹负null绛夊師鍥� + int OnLineAction_success = 1; //鍒嗘瀽涓婄嚎鏁版嵁鎴愬姛锛屽苟鑳藉緱鍒癐MEI鍙� + int OnLineAction_success_noMe = 2; //鍒嗘瀽涓婄嚎鏁版嵁鎴愬姛锛岃瘑鍒嚭涓嶆槸鏈崗璁暟鎹� + int OnLineAction_success_response = 3; //鍒嗘瀽涓婄嚎鏁版嵁鎴愬姛锛屽苟闇�瑕佸悜Rtu鍥炲啓鏁版嵁 } diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/OnLineHandle.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/OnLineHandle.java index b2f7d94..825588f 100644 --- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/OnLineHandle.java +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/OnLineHandle.java @@ -10,7 +10,7 @@ * @param bs 瀛楄妭鏁扮粍 * @return OnLine.OnLineResult */ - public OnLine.OnLineResult parse(String aepImei, byte[] bs)throws Exception{ + public OnLine.OnLineResult parse(byte[] bs)throws Exception{ OnLine.OnLineResult rs = null ; HashMap<String, AnnotationOnLineVo> onLineMap = ProtocolCach.getOnLineMap() ; Collection<AnnotationOnLineVo> set = onLineMap.values() ; @@ -27,7 +27,7 @@ //璇存槑涓婄嚎澶勭悊闆嗗悎宸茬粡閬嶅巻瀹屼簡銆� break ; } - rs = onLine.parse(aepImei, bs) ; + rs = onLine.parse(bs) ; OnLinePool.freeInstance(((AnnotationOnLineVo)objs[1]).clazz, onLine); if(rs != null){ if(rs.result == OnLine.OnLineAction_success){ diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/OnLinePool.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/OnLinePool.java index 2a0d4fc..30c764a 100644 --- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/OnLinePool.java +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/OnLinePool.java @@ -6,7 +6,7 @@ public class OnLinePool { - protected static HashMap<String, List<OnLine>> pool = new HashMap<String, List<OnLine>>() ; + protected static HashMap<String, List<OnLine>> pool = new HashMap<>() ; /** * 鐢熸垚瀵硅薄 @@ -15,14 +15,14 @@ */ public static synchronized OnLine getInstance(Class<?> clazz)throws Exception { if(pool == null){ - pool = new HashMap<String, List<OnLine>>() ; + pool = new HashMap<>() ; } String className = clazz.getName() ; OnLine obj = null ; List<OnLine> list = pool.get(className) ; if(list == null){ - list = new ArrayList<OnLine>() ; + list = new ArrayList<>() ; }else{ obj = list.get(0) ; } @@ -32,7 +32,8 @@ return obj ; }else{ try { - obj = (OnLine)clazz.newInstance(); + obj = (OnLine)clazz.getDeclaredConstructor().newInstance() ; + //obj = (OnLine)clazz.newInstance(); } catch (Exception e) { throw new Exception( "鐢�" + className + "鐢熸垚瀹炰緥澶辫触锛�"); } diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/PrefixedDataAvailable.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/PrefixedDataAvailable.java index f6a653c..f55f9ae 100644 --- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/PrefixedDataAvailable.java +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/PrefixedDataAvailable.java @@ -26,7 +26,7 @@ * @param remain 涓�瀹氭椂澶т簬0鐨勬暟鎹� * @param minDataLength 鏈�灏忔暟鎹暱搴� * @param maxDataLength 鏈�澶ф暟鎹暱搴︼紝杈惧埌鎴栬秴杩囨闀垮害锛岃涓烘槸鍨冨溇鏁版嵁銆備緥濡傦細鏁版嵁澶撮儴鏄纭殑锛屼絾鍚堟硶鏁版嵁缁撳熬鎬讳笉鍑虹幇锛岃涓烘鏁版嵁鍨冨溇鏁版嵁 - * @return + * @return PrefixedDataAvailableStatus * @throws Exception 寮傚父 */ PrefixedDataAvailableStatus forUpData(IoBuffer in, diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/PrefixedDataAvailableHandleImp.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/PrefixedDataAvailableHandleImp.java index 4725c66..56d32fc 100644 --- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/PrefixedDataAvailableHandleImp.java +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/PrefixedDataAvailableHandleImp.java @@ -13,15 +13,14 @@ public class PrefixedDataAvailableHandleImp implements PrefixedDataAvailableHandle { - private static Logger log = LogManager.getLogger(PrefixedDataAvailableHandleImp.class) ; + private static final Logger log = LogManager.getLogger(PrefixedDataAvailableHandleImp.class) ; /** * 鍦ㄥ绾跨▼鐜涓繍琛� * 鍒嗘瀽涓婄嚎鏁版嵁(缃戠粶杩炴帴鍚庣涓�鍖呮暟鎹�)鏄惁鍙幏寰� - * @param in - * @return - * @throws Exception + * @param in IoBuffer + * @return PrefixedDataAvailableStatus */ public PrefixedDataAvailableStatus forOnLine(IoBuffer in){ int remain = in.remaining() ; @@ -33,7 +32,7 @@ HashMap<String, AnnotationPrefixedDataAvailableVo> prefixedDataAvailableMap = ProtocolCach.getPrefixedDataAvailableMap() ; Collection<AnnotationPrefixedDataAvailableVo> set = prefixedDataAvailableMap.values() ; - if(set == null || set.size() == 0){ + if(set.size() == 0){ throw new Exception("涓婄嚎鏁版嵁瀹屾暣鎬ф鏌ユ椂锛屽緱鍒扮殑鍗忚瀹屾暣鎬ф鏌ョ被闆嗗悎涓虹┖銆�") ; } int prority = ProtocolConstant.firstPriority ; @@ -80,11 +79,8 @@ /** * 鍦ㄥ绾跨▼鐜涓繍琛� * 鍒嗘瀽涓婅鏁版嵁(缃戠粶杩炴帴鍚庣浜�(鍖呭惈)鍖呬互鍚庢暟鎹�)鏄惁鍙幏寰� - * @param in - * @param clientProtocol - * @param maxDataLength - * @return - * @throws Exception + * @param in IoBuffer + * @return PrefixedDataAvailableStatus */ public PrefixedDataAvailableStatus forUpData(IoBuffer in){ int remain = in.remaining() ; @@ -96,7 +92,7 @@ HashMap<String, AnnotationPrefixedDataAvailableVo> prefixedDataAvailableMap = ProtocolCach.getPrefixedDataAvailableMap() ; Collection<AnnotationPrefixedDataAvailableVo> set = prefixedDataAvailableMap.values() ; - if(set == null || set.size() == 0){ + if(set.size() == 0){ throw new Exception("涓婄嚎鏁版嵁瀹屾暣鎬ф鏌ユ椂锛屽緱鍒扮殑鍗忚闆嗗悎涓虹┖銆�") ; } int prority = ProtocolConstant.firstPriority ; @@ -144,10 +140,10 @@ /** * 寰楀埌澶勭悊绫诲璞� - * @param prority - * @param set - * @return - * @throws Exception + * @param prority 浼樺厛绾� + * @param set 闆嗗悎 + * @return Object[] + * @throws Exception 寮傚父 */ private Object[] getClassObjAndAnnotationVo(int prority, Collection<AnnotationPrefixedDataAvailableVo> set) throws Exception{ PrefixedDataAvailable obj = null ; diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/PrefixedDataAvailablePool.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/PrefixedDataAvailablePool.java index 57d7ec0..bb9761b 100644 --- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/PrefixedDataAvailablePool.java +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/PrefixedDataAvailablePool.java @@ -6,24 +6,24 @@ public class PrefixedDataAvailablePool { - protected static HashMap<String, List<PrefixedDataAvailable>> pool = new HashMap<String, List<PrefixedDataAvailable>>() ; + protected static HashMap<String, List<PrefixedDataAvailable>> pool = new HashMap<>() ; /** * 鐢熸垚瀵硅薄 * 绾跨▼闈炲畨鍏ㄧ殑锛屾墍浠ョ敤鍒皊ynchronized - * @param className - * @return + * @param clazz 棰勫鐞嗙被 + * @return 棰勫鐞嗙被瀵硅薄 */ public static synchronized PrefixedDataAvailable getInstance(Class<?> clazz)throws Exception { if(pool == null){ - pool = new HashMap<String, List<PrefixedDataAvailable>>() ; + pool = new HashMap<>() ; } String className = clazz.getName() ; PrefixedDataAvailable obj = null ; List<PrefixedDataAvailable> list = pool.get(className) ; if(list == null){ - list = new ArrayList<PrefixedDataAvailable>() ; + list = new ArrayList<>() ; }else{ obj = list.get(0) ; } @@ -33,7 +33,8 @@ return obj ; }else{ try { - obj = (PrefixedDataAvailable)clazz.newInstance(); + obj = (PrefixedDataAvailable)clazz.getDeclaredConstructor().newInstance() ; + //obj = (PrefixedDataAvailable)clazz.newInstance(); } catch (Exception e) { throw new Exception( "鐢�" + className + "鐢熸垚瀹炰緥澶辫触锛�"); } @@ -43,10 +44,10 @@ /** * 鎶婂璞℃斁鍥炴睜涓� - * @param className - * @return + * @param clazz 棰勫鐞嗙被 + * @param obj 棰勫鐞嗙被瀵硅薄 */ - public static void freeInstance(Class<?> clazz, PrefixedDataAvailable obj)throws Exception { + public static void freeInstance(Class<?> clazz, PrefixedDataAvailable obj) { if(pool != null){ String className = clazz.getName() ; List<PrefixedDataAvailable> list = pool.get(className) ; diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/ProtocolCach.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/ProtocolCach.java index 1a9753e..58dddb1 100644 --- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/ProtocolCach.java +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/ProtocolCach.java @@ -1,7 +1,6 @@ package com.dy.common.mw.protocol; import java.util.ArrayList; -import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -9,26 +8,27 @@ public class ProtocolCach { //鏈郴缁熶腑锛孌river鍦ㄥ崟绾跨▼涓繍琛岋紝鎵�浠ュ彧鐢ㄤ竴涓疄渚� - private static HashMap<String, Driver> drivers = new HashMap<String, Driver>() ; + private static final HashMap<String, Driver> drivers = new HashMap<>() ; //娉ㄨВ涓庡鐞嗙被鐨勬槧灏� - private static HashMap<String, AnnotationDriverVo> driverMap = new HashMap<String, AnnotationDriverVo>() ; - private static HashMap<String, AnnotationPrefixedDataAvailableVo> prefixedDataAvailableMap = new HashMap<String, AnnotationPrefixedDataAvailableVo>() ; - private static HashMap<String, AnnotationOnLineVo> onLineMap = new HashMap<String, AnnotationOnLineVo>() ; + private static final HashMap<String, AnnotationDriverVo> driverMap = new HashMap<>() ; + private static final HashMap<String, AnnotationPrefixedDataAvailableVo> prefixedDataAvailableMap = new HashMap<>() ; + private static final HashMap<String, AnnotationOnLineVo> onLineMap = new HashMap<>() ; /** * 鍦ㄥ崟绾跨▼鐜涓繍琛� * 閫氳繃鍗忚椹卞姩鐨勭被鍚嶏紝寰楀埌绫诲崟渚� - * @param protocolName - * @return - * @throws Exception + * @param protocolName 鍗忚鍚嶇О + * @return 椹卞姩 + * @throws Exception 寮傚父 */ public static Driver getDriver(String protocolName) throws Exception{ Driver dri = drivers.get(protocolName); if(dri == null){ AnnotationDriverVo vo = driverMap.get(protocolName) ; if(vo != null && vo.clazz != null){ - dri = (Driver)vo.clazz.newInstance() ; + dri = (Driver)vo.clazz.getDeclaredConstructor().newInstance(); + //dri = (Driver)vo.clazz.newInstance() ; drivers.put(protocolName, dri) ; } } @@ -37,10 +37,10 @@ /** * 寰楀埌椹卞姩鐨勬暟閲忥紝鍗充腑闂翠欢鏀寔鐨勫崗璁暟閲� - * @return + * @return 椹卞姩鎬绘暟 */ public static int driverCount(){ - if(drivers == null || drivers.size() == 0){ + if(drivers.size() == 0){ return 0 ; }else{ return drivers.size() ; @@ -49,11 +49,11 @@ /** * 寰楀埌绗竴涓┍鍔� - * @return + * @return 椹卞姩 */ - public static Driver getFirstDriver() throws Exception{ + public static Driver getFirstDriver(){ Driver dri = null ; - if(drivers != null && drivers.size() > 0){ + if(drivers.size() > 0){ Map.Entry<String, Driver> ent = drivers.entrySet().iterator().next() ; dri = ent.getValue(); } @@ -62,15 +62,11 @@ /** * 寰楀埌鎵�鏈夊崗璁悕绉� - * @return + * @return 鍗忚鍚嶇О闆嗗悎 */ + @SuppressWarnings("unused") public static List<String> getProtocolList() { - List<String> list = new ArrayList<String>() ; - Collection<String> col = driverMap.keySet() ; - for(String pname : col){ - list.add(pname) ; - } - return list; + return new ArrayList<>(driverMap.keySet()) ; } protected static HashMap<String, AnnotationDriverVo> getDriverMap() { @@ -83,4 +79,11 @@ return onLineMap; } + public static void main(String[] args){ + HashMap<String, Integer> mp = new HashMap<>() ; + mp.put("a1", 1) ; + mp.put("a2", 2) ; + List<String> list = new ArrayList<>(mp.keySet()) ; + System.out.println(list); + } } diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/ProtocolConfigVo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/ProtocolConfigVo.java index 5ed316a..e2527d2 100644 --- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/ProtocolConfigVo.java +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/ProtocolConfigVo.java @@ -4,8 +4,6 @@ public Integer centerAddr ;//涓績鍦板潃 public Boolean synchroRtuClock ;//鏄惁瀵筊TU鏍℃椂 public Integer synchroRtuClockTimepieces ;//褰揜TU涓庢湇鍔″櫒鏃堕挓鐩稿樊涓�瀹氭绉掞紙閰嶇疆鏂囦欢鏄閽燂級鍚庯紝杩涜鏍℃椂 - public String serverIp ;//鏈嶅姟绔疘P鍦板潃锛屾眽濞佸崗璁腑鐢ㄥ埌 - public Integer serverPort ;//鏈嶅姟绔鍙o紝姹夊▉鍗忚涓敤鍒� public Boolean showStartInfo; //鏄惁鍦ㄦ帶鍒跺彴涓婃樉绀轰俊鎭� } 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 index 87020e3..71dea2a 100644 --- 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 @@ -46,13 +46,12 @@ //鍚勪釜鍗忚椹卞姩绫绘壂鎻忚嚜宸辩殑鍔熻兘鐮佹敞瑙� HashMap<String, AnnotationDriverVo> drivers = ProtocolCach.getDriverMap() ; Collection<String> colDrivers = drivers.keySet() ; - String totalProtocols = null ; + StringBuilder totalProtocols = new StringBuilder() ; for(String protocolName : colDrivers){ - if(totalProtocols == null){ - totalProtocols = protocolName ; - }else{ - totalProtocols += "锛�" + protocolName ; + if(!totalProtocols.isEmpty()){ + totalProtocols.append("锛�") ; } + totalProtocols.append(protocolName) ; Driver dri = ProtocolCach.getDriver(protocolName) ; if(dri != null){ dri.scanAnnotationCode(); diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/ProtocolUnitAdapter.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/ProtocolUnitAdapter.java index 91ab2f0..21b2ec0 100644 --- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/ProtocolUnitAdapter.java +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/ProtocolUnitAdapter.java @@ -11,19 +11,19 @@ ProtocolConfigVo getConfig() ; /** * 鍗曠嚎绋嬬幆澧冧腑杩愯锛屽緱鍒板崟涓鐞哛TU涓嬭鏁版嵁鐨刟ction鎵ц瀵硅薄 - * @param protocolName + * @param protocolName 鍗忚鍚嶇О * @return MidResultAction */ MidResultAction getSingleActionToRtu(String protocolName) ; /** * 鍗曠嚎绋嬬幆澧冧腑杩愯锛屽緱鍒板崟涓鐞哛TU涓婅鏁版嵁鐨刟ction鎵ц瀵硅薄 - * @param protocolName + * @param protocolName 鍗忚鍚嶇О * @return MidResultAction */ MidResultAction getSingleActionFromRtu(String protocolName) ; /** * 鍗曠嚎绋嬬幆澧冧腑杩愯锛屽緱鍒板崟涓鐞嗗嚭閿欑殑action鎵ц瀵硅薄 - * @param protocolName + * @param protocolName 鍗忚鍚嶇О * @return MidResultAction */ MidResultAction getSingleActionError(String protocolName) ; diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206/ProtocolConstantV206.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206/ProtocolConstantV206.java new file mode 100644 index 0000000..ba9afef --- /dev/null +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206/ProtocolConstantV206.java @@ -0,0 +1,4 @@ +package com.dy.common.mw.protocol.p206; + +public class ProtocolConstantV206 { +} diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/pMeterV1_0_1/OnLineV1_0_1.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/pMeterV1_0_1/OnLineV1_0_1.java index 149800b..2e56566 100644 --- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/pMeterV1_0_1/OnLineV1_0_1.java +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/pMeterV1_0_1/OnLineV1_0_1.java @@ -10,12 +10,11 @@ /** * 瀵逛笂绾挎暟鎹繘琛屽垎鏋� - * @param aepImei 鐢典俊骞冲彴浼犳潵鐨処MEI鍙� - * @param bs + * @param upBuf 涓婅鏁版嵁 * @return */ @Override - public OnLineResult parse(String aepImei, byte[] upBuf)throws Exception { + public OnLineResult parse(byte[] upBuf)throws Exception { OnLineResult olr = new OnLineResult() ; CommonV1_0_1 cp = new CommonV1_0_1() ; Boolean flag = cp.isThisProtocolHead(upBuf) ; diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/rtuStatus/RtuStatuz.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/rtuStatus/RtuStatuz.java index 89a5057..3b805fd 100644 --- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/rtuStatus/RtuStatuz.java +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/rtuStatus/RtuStatuz.java @@ -1,10 +1,16 @@ package com.dy.common.mw.protocol.rtuStatus; +import java.io.Serial; + //鐢ㄧ被鍚峈tuStatuz鑰屼笉鏄疪tuStatus,鍥犱负涓巆om.dy.dataMw.protocol.local.RtuStatus鍐茬獊 public class RtuStatuz implements java.io.Serializable{ - - private static final long serialVersionUID = 201606281038001L; - + + @Serial + private static final long serialVersionUID; + static { + serialVersionUID = 201606281038001L; + } + public String rtuAddr ; } diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/rtuStatus/StDownData.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/rtuStatus/StDownData.java index 584e7b0..b964ca0 100644 --- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/rtuStatus/StDownData.java +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/rtuStatus/StDownData.java @@ -1,8 +1,14 @@ package com.dy.common.mw.protocol.rtuStatus; +import java.io.Serial; + public class StDownData extends RtuStatuz { - - private static final long serialVersionUID = 201606281038003L; - + + @Serial + private static final long serialVersionUID; + static { + serialVersionUID = 201606281038003L; + } + public Integer downBufferLen ; } diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/rtuStatus/StOnOffLine.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/rtuStatus/StOnOffLine.java index 17cdd35..d43057a 100644 --- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/rtuStatus/StOnOffLine.java +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/rtuStatus/StOnOffLine.java @@ -1,9 +1,15 @@ package com.dy.common.mw.protocol.rtuStatus; +import java.io.Serial; + public class StOnOffLine extends RtuStatuz { - - private static final long serialVersionUID = 201606281038004L; - + + @Serial + private static final long serialVersionUID; + static { + serialVersionUID = 201606281038004L; + } + public Boolean onOff_trueFalse ; public String ip ; public Integer port ; diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/rtuStatus/StPumpStatus.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/rtuStatus/StPumpStatus.java index d02bab3..b338c94 100644 --- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/rtuStatus/StPumpStatus.java +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/rtuStatus/StPumpStatus.java @@ -1,9 +1,15 @@ package com.dy.common.mw.protocol.rtuStatus; +import java.io.Serial; + public class StPumpStatus extends RtuStatuz { - - private static final long serialVersionUID = 201706241034001L; - + + @Serial + private static final long serialVersionUID; + static { + serialVersionUID = 201706241034001L; + } + public Integer pumpStatus ;//0锛氭车鍚姩浜嗭紝1娉靛仠姝紝null鏈煡鎬� } diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/rtuStatus/StUpData.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/rtuStatus/StUpData.java index 2c042e1..62eba2a 100644 --- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/rtuStatus/StUpData.java +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/rtuStatus/StUpData.java @@ -1,9 +1,15 @@ package com.dy.common.mw.protocol.rtuStatus; +import java.io.Serial; + public class StUpData extends RtuStatuz { - - private static final long serialVersionUID = 201606281038005L; - + + @Serial + private static final long serialVersionUID; + static { + serialVersionUID = 201606281038005L; + } + public Integer upBufferLen ; public boolean isReport ; diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/support/SupportUnitConfigVo.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/support/SupportUnitConfigVo.java index 7c312a2..9bf912c 100644 --- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/support/SupportUnitConfigVo.java +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/support/SupportUnitConfigVo.java @@ -15,19 +15,7 @@ public int long_minThread ; public long long_freeTimeout; public long long_busyTimeout ; - - //鍗曚釜Ssdb鎺ヨ繛姹犻厤缃枃浠� - public String singleSsdbPoolXmlFile ; - //澶氫釜Ssdb鎺ヨ繛姹犻厤缃枃浠� - public String multiSsdbPoolXmlFile ; - - //Redis闆嗙兢閰嶇疆鏂囦欢 - public String redisClusterXmlFile ; - //鍗曚釜Redis鎺ヨ繛姹犻厤缃枃浠� - public String singleRedisPoolXmlFile ; - //澶氫釜Redis鎺ヨ繛姹犻厤缃枃浠� - public String multiRedisPoolXmlFile ; - + public Boolean showStartInfo; //鏄惁鍦ㄦ帶鍒跺彴涓婃樉绀轰俊鎭� diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/pom.xml b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/pom.xml index e7c78e3..6131694 100644 --- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/pom.xml +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/pom.xml @@ -26,5 +26,10 @@ <artifactId>mina-filter-compression</artifactId> <version>2.2.1</version> </dependency> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-api</artifactId> + <version>2.0.7</version> + </dependency> </dependencies> </project> diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/PipIrrMwAcceptApplication.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/PipIrrMwAcceptApplication.java index bae96a4..a93ac94 100644 --- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/PipIrrMwAcceptApplication.java +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/PipIrrMwAcceptApplication.java @@ -2,9 +2,11 @@ import com.dy.common.multiDataSource.EnableMultiDataSource; import org.mybatis.spring.annotation.MapperScan; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.EnableAspectJAutoProxy; @@ -19,6 +21,11 @@ SpringApplication.run(PipIrrMwAcceptApplication.class, args); } + /** + * Spring瀹瑰櫒鍚姩瀹屾垚鍚庯紝鎵ц涓嬮潰鏂规硶 + * @param args + * @throws Exception + */ @Override public void run(String... args) throws Exception { try{ @@ -31,6 +38,14 @@ } private void startAceSv(){ + if(sv != null){ + sv.startServer(); + } + } + private Server sv ; + @Autowired + public void setSv(Server sv){ + this.sv = sv ; } } diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/Server.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/Server.java new file mode 100644 index 0000000..fab544b --- /dev/null +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/Server.java @@ -0,0 +1,316 @@ +package com.dy.aceMw; + +import java.util.ArrayList; +import java.util.List; + +import com.dy.common.mw.UnitInterface; +import com.dy.common.mw.UnitStartedCallbackInterface; +import com.dy.common.mw.channel.rmi.RmiConfigVo; +import com.dy.common.mw.channel.rmi.RmiUnit; +import com.dy.common.mw.channel.tcp.TcpConfigVo; +import com.dy.common.mw.channel.tcp.TcpUnit; +import com.dy.common.mw.core.CoreUnit; +import com.dy.common.mw.core.CoreUnitConfigVo; +import com.dy.common.mw.protocol.ProtocolConfigVo; +import com.dy.common.mw.protocol.ProtocolUnit; +import com.dy.common.mw.support.SupportUnit; +import com.dy.common.mw.support.SupportUnitConfigVo; +import com.dy.aceMw.server.AdapterImp_CoreUnit; +import com.dy.aceMw.server.AdapterImp_ProtocolUnit; +import com.dy.aceMw.server.AdapterImp_RmiUnit; +import com.dy.aceMw.server.AdapterImp_TcpUnit; +import com.dy.aceMw.server.ServerProperties; +import com.dy.aceMw.server.tasks.ToRtuConstantTask; +import com.dy.aceMw.server.AdapterImp_SupportUnit; +import com.dy.aceMw.resource.ResourceUnit; +import com.dy.aceMw.resource.ResourceUnitConfigVo; +import com.dy.aceMw.server.AdapterImp_ResourceUnit; +import com.dy.common.springUtil.SpringContextUtil; +import com.dy.common.util.ConfigXml; +import com.dy.common.util.IDLongGenerator; + +import org.jdom2.Document; +import org.springframework.stereotype.Component; + +@Component +public class Server { + + private ConfigXml conf = null ; + private Document doc = null ; + private boolean showStartInfo = false ; + + private String RmiSvUrl ; + private String TcpSvUrl ; + + private List<UnitInterface> units = new ArrayList<UnitInterface>() ; + + /* + * @param args 鍙傛暟 + public static void main(String[] args) { + new Server().startServer(); + } + */ + /** + * 鍚姩鏈嶅姟 + */ + public void startServer(){ +// try { +// URL url = Server.class.getResource("/config/sv.licence"); +// if(!new Lnp(null).parese(url.getPath())){ +// System.out.println("zhzc licence error!") ; +// return ; +// } +// } catch (Exception e) { +// System.out.println("zhzc licence error!") ; +// return ; +// } + Server sv = new Server(); + long start = System.currentTimeMillis() ; + try { + //ConfigProperties.init(sv.getClass().getResourceAsStream("/config/config.properties"), false); + + sv.conf = new ConfigXml() ; + sv.doc = sv.conf.createDom(sv.getClass(), "config.xml") ; + //////////////// + //鏈嶅姟 閰嶇疆 + sv.showStartInfo = sv.conf.getSetAttrBoolean(sv.doc, "config.server", "showStartInfo", null, null) ; + + sv.startUnits() ; + + String svName ; + try{ + svName = sv.conf.getSetAttrTxt(sv.doc, "config.server", "name", null, false, null) ; + }catch(Exception e){ + svName = "" ; + } + svName += (ServerProperties.isLowPower?"锛堜綆鍔熻�楋級": "") + "-" ; + + String company ; + try{ + company = sv.conf.getSetAttrTxt(sv.doc, "config.server", "company", null, true, null) ; + }catch(Exception e){ + company = "" ; + } + System.out.println("OOOOOOOOOO OOOOOOOO OOOOOOOO") ; + System.out.println("@@@@@@@@@@@@@@@@#O $@@@@@@@@& @@@@@@@@#") ; + System.out.println("@@@@@@@@@@@@@@@@@@@# @@@@@@@@# $@@@@@@@@&") ; + System.out.println("@@@@@@@@@@@@@@@@@@@@@# #@@@@@@@@@@@@@@@@O") ; + System.out.println("@@@@@@@@@@@@@@@@@@@@@@@ &@@@@@@@@@@@@@@") ; + System.out.println("@@@@@@$ $@@@@@@@@@& O@@@@@@@@@@@#") ; + System.out.println("@@@@@@$ @@@@@@@@@ @@@@@@@@@& " + svName + "RtuMw 1.0.00" ) ; + System.out.println("@@@@@@$ @@@@@@@@@ &@@@@@@@@") ; + if(sv.TcpSvUrl != null){ + System.out.println("@@@@@@$ O@@@@@@@@@ &@@@@@@@@ TcpSv " + sv.TcpSvUrl ) ; + }else{ + System.out.println("@@@@@@$ O@@@@@@@@@ &@@@@@@@@") ; + } + if(sv.RmiSvUrl != null){ + System.out.println("@@@@@@$ #@@@@@@@@@$ &@@@@@@@@ RmiSv " + sv.RmiSvUrl ) ; + }else{ + System.out.println("@@@@@@$ #@@@@@@@@@$ &@@@@@@@@" ) ; + } + System.out.println("@@@@@@@@@@@@@@@@@@@@@@# &@@@@@@@@ Runing in standalone mode" ) ; + System.out.println("@@@@@@@@@@@@@@@@@@@@@& &@@@@@@@@ Startup in " + (System.currentTimeMillis() - start) + " MS" ) ; + System.out.println("@@@@@@@@@@@@@@@@@@@# &@@@@@@@@ " + company) ; + System.out.println("@@@@@@@@@@@@@@@@#O &@@@@@@@@") ; + + }catch(Exception e){ + e.printStackTrace(); + } + } + + private void startUnits(){ + try { + /////////////// + //鍩烘湰閰嶇疆 + ServerProperties.isLowPower = conf.getSetAttrBoolean(doc, "config.base", "isLowPower", null, null) ; + if(ServerProperties.isLowPower == null){ + ServerProperties.isLowPower = false ; + } + //鍦ㄦ敮鎸佸閫氫俊鍗忚鏃讹紝鍙湁RTU涓婄嚎浜嗭紝鎵嶈兘璇嗗埆鍑鸿RTU瀹為檯鐢ㄧ殑閫氫俊鍗忚锛岃繘鑰岀敤姝ゅ崗璁В鏋愪笂琛屾暟鎹強鏋勯�犱笅琛屽懡浠ゃ�� + //濡傛灉RTU鏈浘涓婄嚎锛堥�氫俊涓棿浠跺惎鍔ㄥ悗璇TU鏈浘涓婄嚎锛夛紝閭d箞鍦ㄥ悜瀹冨彂閫佷笅琛屽懡浠ゆ椂锛屼笉鑳藉垽鏂嚭鍏堕噰鐢ㄧ殑鍗忚锛屼篃涓嶈兘鏋勯�犲懡浠わ紝灏ゅ叾鏄綆鍔熻�楁儏鍐典笅锛屼笉涓婄嚎鏄甯哥幇璞°�� + // 褰撳彧鏈変竴涓崗璁儏鍐典笅锛屽湪RTU鏈浘涓婄嚎鏃讹紝涔熻兘鐢ㄦ鍗忚鏋勯�犲懡浠ゅ苟缂撳瓨涓嬫潵锛屽挨鍏堕�傚悎浣庡姛鑰楁儏鍐点�� + //onlyOne=true: 閫氫俊涓棿浠跺綋鍓嶅彧鏈変竴涓崗璁� + ServerProperties.onlyOneProtocol = conf.getSetAttrBoolean(doc, "config.base", "onlyOneProtocol", null, null) ; + if(ServerProperties.onlyOneProtocol == null){ + ServerProperties.onlyOneProtocol = false ; + } + //涓嬭鍛戒护鍏佽鍙戦�佺殑鏈�澶ф鏁癤锛屽嵆鍏佽閲嶅彂X-1 + ServerProperties.downComandMaxResendTimes = conf.getSetAttrPlusInt(doc, "config.base", "downComandMaxResendTimes", null, 1, 5, null).byteValue() ; + //閽堝涓�涓猂TU锛屼笅鍙戝懡浠ょ殑鏃堕棿闂撮殧 + ServerProperties.commandSendInterval = conf.getSetAttrPlusInt(doc, "config.base", "commandSendInterval", null, 1, 40, null) * 1000L ; + //鍛戒护宸茬粡鍙戦�佽揪鏈�澶ф鏁帮紝浠嶆湭鏀跺埌鍛戒护缁撴灉锛岄渶瑕佸湪缂撳瓨缁х画绛夊緟锛屽叾绛夊緟鏈�澶ф椂闀� + ServerProperties.cachWaitResultTimeout = conf.getSetAttrPlusInt(doc, "config.base", "cachWaitResultTimeout", null, 10, 60, null) * 1000L ; + //涓嶅湪绾跨紦瀛樼殑鍛戒护鏈�澶х紦瀛樻椂闀� + ServerProperties.offLineCachTimeout = conf.getSetAttrPlusInt(doc, "config.base", "offLineCachTimeout", null, 15, 172800, null) * 1000L ; + //TCP涓婅鏁版嵁鏃跺埢缂撳瓨鏃堕暱锛屽綋杈惧埌鏃堕暱鏃讹紝TCP涓婅鏁版嵁鏃跺埢琚竻绌猴紝閲囩敤TCP涓婅鏁版嵁鏃跺埢鐩殑鏄紝闃绘涓婃暟鎹悓鏃朵笅鍙戞暟鎹紝鍥犱负RTU澶勭悊涓嶈繃鏉� + ServerProperties.lastUpDataTimeLive = conf.getSetAttrPlusInt(doc, "config.base", "lastUpDataTimeLive", null, 0, 5, null) * 1000L ; + //鏁版嵁搴撴暟鎹甶d鐢熸垚鍣ㄧ殑id鍚庣紑锛�0鏄粯璁ょ殑鍚庣紑锛屼竴鑸瑆eb绯荤粺搴旂敤锛屾暟鎹腑闂翠欢id鍚庣紑澶т簬绛変簬1 + ServerProperties.dbDataIdSuffix = conf.getSetAttrInt(doc, "config.base", "dbDataIdSuffix", null, 1, 9, null); + + //璁剧疆ID鐢熸垚鍣ㄧ殑鍚庣紑 + IDLongGenerator.setSuffix(ServerProperties.dbDataIdSuffix.intValue()); + + + //////////////// + //鍗忚妯″潡 + ProtocolConfigVo protoVo = new ProtocolConfigVo(); + protoVo.centerAddr = conf.getSetAttrPlusInt(doc, "config.protocol", "centerAddr", null, 1, 4, null) ; + protoVo.synchroRtuClock = conf.getSetAttrBoolean(doc, "config.protocol", "synchroRtuClock", null, null) ; + //褰揜TU涓庢湇鍔″櫒鏃堕挓鐩稿樊涓�瀹氱閽熷悗锛岃繘琛屾牎鏃� + protoVo.synchroRtuClockTimepieces = 1000 * conf.getSetAttrPlusInt(doc, "config.protocol", "synchroRtuClockTimepieces", null, null, null, null) ; + protoVo.showStartInfo = showStartInfo ; + AdapterImp_ProtocolUnit protoAdap = new AdapterImp_ProtocolUnit(); + protoAdap.setConfig(protoVo); + ProtocolUnit protoUnit = ProtocolUnit.getInstance(); + protoUnit.setAdapter(protoAdap); + protoUnit.start(new UnitStartedCallbackInterface(){ + @Override + public void call(Object obj) { + } + }); + units.add(protoUnit) ; + + //////////////////////////////////////////////////////// + //鏀寔妯″潡锛� springHibernate鍜� 绾跨▼姹� + SupportUnitConfigVo supVo = new SupportUnitConfigVo() ; + //鐭伐浣滄椂闀跨嚎绋嬫睜锛岀嚎绋嬭礋璐g敤鏃惰緝鐭殑宸ヤ綔浠诲姟 + supVo.short_maxThread = conf.getSetAttrPlusInt(doc, "config.support", "short_maxThread", null, 1, 1000, null) ;//姹犱腑鏈�澶х嚎绋嬫暟涓烘墍鏈塁PU鏍告暟+1 + supVo.short_minThread = conf.getSetAttrPlusInt(doc, "config.support", "short_minThread", null, 1, 5, null) ;//姹犱腑鏈�灏忕嚎绋嬫暟 + supVo.short_freeTimeout = conf.getSetAttrPlusInt(doc, "config.support", "short_freeTimeout", null, 1, 90, null) * 1000 ;//绾跨▼鏁扮┖闂叉椂闀匡紝鑻ユ睜涓嚎绋嬫暟閲忓ぇ浜巑inThread锛屼笖鏈夌殑绾跨▼绌洪棽鏃堕暱瓒呰繃freeTimeout锛屽垯娓呴櫎璇ョ嚎绋嬶紝涓轰簡涓嶆竻闄わ紝鎶妋inThread涓巑axThread璁剧疆鐩哥瓑 + supVo.short_busyTimeout = conf.getSetAttrPlusInt(doc, "config.support", "short_busyTimeout", null, 1, 10, null) * 1000 ;//绾跨▼涓嶉棿鏂伐浣滄椂闀匡紙鍗曚綅涓虹)瓒呮椂闄愶紝璁や负绾跨▼宸茬粡浜嗗穿婧冿紝灏嗗己鍒舵竻闄わ紝鐭伐浣滄椂闀胯缃负5绉� + //闀垮伐浣滄椂闀跨嚎绋嬫睜锛岀嚎绋嬭礋璐g敤鏃惰緝闀跨殑宸ヤ綔浠诲姟 + supVo.long_maxThread = conf.getSetAttrInt(doc, "config.support", "long_maxThread", null, -1, 1000, null) ;//姹犱腑鏈�澶х嚎绋嬫暟,鑻ヤ负-1锛屼笉鍙楅檺鍒� + if(supVo.long_maxThread < 0){ + supVo.long_maxThread = -1 ; + } + supVo.long_minThread = conf.getSetAttrPlusInt(doc, "config.support", "long_minThread", null, 0, 5, null) ;//姹犱腑鏈�灏忕嚎绋嬫暟 + supVo.long_freeTimeout = conf.getSetAttrPlusInt(doc, "config.support", "long_freeTimeout", null, 1, 90, null) * 1000 ;//绾跨▼鏁扮┖闂叉椂闀匡紝鑻ユ睜涓嚎绋嬫暟閲忓ぇ浜巑inThread锛屼笖鏈夌殑绾跨▼绌洪棽鏃堕暱瓒呰繃freeTimeout锛屽垯娓呴櫎璇ョ嚎绋� + supVo.long_busyTimeout = conf.getSetAttrInt(doc, "config.support", "long_busyTimeout", null, -1, 10, null) ;//绾跨▼涓嶉棿鏂伐浣滄椂闀匡紙鍗曚綅涓虹)瓒呮椂闄愶紝鑻ヤ负-1锛屼笉鍙楅檺鍒� + if(supVo.long_busyTimeout < 0){ + supVo.long_busyTimeout = -1 ; + } + + supVo.enableThreadPool = conf.getSetAttrBoolean(doc, "config.support", "enableThreadPool", null, null) ; + +// supVo.enableSpringHibernate = conf.getSetAttrBoolean(doc, "config.support", "enableSpringHibernate", null, null) ; +// if(supVo.enableSpringHibernate){ +// supVo.springXmlFile = conf.getSetAttrTxt(doc, "config.support", "springXmlFile", null, false, null) ; +// } + + supVo.showStartInfo = showStartInfo ; + + AdapterImp_SupportUnit supAdap = new AdapterImp_SupportUnit() ; + supAdap.setConfig(supVo); + SupportUnit supUnit = SupportUnit.getInstance() ; + supUnit.setAdapter(supAdap); + supUnit.start(new UnitStartedCallbackInterface(){ + @Override + public void call(Object obj) { + } + }); + units.add(supUnit) ; + + + ///////////////////////// + //璧勬簮妯″潡 + ResourceUnitConfigVo resVo = new ResourceUnitConfigVo() ; + //RTU鏃ュ織鏂囦欢瀛樺偍鐩綍(鐩稿鐩綍) + resVo.rtuLogDir = conf.getSetAttrTxt(doc, "config.resource", "rtuLogDir", null, false, null) ; + //RTU鏃ュ織鏂囦欢鏈�澶у瓧鑺傛暟(KB) + resVo.rtuLogFileMaxSize = conf.getSetAttrPlusInt(doc, "config.resource", "rtuLogFileMaxSize", null, 100000, 2000000, null) ; + //RTU鏃ュ織鏂囦欢鏈�澶ф枃浠舵暟 + resVo.rtuLogFileMaxCount = conf.getSetAttrPlusInt(doc, "config.resource", "rtuLogFileMaxCount", null, 1, 10, null) ; + + //Rtu鐘舵�佺洃瑙嗛棿闅�(鍒嗛挓) + resVo.monitorInterval = conf.getSetAttrPlusInt(doc, "config.resource", "monitorInterval", null, 1, 5, null) ; + //Rtu鐘舵�佸瓨鏁版嵁搴撻棿闅�(鍒嗛挓) + resVo.saveDbInterval = conf.getSetAttrPlusInt(doc, "config.resource", "saveDbInterval", null, 5, 20, null) ; + //Rtu鏃犳暟鎹笂浼犺揪鍒版鍊硷紝鍒欒涓轰笉鍦ㄧ嚎浜�(鍒嗛挓) + //娉ㄦ剰锛歯oUpDataLimitTime鍦ㄥ厓绱燾onfig.protocol涓� + //resVo.noUpDataLimitTime = conf.getSetAttrPlusInt(doc, "config.protocol", "noUpDataLimitTime", null, 30, 60, null) ; + AdapterImp_ResourceUnit resAdap = new AdapterImp_ResourceUnit() ; + resAdap.setConfig(resVo); + ResourceUnit resUnit = ResourceUnit.getInstance() ; + resUnit.setAdapter(resAdap); + //褰撳墠鏀寔spring + hibernate + resUnit.setSpringContext(SpringContextUtil.getApplicationContext()); + + resUnit.start(new UnitStartedCallbackInterface(){ + @Override + public void call(Object obj) { + } + }); + units.add(resUnit) ; + + + ///////////////// + //RMI妯″潡 + RmiConfigVo rmiVo = new RmiConfigVo(); + rmiVo.enable = conf.getSetAttrBoolean(doc, "config.rmi", "enable", null, null) ; + if(rmiVo.enable){ + rmiVo.port = conf.getSetAttrPlusInt(doc, "config.rmi", "port", null, 100, 65535, null); + rmiVo.context = conf.getSetAttrTxt(doc, "config.rmi", "context", null, false, null); + rmiVo.showStartInfo = showStartInfo ; + AdapterImp_RmiUnit rmiAdap = new AdapterImp_RmiUnit(); + rmiAdap.setConfig(rmiVo); + RmiUnit rmiUnit = RmiUnit.getInstance(); + rmiUnit.setAdapter(rmiAdap); + rmiUnit.start(new UnitStartedCallbackInterface(){ + @Override + public void call(Object obj) { + } + }); + RmiSvUrl = "[ip]:" + rmiVo.port + "/" + rmiVo.context ; + units.add(rmiUnit) ; + } + + // /////////////// + // 鏍稿績 + CoreUnitConfigVo coreConfVo = new CoreUnitConfigVo(); + coreConfVo.sleepBigBusy = conf.getSetAttrPlusInt(doc, "config.core", "sleepBigBusy", null, 1, 200, null).longValue() ; + coreConfVo.sleepSmallBusy = conf.getSetAttrPlusInt(doc, "config.core", "sleepSmallBusy", null, 2, 1000, null).longValue(); + coreConfVo.queueWarnSize = conf.getSetAttrPlusInt(doc, "config.core", "queueWarnSize", null, 500, 1000000, null) ; + coreConfVo.queueMaxSize = conf.getSetAttrPlusInt(doc, "config.core", "queueMaxSize", null, 5000, 3000000, null) ; + coreConfVo.showStartInfo = showStartInfo ; + AdapterImp_CoreUnit coreAdap = new AdapterImp_CoreUnit(); + coreAdap.setConfig(coreConfVo); + CoreUnit coreUnit = CoreUnit.getInstance(); + coreUnit.setAdapter(coreAdap); + CoreUnit.addConstantTask(new ToRtuConstantTask()); + coreUnit.start(new UnitStartedCallbackInterface(){ + @Override + public void call(Object obj) { + } + }); + units.add(coreUnit) ; + + + // /////////////// + // TCP 妯″潡 + TcpConfigVo tcpVo = new TcpConfigVo(); + tcpVo.enable = conf.getSetAttrBoolean(doc, "config.tcp", "enable", null, null) ; + if(tcpVo.enable){ + tcpVo.port = conf.getSetAttrPlusInt(doc, "config.tcp", "port", null, 100, 65535, null); + tcpVo.processors = conf.getSetAttrPlusInt(doc, "config.tcp", "processors", null, 1, 100, null); + tcpVo.idle = conf.getSetAttrPlusInt(doc, "config.tcp", "idle", null, 1, 20, null);// 10鍒嗛挓 + tcpVo.showStartInfo = showStartInfo ; + AdapterImp_TcpUnit tcpAdap = new AdapterImp_TcpUnit(); + tcpAdap.setConfig(tcpVo); + TcpUnit tcpUnit = TcpUnit.getInstance(); + tcpUnit.setAdapter(tcpAdap); + tcpUnit.start(new UnitStartedCallbackInterface(){ + @Override + public void call(Object obj) { + } + }); + TcpSvUrl = "[ip]:" + tcpVo.port ; + units.add(tcpUnit) ; + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + +} diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/resource/ResourceUnit.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/resource/ResourceUnit.java index e846f1f..2155c2b 100644 --- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/resource/ResourceUnit.java +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/resource/ResourceUnit.java @@ -64,7 +64,7 @@ } @Override public void start(UnitStartedCallbackInterface callback) throws Exception { - if(confVo.enableSpringHibernate && ResourceUnit.springContext == null){ + if(ResourceUnit.springContext == null){ throw new Exception("Spring涓婁笅鏂囧璞℃湭璁剧疆锛�") ; } callback.call(null) ; diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/resource/ResourceUnitConfigVo.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/resource/ResourceUnitConfigVo.java index 8f634f3..7337f2e 100644 --- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/resource/ResourceUnitConfigVo.java +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/resource/ResourceUnitConfigVo.java @@ -3,9 +3,7 @@ public class ResourceUnitConfigVo { - public Boolean enableSpringHibernate ; - - //RTU鏃ュ織鏂囦欢瀛樺偍鐩綍(鐩稿鐩綍) + //RTU鏃ュ織鏂囦欢瀛樺偍鐩綍(鐩稿鐩綍) public String rtuLogDir ; //RTU鏃ュ織鏂囦欢鏈�澶у瓧鑺傛暟(KB) public int rtuLogFileMaxSize ; diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/AdapterImp_CoreUnit.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/AdapterImp_CoreUnit.java new file mode 100644 index 0000000..5a86d56 --- /dev/null +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/AdapterImp_CoreUnit.java @@ -0,0 +1,19 @@ +package com.dy.aceMw.server; + +import com.dy.common.mw.core.CoreUnitAdapter; +import com.dy.common.mw.core.CoreUnitConfigVo; + +public class AdapterImp_CoreUnit implements CoreUnitAdapter { + + private CoreUnitConfigVo configVo = null ; + + @Override + public CoreUnitConfigVo getConfig() { + return this.configVo; + } + + public void setConfig(CoreUnitConfigVo configVo) { + this.configVo = configVo; + } + +} diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/AdapterImp_ProtocolUnit.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/AdapterImp_ProtocolUnit.java new file mode 100644 index 0000000..96caeb4 --- /dev/null +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/AdapterImp_ProtocolUnit.java @@ -0,0 +1,60 @@ +package com.dy.aceMw.server; + +import com.dy.common.mw.protocol.MidResultAction; +import com.dy.common.mw.protocol.ProtocolConfigVo; +import com.dy.common.mw.protocol.ProtocolUnitAdapter; +import com.dy.aceMw.server.forTcp.MidResultActionError; +import com.dy.aceMw.server.forTcp.MidResultActionFromRtu; +import com.dy.aceMw.server.forTcp.MidResultActionToRtu; + +public class AdapterImp_ProtocolUnit implements ProtocolUnitAdapter { + + private static final MidResultAction toRtu = new MidResultActionToRtu() ; + private static final MidResultAction fromRtu = new MidResultActionFromRtu() ; + private static final MidResultAction error = new MidResultActionError() ; + + private ProtocolConfigVo configVo = null ; + + @Override + public ProtocolConfigVo getConfig() { + return this.configVo; + } + + public void setConfig(ProtocolConfigVo configVo) { + this.configVo = configVo; + } + + /** + * 鍗曠嚎绋嬬幆澧冧腑杩愯锛屽緱鍒板崟涓� 澶勭悊RTU涓嬭鏁版嵁鐨凪idResultAction鎵ц瀵硅薄 + * @param protocolName 鍗忚鍚嶇О + * @return MidResultAction + */ + @Override + public MidResultAction getSingleActionToRtu(String protocolName) { + return toRtu ; + } + + /** + * 鍗曠嚎绋嬬幆澧冧腑杩愯锛屽緱鍒板崟涓鐞哛TU涓婅鏁版嵁鐨凪idResultAction鎵ц瀵硅薄 + * @param protocolName 鍗忚鍚嶇О + * @return MidResultAction + */ + @Override + public MidResultAction getSingleActionFromRtu(String protocolName) { + return fromRtu ; + } + + /** + * 鍗曠嚎绋嬬幆澧冧腑杩愯锛屽緱鍒板崟涓鐞嗗嚭閿欑殑MidResultAction鎵ц瀵硅薄 + * @param protocolName 鍗忚鍚嶇О + * @return MidResultAction + */ + @Override + public MidResultAction getSingleActionError(String protocolName) { + return error ; + } + + + + +} diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/AdapterImp_ResourceUnit.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/AdapterImp_ResourceUnit.java new file mode 100644 index 0000000..21b82a7 --- /dev/null +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/AdapterImp_ResourceUnit.java @@ -0,0 +1,19 @@ +package com.dy.aceMw.server; + +import com.dy.aceMw.resource.ResourceUnitAdapter; +import com.dy.aceMw.resource.ResourceUnitConfigVo; + +public class AdapterImp_ResourceUnit implements ResourceUnitAdapter { + + private ResourceUnitConfigVo configVo = null ; + + @Override + public ResourceUnitConfigVo getConfig() { + return this.configVo; + } + + public void setConfig(ResourceUnitConfigVo configVo) { + this.configVo = configVo; + } + +} diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/AdapterImp_RmiUnit.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/AdapterImp_RmiUnit.java new file mode 100644 index 0000000..3fd4fd5 --- /dev/null +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/AdapterImp_RmiUnit.java @@ -0,0 +1,26 @@ +package com.dy.aceMw.server; + +import com.dy.aceMw.server.forRmi.RmiRequestedCallback; +import com.dy.common.mw.channel.rmi.RmiConfigVo; +import com.dy.common.mw.channel.rmi.RmiRequestCallback; +import com.dy.common.mw.channel.rmi.RmiUnitAdapter; + +public class AdapterImp_RmiUnit implements RmiUnitAdapter { + + private RmiConfigVo configVo ; + + @Override + public RmiConfigVo getConfig() { + return configVo; + } + + public void setConfig(RmiConfigVo configVo){ + this.configVo = configVo ; + } + + @Override + public RmiRequestCallback newRequestCallback() { + return new RmiRequestedCallback(); + } + +} diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/AdapterImp_SupportUnit.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/AdapterImp_SupportUnit.java new file mode 100644 index 0000000..b58ef61 --- /dev/null +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/AdapterImp_SupportUnit.java @@ -0,0 +1,20 @@ +package com.dy.aceMw.server; + +import com.dy.common.mw.support.SupportUnitAdapter; +import com.dy.common.mw.support.SupportUnitConfigVo; + +public class AdapterImp_SupportUnit implements SupportUnitAdapter { + + private SupportUnitConfigVo configVo = null ; + + @Override + public SupportUnitConfigVo getConfig() { + return this.configVo; + } + + public void setConfig(SupportUnitConfigVo configVo) { + this.configVo = configVo; + } + + +} diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/AdapterImp_TcpUnit.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/AdapterImp_TcpUnit.java new file mode 100644 index 0000000..bffada1 --- /dev/null +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/AdapterImp_TcpUnit.java @@ -0,0 +1,33 @@ +package com.dy.aceMw.server; + +import com.dy.common.mw.channel.tcp.PrefixedDataAvailableHandle; +import com.dy.common.mw.channel.tcp.TcpConfigVo; +import com.dy.common.mw.channel.tcp.TcpIoSessionEventCallback; +import com.dy.common.mw.channel.tcp.TcpUnitAdapter; +import com.dy.common.mw.protocol.PrefixedDataAvailableHandleImp; +import com.dy.aceMw.server.forTcp.TcpIoSessionCallback; + +public class AdapterImp_TcpUnit implements TcpUnitAdapter { + + private TcpConfigVo configVo ; + + @Override + public TcpConfigVo getConfig() { + return configVo; + } + + public void setConfig(TcpConfigVo configVo){ + this.configVo = configVo ; + } + + @Override + public PrefixedDataAvailableHandle newPrefixedDataAvailableHandle() { + return new PrefixedDataAvailableHandleImp() ; + } + + @Override + public TcpIoSessionEventCallback newSessionEventCallback() { + return new TcpIoSessionCallback() ; + } + +} diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/ServerProperties.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/ServerProperties.java index 5ce6d7f..84a9a42 100644 --- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/ServerProperties.java +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/ServerProperties.java @@ -22,7 +22,7 @@ public static Long offLineCachTimeout = 60 * 1000L ; //TCP涓婅鏁版嵁鏃跺埢缂撳瓨鏃堕暱锛屽綋杈惧埌鏃堕暱鏃讹紝TCP涓婅鏁版嵁鏃跺埢琚竻绌猴紝閲囩敤TCP涓婅鏁版嵁鏃跺埢鐩殑鏄紝闃绘涓婃暟鎹悓鏃朵笅鍙戞暟鎹紝鍥犱负RTU澶勭悊涓嶈繃鏉� - public static Long lastUpDataTimeLive = 1 * 1000L ; + public static Long lastUpDataTimeLive = 1000L ; //鏁版嵁搴撴暟鎹甶d鐢熸垚鍣ㄧ殑id鍚庣紑锛�0鏄粯璁ょ殑鍚庣紑锛屼竴鑸瑆eb绯荤粺搴旂敤锛屾暟鎹腑闂翠欢id鍚庣紑澶т簬绛変簬1 public static Integer dbDataIdSuffix = 1 ; diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/forRmi/RmiRequestedCallback.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/forRmi/RmiRequestedCallback.java new file mode 100644 index 0000000..a0eb763 --- /dev/null +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/forRmi/RmiRequestedCallback.java @@ -0,0 +1,30 @@ +package com.dy.aceMw.server.forRmi; + +import java.rmi.RemoteException; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import com.dy.common.mw.channel.rmi.RmiRequestCallback; + + +public class RmiRequestedCallback implements RmiRequestCallback{ + + @SuppressWarnings("unused") + private static final Logger log; + static { + log = LogManager.getLogger(RmiRequestedCallback.class.getName()); + } + + @Override + public Object syncRequest(Object obj) throws RemoteException { + return null; + } + + @Override + public String asyncRequest(Object obj) throws RemoteException { + return null; + } + + +} diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/forTcp/MidResultActionFromRtu.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/forTcp/MidResultActionFromRtu.java index f629bc9..896f2d8 100644 --- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/forTcp/MidResultActionFromRtu.java +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/forTcp/MidResultActionFromRtu.java @@ -3,12 +3,10 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import com.dy.aceMw.server.forMq.ToMqMessageCach; 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; -import com.dy.common.util.rtuMq.MessageType; public class MidResultActionFromRtu implements MidResultAction { @@ -44,11 +42,11 @@ private void sendResult(boolean reportOrResponse_trueOrFalse, MidResultFromRtu resFromRtu){ try{ String json = resFromRtu.data.toJson() ; - if(reportOrResponse_trueOrFalse){ - ToMqMessageCach.cachObj(MessageType.RtuAutoReport, json); - }else{ - ToMqMessageCach.cachObj(MessageType.RtuCmdResponse, json); - } +// if(reportOrResponse_trueOrFalse){ +// ToMqMessageCach.cachObj(MessageType.RtuAutoReport, json); +// }else{ +// ToMqMessageCach.cachObj(MessageType.RtuCmdResponse, json); +// } }catch(Exception e){ log.error(e.getMessage(), e); } diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/forTcp/RtuLogDealer.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/forTcp/RtuLogDealer.java index 013c6ad..e9c8570 100644 --- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/forTcp/RtuLogDealer.java +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/forTcp/RtuLogDealer.java @@ -2,8 +2,8 @@ import org.apache.logging.log4j.*; -import com.dy.commu.resource.ResourceUnit; -import com.dy.commu.resource.rtuLog.RtuLogNode; +import com.dy.aceMw.resource.ResourceUnit; +import com.dy.aceMw.resource.rtuLog.RtuLogNode; public class RtuLogDealer { diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/tasks/RtuUpTask.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/tasks/RtuUpTask.java index 802461e..16418cf 100644 --- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/tasks/RtuUpTask.java +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/tasks/RtuUpTask.java @@ -23,7 +23,7 @@ public class RtuUpTask extends CoreTask { - private static Logger log = LogManager.getLogger(RtuUpTask.class.getName()); + private static final Logger log = LogManager.getLogger(RtuUpTask.class.getName()); @Override public Integer excute() { @@ -40,8 +40,8 @@ /** * RTU涓婅鏁版嵁 - * @param session - * @param upBuf + * @param session IO浼氳瘽 + * @param upBuf 涓婅鏁版嵁 */ private void upData(IoSession session, byte[] upBuf) throws Exception{ if(upBuf == null){ @@ -63,7 +63,7 @@ //璇存槑鍒氬缓绔嬬綉缁滆繛鎺ワ紝姝ゆ暟鎹簲璇ユ槸涓婄嚎鏁版嵁 isOnLine = true ; String[] rtuAddrProtocolName = this.parseOnLine(session, upBuf) ; - if(rtuAddrProtocolName != null && rtuAddrProtocolName.length == 2){ + if(rtuAddrProtocolName.length == 2){ //瑙f瀽涓婄嚎鏁版嵁鎴愬姛锛屽苟瑙f瀽鍑篟TU鍦板潃鍙婇�氫俊鍗忚鍚嶇О rtuAddr = rtuAddrProtocolName[0] ; protocolName = rtuAddrProtocolName[1] ; @@ -96,8 +96,8 @@ /** * 瑙f瀽涓婄嚎鏁版嵁 - * @param session - * @param upBuf + * @param session IO浼氳瘽 + * @param upBuf 涓婅鏁版嵁 */ private String[] parseOnLine(IoSession session, byte[] upBuf){ String rtuAddr = null ; @@ -135,18 +135,20 @@ /** * 澶勭悊涓婅鏁版嵁 - * @param session - * @param rtuAddr - * @param upBuf - * @param upHex - * @throws Exception + * @param session IO浼氳瘽 + * @param rtuAddrAtHead 鎺у埗鍣ㄥ湴鍧�澶撮儴 + * @param protocolName 鍗忚鍚嶇О + * @param isOnLine 鏄惁涓婄嚎鏁版嵁 + * @param upBuf 涓婅鏁版嵁 + * @param upHex 涓婅鏁版嵁 + * @throws Exception 寮傚父 */ private void dealUpData(IoSession session, String rtuAddrAtHead, String protocolName, boolean isOnLine, byte[] upBuf, String upHex) throws Exception{ Driver dri = ProtocolCach.getDriver(protocolName) ; if(dri == null){ log.error("涓ラ噸閿欒锛屾湭鑳藉緱鍒板崗璁�" + protocolName + "椹卞姩绫诲疄渚嬶紒"); }else{ - MidResult[] midRses = dri.parseData(ServerProperties.isLowPower, rtuAddrAtHead, upBuf, upHex, new DriverParserDataCallback(){ + MidResult[] midRs = dri.parseData(ServerProperties.isLowPower, rtuAddrAtHead, upBuf, upHex, new DriverParserDataCallback(){ @Override public void callback(String rtuAddrAtHead, String meterNoAtHead, String code, String upHex, Boolean reportOrResponse_trueOrFalse, boolean parseFail, String rtuAddrInData, String meterNoInData) { //鏇存柊缁堢鐘舵�� @@ -155,25 +157,25 @@ TcpSessionCach.changeRtuAddr(rtuAddrAtHead, rtuAddrInData, protocolName, session); session.setAttribute(TcpIoSessionAttrIdIsRtuAddr.sessionArrIdKey, rtuAddrInData) ; } - - String rtuAddr = null ; + + String rtuAddr ; if(rtuAddrInData != null){ - rtuAddr = rtuAddrInData ; + rtuAddr = rtuAddrInData ; }else{ rtuAddr = rtuAddrAtHead ; } - + InetSocketAddress sa = (InetSocketAddress)session.getRemoteAddress() ; if(isOnLine){ //涓婄嚎浜� RtuStatusDealer.onLine(rtuAddr, sa.getAddress().getHostAddress(), sa.getPort()); } - if(reportOrResponse_trueOrFalse != null && reportOrResponse_trueOrFalse.booleanValue()){ + if(reportOrResponse_trueOrFalse != null && reportOrResponse_trueOrFalse){ RtuStatusDealer.upReport(rtuAddr, upBuf.length) ; }else{ RtuStatusDealer.upData(rtuAddr, upBuf.length) ; } - + //璁板綍鏃ュ織 if(parseFail){ RtuLogDealer.log(rtuAddr, (isOnLine?"涓婄嚎鏁版嵁 ":"涓婅鏁版嵁 ") + "" + code + "锛�" + upHex + "锛堣В鏋愬け璐ワ級"); @@ -182,8 +184,8 @@ } } }) ; - if(midRses != null){ - for(MidResult rs : midRses){ + if(midRs != null){ + for(MidResult rs : midRs){ rs.action(); } } diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/tasks/ToRtuConstantTask.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/tasks/ToRtuConstantTask.java index dc93cb9..08721c8 100644 --- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/tasks/ToRtuConstantTask.java +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/java/com/dy/aceMw/server/tasks/ToRtuConstantTask.java @@ -13,8 +13,7 @@ * 澶勭悊RTU涓嬭鍛戒护鏁版嵁鐨勬亽涔呬换鍔� */ public class ToRtuConstantTask extends CoreTask { - - private static Logger log = LogManager.getLogger(ToRtuConstantTask.class.getName()); + private static final Logger log = LogManager.getLogger(ToRtuConstantTask.class.getName()); /** * 鍦ㄥ崟绾跨▼鐜涓繍琛� @@ -56,9 +55,9 @@ } /** * 澶勭悊缂撳瓨鐨勪笅琛屽懡浠よ妭鐐� - * @param now - * @param first - * @param last + * @param now 褰撳墠鏃跺埢 + * @param first 绗竴涓妭鐐� + * @param last 鏄悗涓�涓妭鐐� */ private void doDealDownCommand(Long now, Node first, Node last){ if(first != null){ @@ -78,8 +77,8 @@ /** * 澶勭悊涓�涓妭鐐� - * @param now - * @param node + * @param now 鐜板湪鏃跺埢 + * @param node 鑺傜偣 */ private void dealNode(Long now, Node node){ TcpDownCommandObj obj = (TcpDownCommandObj)node.obj ; diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/resources/config.xml b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/resources/config.xml index 7e3ad06..230a69b 100644 --- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/resources/config.xml +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-accept/src/main/resources/config.xml @@ -63,8 +63,6 @@ long_freeTimeout锛� 绾跨▼鏁扮┖闂叉椂闀匡紝鑻ユ睜涓嚎绋嬫暟閲忓ぇ浜巑inThread锛屼笖鏈夌殑绾跨▼绌洪棽鏃堕暱瓒呰繃freeTimeout锛屽垯娓呴櫎璇ョ嚎绋� long_busyTimeout锛氱嚎绋嬩笉闂存柇宸ヤ綔鏃堕暱锛堝崟浣嶄负绉�)瓒呮椂闄愶紝鑻ヤ负-1锛屼笉鍙楅檺鍒� enableThreadPool锛氭槸鍚﹀惎鐢ㄧ嚎绋嬫睜 - enableSpringHibernate锛氭槸鍚﹀惎鐢⊿pring+Hibernate - springXmlFile锛� Spring+Hibernate閰嶇疆鏂囦欢 --> <support short_maxThread="100" @@ -76,8 +74,6 @@ long_freeTimeout="60" long_busyTimeout="-1" enableThreadPool="true" - enableSpringHibernate="false" - springXmlFile="config/spring.xml" /> <!-- -- Gitblit v1.8.0