| package com.dy.pipIrrMwTestRtu; | 
|   | 
| import com.dy.common.mw.UnitInterface; | 
| import com.dy.common.util.ConfigXml; | 
| import com.dy.pipIrrMwTestRtu.tcpClient.TcpClUnit; | 
| import com.dy.pipIrrMwTestRtu.tcpClient.TcpClUnitConfigVo; | 
| import org.jdom2.Document; | 
| import org.springframework.stereotype.Component; | 
|   | 
| import java.util.ArrayList; | 
| import java.util.List; | 
|   | 
| /** | 
|  * @Author: liurunyu | 
|  * @Date: 2024/7/12 8:50 | 
|  * @Description | 
|  */ | 
|   | 
| @Component | 
| public class Server { | 
|   | 
|     private ConfigXml conf = null ; | 
|     private Document doc = null ; | 
|     private boolean showStartInfo = false ; | 
|   | 
|     private String mwServerUrl ; | 
|   | 
|     private List<UnitInterface> units = new ArrayList<UnitInterface>() ; | 
|   | 
|     /* | 
|      * @param args 参数 | 
|     public static void main(String[] args) { | 
|         new Server().startServer(); | 
|     } | 
|     */ | 
|     /** | 
|      * 启动服务 | 
|      */ | 
|     public void startServer(){ | 
|         long start = System.currentTimeMillis() ; | 
|         try { | 
|             //ConfigProperties.init(this.getClass().getResourceAsStream("/config/config.properties"), false); | 
|   | 
|             this.conf = new ConfigXml() ; | 
|             this.doc = this.conf.createDom(this.getClass(), "config.xml") ; | 
|             //////////////// | 
|             //服务 配置 | 
|             this.showStartInfo = this.conf.getSetAttrBoolean(this.doc, "config.server", "showStartInfo", null, null) ; | 
|   | 
|             this.startUnits() ; | 
|   | 
|             String svName ; | 
|             try{ | 
|                 svName = this.conf.getSetAttrTxt(this.doc, "config.server", "name", null, false, null) ; | 
|             }catch(Exception e){ | 
|                 svName = "" ; | 
|             } | 
|   | 
|             String company ; | 
|             try{ | 
|                 company = this.conf.getSetAttrTxt(this.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 ) ; | 
|             System.out.println("@@@@@@$       O@@@@@@@@@     &@@@@@@@@") ; | 
|   | 
|             if(this.mwServerUrl != null){ | 
|                 System.out.println("@@@@@@$       O@@@@@@@@@     &@@@@@@@@       中间件服务端 " + this.mwServerUrl ) ; | 
|             }else{ | 
|                 System.out.println("@@@@@@$       O@@@@@@@@@     &@@@@@@@@") ; | 
|             } | 
|             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.rtuAddr = conf.getSetAttrTxt(doc, "config.base", "rtuAddr", null, false, null); | 
|             ServerProperties.onlyOneHeartBeat = conf.getSetAttrBoolean(doc, "config.base", "onlyOneHeartBeat",  null, null); | 
|             ServerProperties.icCardAddr = conf.getSetAttrTxt(doc, "config.base", "icCardAddr", null, false, null); | 
|             ServerProperties.icCardNo = conf.getSetAttrTxt(doc, "config.base", "icCardNo", null, false, null); | 
|   | 
|             // /////////////// | 
|             // TCP 模块 | 
|             TcpClUnitConfigVo tcpVo = new TcpClUnitConfigVo(); | 
|             tcpVo.mwServerIp = conf.getSetAttrTxt(doc, "config.tcpCl", "mwServerIp", null, false, null); | 
|             tcpVo.mwServerPort = conf.getSetAttrPlusInt(doc, "config.tcpCl", "mwServerPort", null, 100, 65535, null); | 
|             tcpVo.connectTimeout = conf.getSetAttrPlusInt(doc, "config.tcpCl", "connectTimeout", null, 1000, 10000, null); | 
|             this.mwServerUrl = tcpVo.mwServerIp + ":" + tcpVo.mwServerPort ; | 
|             AdapterImp_TcpClUnit tcpAdap = new AdapterImp_TcpClUnit(); | 
|             tcpAdap.setConfig(tcpVo); | 
|             TcpClUnit tcpUnit = TcpClUnit.getInstance(); | 
|             tcpUnit.setAdapter(tcpAdap); | 
|             tcpUnit.start(obj -> { | 
|             }); | 
|             units.add(tcpUnit) ; | 
|         }catch (Exception e){ | 
|             e.printStackTrace(); | 
|         } | 
|     } | 
| } |