1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
package com.dy.simRtu202404;
 
import com.dy.common.mw.UnitInterface;
import com.dy.common.util.ConfigXml4Springboot;
import com.dy.simRtu202404.tcpClient.TcpClUnit;
import com.dy.simRtu202404.tcpClient.TcpClUnitConfigVo;
import org.jdom2.Document;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.io.ResourceLoader;
import org.springframework.stereotype.Component;
 
import java.util.ArrayList;
import java.util.List;
 
/**
 * @Author: liurunyu
 * @Date: 2025/02/26 11:03
 * @Description
 */
@Component
public class Server {
    @Autowired
    protected ResourceLoader resourceLoader ;
 
    private ConfigXml4Springboot conf = null ;
    private Document doc = null ;
    private boolean showStartInfo = false ;
 
    private List<UnitInterface> units = new ArrayList<UnitInterface>() ;
 
    /**
     * 启动服务
     */
    public void startServer() {
        long start = System.currentTimeMillis();
        try {
            this.conf = new ConfigXml4Springboot() ;
            this.doc = this.conf.createDom(resourceLoader, "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(ServerProperties.serverIp != null){
                System.out.println("@@@@@@$       O@@@@@@@@@     &@@@@@@@@       远程中间件服务 " + (ServerProperties.serverIp + " " + ServerProperties.serverPort) ) ;
            }else{
                System.out.println("@@@@@@$       O@@@@@@@@@     &@@@@@@@@") ;
            }
            System.out.println("@@@@@@$      #@@@@@@@@@$     &@@@@@@@@       本RTU地址 " + ServerProperties.rtuAddr ) ;
            System.out.println("@@@@@@@@@@@@@@@@@@@@@@#      &@@@@@@@@       Running 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 {
            // ///////////////
            // TCP 模块
            TcpClUnitConfigVo tcpVo = new TcpClUnitConfigVo();
            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();
        }
    }
}