Alejandro Acuña
2024-07-30 65a64a81d30f00f1fffd5da6866850e1308e1135
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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
package art.servers;
 
import art.library.gui.flat.FlatDialog;
import art.library.interop.serialization.Serialization;
import art.library.model.devices.Device;
import art.library.model.devices.etd.EtdInformation;
import art.library.model.devices.etd.information.EtdClassification;
import art.library.model.devices.etd.information.EtdInformationLane;
import art.library.utils.common.TimeUtils;
import art.servers.etdserver.configuration.Configuration;
import art.servers.etdserver.configuration.ConfigurationDPS;
import art.servers.etdserver.configuration.ConfigurationEtd;
import art.servers.etdserver.controller.ControllerDPS;
import art.servers.etdserver.controller.FactoryController;
import art.servers.etdserver.controller.ListenerImplementation;
import java.io.File;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.ArrayList;
import java.util.List;
 
 
public class EtdServer extends art.servers.Server
{
    public static void main(String[] args) 
    {
        try
        {
            EtdInformation[] letd = Serialization.deserialize(EtdInformation[].class, new File("art.servers.etdserver.etds.json"));
            System.out.println(letd.length);
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
        try
        {
            art.servers.etdserver.Shared.logDPS = existParameter(args, "-dps");
            art.servers.etdserver.Shared.deviceLog = getParameter(args, "-device");
            art.servers.etdserver.Shared.etdLog = getParameter(args, "-etdlog");
            art.servers.etdserver.Shared.testVigicat = existParameter(args, "-testvigicat");
 
            Shared.setApplicationCode("knME6XLV96FMTqkQ89QWw3bUx9bL7e4S");
            Shared.setApplicationName("art.servers.etdserver");
            preinitialise(args, Configuration.class);
            Shared.model = new art.servers.etdserver.Model(Shared.configuration);
            postinitialise(args);
            Shared.controllerListener.setListenerImplementation(new ListenerImplementation());
 
            Configuration configuration = (Configuration)Shared.configuration;
            File fileSpecific = new File("art.servers.etdserver.specific.json");
            if(fileSpecific.exists() == true)
            {
                System.out.println("Reading specific configuration");
                ConfigurationEtd[] letd = Serialization.deserialize(ConfigurationEtd[].class, fileSpecific);
                System.out.println("Readed specific configuration: " + letd.length);
                for (ConfigurationEtd config : letd)
                {
                    if (config.dpsIdentifier == null)
                    {
                        config.dpsIdentifier = config.identifier.replaceAll("etd-", "dps-");
                    }
                    configuration.letd.add(config);
                    System.out.println("Reading : " + config.identifier + " - " + config.dpsIdentifier);
                    System.out.println(config);
                }
            }
 
 
            // Controllers DPSs
            System.out.println("Creating Controllers DPS: " + ((Configuration)Shared.configuration).ldps.size());
            for (ConfigurationDPS configurationDPS : ((Configuration)Shared.configuration).ldps)
            {
                System.out.println("Creating Controller DPS: " + configurationDPS.identifier);
                ControllerDPS controllerDPS = new ControllerDPS(configurationDPS);
                controllerDPS.start();
                art.servers.etdserver.Shared.lcontrollerDPS.add(controllerDPS);
            }
 
 
            // Factory controller
            Shared.model.factoryController = new FactoryController();
            Shared.model.factoryController.start();
        }
        catch (Exception e)
        {
            e.printStackTrace();
            StringWriter sw = new StringWriter();
            e.printStackTrace(new PrintWriter(sw));
            FlatDialog.showDialog(null, Shared.getMessage("Error"), e.getMessage() + "\n\n" + sw.toString(), true, FlatDialog.DIALOG_INFORMATION);
            System.exit(0);
        }
    }
 
 
 
 
 
 
    private static List<EtdClassification> createEtdLengthClassificationDPS()
    {
        // Los DPS no calculan ni longitud ni velocidad, solo intensidad y ocupación
        // De momento las clasificaciones de longitud las devolvemos vacías
        return(new ArrayList<EtdClassification>());
    }
 
 
    private static List<EtdClassification> createEtdSpeedClassificationDPS()
    {
        // Los DPS no calculan ni longitud ni velocidad, solo intensidad y ocupación
        // De momento las clasificaciones de velocidad las devolvemos vacías
        return(new ArrayList<EtdClassification>());
    }
}