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 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()); } private static List 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()); } }