From 816cb391a192e357426312ab8e591fd49d1d242e Mon Sep 17 00:00:00 2001
From: Alejandro Acuña <alejandro.acuna@aluvisagrupo.com>
Date: Mon, 16 Sep 2024 07:09:32 +0000
Subject: [PATCH] asd
---
/dev/null | 8 -
.gitignore | 3
svgDevicesTest/maps/VigicatCUC.java | 245 ++++++++++++++++++++++++++++++++++++----
servers/enforcement/gost-access-server/src/art/servers/gost/access/controller/Controller_ACCESS_Neural.java | 14 +-
servers/enforcement/gost-access-server/src/art/servers/gost/access/controller/Controller_ACCESS_Neural_Detections.java | 48 ++-----
5 files changed, 245 insertions(+), 73 deletions(-)
diff --git a/.gitignore b/.gitignore
index 8b3de4a..d6a83b5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -31,3 +31,6 @@
*.exe
*.rar
*.jar
+servers/enforcement/gost-access-server/build/
+servers/enforcement/gost-access-server/nbproject/private/private.xml
+servers/enforcement/gost-access-server/src/version.properties
diff --git a/servers/enforcement/gost-access-server/build/built-jar.properties b/servers/enforcement/gost-access-server/build/built-jar.properties
deleted file mode 100644
index 1747a00..0000000
--- a/servers/enforcement/gost-access-server/build/built-jar.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-#Thu, 25 Jul 2024 10:09:57 +0200
-
-
-D\:\\LocalBackup\\servers\\enforcement\\gost-access-server=
diff --git a/servers/enforcement/gost-access-server/build/classes/art/servers/gost/access/controller/Controller_ACCESS_Neural.class b/servers/enforcement/gost-access-server/build/classes/art/servers/gost/access/controller/Controller_ACCESS_Neural.class
deleted file mode 100644
index a289ec7..0000000
--- a/servers/enforcement/gost-access-server/build/classes/art/servers/gost/access/controller/Controller_ACCESS_Neural.class
+++ /dev/null
Binary files differ
diff --git a/servers/enforcement/gost-access-server/build/classes/art/servers/gost/access/controller/Controller_ACCESS_Neural_Detections$1.class b/servers/enforcement/gost-access-server/build/classes/art/servers/gost/access/controller/Controller_ACCESS_Neural_Detections$1.class
deleted file mode 100644
index e1bec35..0000000
--- a/servers/enforcement/gost-access-server/build/classes/art/servers/gost/access/controller/Controller_ACCESS_Neural_Detections$1.class
+++ /dev/null
Binary files differ
diff --git a/servers/enforcement/gost-access-server/build/classes/art/servers/gost/access/controller/Controller_ACCESS_Neural_Detections.class b/servers/enforcement/gost-access-server/build/classes/art/servers/gost/access/controller/Controller_ACCESS_Neural_Detections.class
deleted file mode 100644
index e16c6a7..0000000
--- a/servers/enforcement/gost-access-server/build/classes/art/servers/gost/access/controller/Controller_ACCESS_Neural_Detections.class
+++ /dev/null
Binary files differ
diff --git a/servers/enforcement/gost-access-server/nbproject/private/private.xml b/servers/enforcement/gost-access-server/nbproject/private/private.xml
deleted file mode 100644
index 4511e0c..0000000
--- a/servers/enforcement/gost-access-server/nbproject/private/private.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project-private xmlns="http://www.netbeans.org/ns/project-private/1">
- <editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/2" lastBookmarkId="1">
- <file>
- <url>src/art/servers/ermserver/protocol/UNE199141/Comando.java</url>
- <bookmark id="1">
- <name/>
- <line>0</line>
- <key/>
- </bookmark>
- </file>
- </editor-bookmarks>
- <open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2">
- <group name="Artic3"/>
- <group name="Artic3Projects"/>
- <group/>
- </open-files>
-</project-private>
diff --git a/servers/enforcement/gost-access-server/src/art/servers/gost/access/controller/Controller_ACCESS_Neural.java b/servers/enforcement/gost-access-server/src/art/servers/gost/access/controller/Controller_ACCESS_Neural.java
index f46f401..b16d0e0 100644
--- a/servers/enforcement/gost-access-server/src/art/servers/gost/access/controller/Controller_ACCESS_Neural.java
+++ b/servers/enforcement/gost-access-server/src/art/servers/gost/access/controller/Controller_ACCESS_Neural.java
@@ -73,7 +73,7 @@
}
}
- // Shared.println(getName(), "Finished");
+ Shared.println(getName(), "Finished");
Shared.traceInformation(getName(), Shared.getMessage("Finishing"));
}
@@ -90,7 +90,7 @@
}
catch (Exception e)
{
- // Shared.printstack(getName(), e);
+ Shared.printstack(getName(), e);
}
}
@@ -118,11 +118,11 @@
}
catch (Exception exception)
{
- // exception.printStackTrace();
+ exception.printStackTrace();
if ((access.alarms.alarm_offline > 0) || (firstTime == true))
{
firstTime = false;
- // Shared.printstack(getName(), exception);
+ Shared.printstack(getName(), exception);
}
offline(accessclone); // todas las camaras offline
@@ -147,7 +147,7 @@
if ((accessclone.alarms.alarm_offline > 0) || (firstTime == true))
{
firstTime = false;
- // Shared.println(getName(), Shared.getMessage("Access online"));
+ Shared.println(getName(), Shared.getMessage("Access online"));
}
lastOnline = System.currentTimeMillis();
@@ -164,7 +164,7 @@
AccessEnforcementInformation information = accessclone.getDeviceInformation();
// https://10.106.7.18/art?operation=getStatus
- String url = "https://" + information.neural.connection.address + ":" + information.neural.connection.port + "/art?operation=getStatus";
+ String url = "https://" + information.neural.connection.address + "/art?operation=getStatus";
String user = Shared.getText(information.neural.connection.user);
String password = Shared.getText(information.neural.connection.password);
@@ -176,7 +176,7 @@
url += "&token=" + user + "," + password;
- // System.out.println(getName() + " - " + url);
+ System.out.println(getName() + " - " + url);
byte[] response = HttpsRequest.requestBytes(url, user, password, new byte[0], 30000, 60000);
NeuralStatus neuralStatus = Serialization.deserialize(NeuralStatus.class, response);
diff --git a/servers/enforcement/gost-access-server/src/art/servers/gost/access/controller/Controller_ACCESS_Neural_Detections.java b/servers/enforcement/gost-access-server/src/art/servers/gost/access/controller/Controller_ACCESS_Neural_Detections.java
index eb7a78c..d53d716 100644
--- a/servers/enforcement/gost-access-server/src/art/servers/gost/access/controller/Controller_ACCESS_Neural_Detections.java
+++ b/servers/enforcement/gost-access-server/src/art/servers/gost/access/controller/Controller_ACCESS_Neural_Detections.java
@@ -18,7 +18,6 @@
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
-import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -61,14 +60,17 @@
{
try
{
+ System.out.println(getName() + " - 1.RUN");
if (Shared.isServerEnabled() == true)
{
+ System.out.println(getName() + " - 2.RUN");
update();
+ System.out.println(getName() + " - 3.RUN");
}
}
catch (Exception exception)
{
- // exception.printStackTrace();
+ exception.printStackTrace();
}
try
@@ -97,9 +99,6 @@
private void update() throws Exception
{
while (readDetections() == true);
- {
- try{sleep(100);} catch (Exception e){};
- }
}
@@ -141,7 +140,6 @@
if (detectionsCameraLane.size() > 0) detectionsCamera.addAll(detectionsCameraLane);
}
- // Shared.println(this.getName(), "1.ReadDetections: " + detectionsCamera.size());
for (AccessEnforcement_Detection detection : detectionsCamera)
{
lastDetectionTimestamp = Math.max(lastDetectionTimestamp, detection.timestamp);
@@ -149,7 +147,6 @@
}
this.lastDetection = lastDetectionTimestamp;
- // Shared.println(this.getName(), "2.ReadDetections: " + detectionsCamera.size() + " - " + new Date(this.lastDetection).toString());
// Insert into database and update timestamps
@@ -160,10 +157,6 @@
{
try
{
- // Shared.println(this.getName(), "3.ReadDetections Detection: " + detection);
- // Shared.println(this.getName(), "4.ReadDetections Detection: " + detection.images);
- // Shared.println(this.getName(), "5.ReadDetections Detection: " + detection.getLastState());
- // Shared.println(this.getName(), "5.ReadDetections Detection: " + detection.getLastState().vehicle);
if ((detection.images == null) || (detection.images.size() == 0))
{
getImagesDetectionUC(access, detection);
@@ -171,14 +164,12 @@
}
catch (Exception e)
{
- // Shared.printstack(this.getName(), e);
+ Shared.printstack(this.getName(), e);
}
AccessEnforcement_Detection_State detectionState = detection.getLastState();
- if (detectionState == null) detectionState = new AccessEnforcement_Detection_State();
-
if ((detection.images != null) && (detection.images.size() >= 2))
{
if (Shared.controllerDetections.hasPermission(detection, detectionState.vehicle.plate) != null)
@@ -188,7 +179,7 @@
detectionState.discarded.code = AccessEnforcement_Detection_State_Discarded.DISCARDED_ALLOWED;
detectionState.discarded.timestamp = System.currentTimeMillis();
detectionState.discarded.user = Shared.getApplicationName();
- // Shared.printcorrect(getName(),Shared.getMessage("Successful (allowed), plate") + " = " + detectionState.vehicle.plate + ", " + Shared.getMessage("date") + " = " + formato2.format(detection.timestamp));
+ Shared.printcorrect(getName(),Shared.getMessage("Successful (allowed), plate") + " = " + detectionState.vehicle.plate + ", " + Shared.getMessage("date") + " = " + formato2.format(detection.timestamp));
}
else if ((this.detail.detections != null) && (detectionState.vehicle.confidence.floatValue() < this.detail.detections.plateConfidence) &&
(this.detail.detections.enabled == true))
@@ -198,13 +189,13 @@
detectionState.discarded.code = AccessEnforcement_Detection_State_Discarded.DISCARDED_LOW_OCR_CONFIDENCE;
detectionState.discarded.timestamp = System.currentTimeMillis();
detectionState.discarded.user = Shared.getApplicationName();
- // Shared.printerr(getName(),Shared.getMessage("Low ocr confidence, plate") + " = " + detectionState.vehicle.plate + ", " + Shared.getMessage("confidence") + " = " + detectionState.vehicle.confidence.floatValue() + ", " + Shared.getMessage("date") + " = " + formato2.format(detection.timestamp));
+ Shared.printerr(getName(),Shared.getMessage("Low ocr confidence, plate") + " = " + detectionState.vehicle.plate + ", " + Shared.getMessage("confidence") + " = " + detectionState.vehicle.confidence.floatValue() + ", " + Shared.getMessage("date") + " = " + formato2.format(detection.timestamp));
}
else
{
detectionState.state = AccessEnforcement_Detection_State.STATE_REVISION_PENDING;
detectionState.timestamp = System.currentTimeMillis();
- // Shared.printcorrect(getName(),Shared.getMessage("Successful (revision pending), plate") + " = " + detectionState.vehicle.plate + ", " + Shared.getMessage("date") + " = " + formato2.format(detection.timestamp));
+ Shared.printcorrect(getName(),Shared.getMessage("Successful (revision pending), plate") + " = " + detectionState.vehicle.plate + ", " + Shared.getMessage("date") + " = " + formato2.format(detection.timestamp));
}
}
else
@@ -214,7 +205,7 @@
detectionState.discarded.code = AccessEnforcement_Detection_State_Discarded.DISCARDED_MISSING_PICTURES;
detectionState.discarded.timestamp = System.currentTimeMillis();
detectionState.discarded.description = detectionState.discarded.getDescription(detectionState.discarded.code);
- // Shared.printerr(getName(),Shared.getMessage("Missing images, plate") + " = " + detectionState.vehicle.plate + ", " + Shared.getMessage("date") + " = " + formato2.format(detection.timestamp));
+ Shared.printerr(getName(),Shared.getMessage("Missing images, plate") + " = " + detectionState.vehicle.plate + ", " + Shared.getMessage("date") + " = " + formato2.format(detection.timestamp));
}
this.controller.updateDatabaseDetection(information, detection);
@@ -228,7 +219,7 @@
}
catch (Exception exception)
{
- // Shared.printstack(getName(), exception);
+ Shared.printstack(getName(), exception);
}
return false;
@@ -250,7 +241,7 @@
SimpleDateFormat formato1 = new SimpleDateFormat("dd/MM/yyyy");
SimpleDateFormat formato2 = new SimpleDateFormat("HH:mm:ss");
- String url = "https://" + information.neural.connection.address + ":" + information.neural.connection.port + "/art?operation=getDetections";
+ String url = "https://" + information.neural.connection.address + "/art?operation=getDetections";
url += "&from=" + formato1.format(from) + "%20" + formato2.format(from);
url += "&to=" + formato1.format(to) + "%20" + formato2.format(to);
url += "&lane=" + lane;
@@ -266,10 +257,9 @@
url += "&token=" + user + "," + password;
- // Shared.println(this.getName(), "1.URL GetDEtections: " + url);
+ Shared.println(this.getName(), "URL: " + url);
byte[] response = HttpsRequest.requestBytes(url, user, password, new byte[0], 30000, 60000);
AccessEnforcement_Detection[] ucDetections = Serialization.deserialize(AccessEnforcement_Detection[].class, response);
- // Shared.println(this.getName(), "2.GetDEtections: " + ucDetections.length);
for (AccessEnforcement_Detection ucDetection : ucDetections)
{
@@ -284,7 +274,7 @@
}
catch (Exception e)
{
- // Shared.printstack(this.getName(), e);
+ e.printStackTrace();
}
}
}
@@ -293,7 +283,7 @@
}
catch (Exception e)
{
- // Shared.printstack(this.getName(), e);
+ Shared.printstack(this.getName(), e);
}
return detections;
@@ -360,7 +350,7 @@
// https://10.106.7.18/art?operation=getImage&incidence=22758&name=overview&token=write,EdubVmde
// https://10.106.7.18/art?operation=getImage&incidence=22758&name=plate&token=write,EdubVmde
- String urlOverview = "https://" + access.getDeviceInformation().neural.connection.address + ":" + access.getDeviceInformation().neural.connection.port + "/art?operation=getImage";
+ String urlOverview = "https://" + access.getDeviceInformation().neural.connection.address + "/art?operation=getImage";
urlOverview += "&incidence=" + detection.incidence;
urlOverview += "&name=overview";
@@ -373,9 +363,7 @@
}
urlOverview += "&token=" + user + "," + password;
- // Shared.println(this.getName(), "1.GetImages URLOver: " + urlOverview);
byte[] response = HttpsRequest.requestBytes(urlOverview, user, password, new byte[0], 30000, 60000);
- // Shared.println(this.getName(), "2.GetImages URLOver: " + urlOverview);
AccessEnforcement_Detection_Image imageOverview = new AccessEnforcement_Detection_Image();
imageOverview.format = "jpg";
@@ -383,7 +371,7 @@
imageOverview.data = response;
accessDetectionImages.add(imageOverview);
- String urlPlate = "https://" + access.getDeviceInformation().neural.connection.address + ":" + access.getDeviceInformation().neural.connection.port + "/art?operation=getImage";
+ String urlPlate = "https://" + access.getDeviceInformation().neural.connection.address + "/art?operation=getImage";
urlPlate += "&incidence=" + detection.incidence;
urlPlate += "&name=plate";
urlPlate += "&token=" + user + "," + password;
@@ -398,7 +386,6 @@
}
catch (SerializationException e)
{
- // Shared.printstack(this.getName(), e);
if (e.getMessage().indexOf("NoSuchFileException") < 0)
{
throw e;
@@ -406,7 +393,6 @@
}
catch (Exception e)
{
- // Shared.printstack(this.getName(), e);
throw e;
}
@@ -512,7 +498,7 @@
{
public void run()
{
- // Shared.println(getName(), Shared.getMessage("Total detections in last minute") + " = " + counterDetections);
+ Shared.println(getName(), Shared.getMessage("Total detections in last minute") + " = " + counterDetections);
counterDetections = 0;
}
}, delay, 60000, TimeUnit.MILLISECONDS);
diff --git a/servers/enforcement/gost-access-server/src/version.properties b/servers/enforcement/gost-access-server/src/version.properties
deleted file mode 100644
index e51ff53..0000000
--- a/servers/enforcement/gost-access-server/src/version.properties
+++ /dev/null
@@ -1,8 +0,0 @@
-#Thu, 04 Jul 2024 17:36:56 +0200
-
-
-date=04/07/2024
-major=1
-minor=0
-revision=0
-build=258
diff --git a/svgDevicesTest/maps/VigicatCUC.java b/svgDevicesTest/maps/VigicatCUC.java
index c3be5d8..52ea6f9 100644
--- a/svgDevicesTest/maps/VigicatCUC.java
+++ b/svgDevicesTest/maps/VigicatCUC.java
@@ -7,19 +7,20 @@
import art.library.model.devices.signalsboard.SignalsBoard;
import art.library.model.devices.signalsboard.status.SignalStatus;
import art.library.model.devices.vms.asf.Asf;
+import art.library.model.devices.vms.asf.AsfStatus;
import art.library.model.devices.vms.pvv.Pvv;
import art.library.model.devices.vms.pvv.PvvAlarms;
import art.library.model.devices.vms.pvv.PvvStatus;
import com.kitfox.svg.*;
import java.lang.reflect.Method;
-import java.util.*;
import java.math.BigDecimal;
+import java.util.*;
import java.util.stream.Stream;
public class VigicatCUC extends DeviceGraphicsRuntime
{
- private static final double rowWidth = 6;
-
+
+ private double rowHeightBetweenLines = 20;
private final HashMap<SVGElement,Runnable> mapRunnableElements = new HashMap();
private final HashMap<SVGElement, double[]> mapTopCoordinates = new HashMap();
@@ -30,8 +31,9 @@
super(diagram);
}
- public void status()
- {
+ public void status(){
+
+ getElementsContainingField("art.loadglobalinfo").stream().forEach(this::loadGlobalInfo);
getElementsContainingField("art.device").stream().forEach(this::refreshElement);
getElementsContainingField("art.signal").stream().forEach(this::refreshElement);
getElementsContainingField("art.signal.etd").stream().forEach(this::updateEtdNode);
@@ -63,18 +65,121 @@
} catch (Exception e){}
}
- //<editor-fold defaultstate="collapsed" desc="ASF">
- public void status(Asf svgDevice, SVGElement element)
- {
- DeviceStatus status = svgDevice.getDeviceStatus();
+ public void status(Asf svgDevice, SVGElement element) {
+ AsfStatus status = svgDevice.getDeviceStatus();
SVGElement background = getChildContainingField(element, "art.id", "Background");
SVGElement border = getChildContainingField(element, "art.id", "Border");
+ SVGElement alarm = getChildContainingField(element, "art.id", "Alarm");
+ SVGElement arrow = getChildContainingField(element, "art.id", "Arrow");
+ SVGElement cross = getChildContainingField(element, "art.id", "Cross");
+ SVGElement right = getChildContainingField(element, "art.id", "Right");
+ SVGElement left = getChildContainingField(element, "art.id", "Left");
+ SVGElement textBUS = getChildContainingField(element, "art.id", "textBUS");
+ SVGElement left_lane_closed = getChildContainingField(element, "art.id", "left-lane-closed");
setAttribute(background, "fill", getGenericDualStatusColor(status.status)[0]);
setAttribute(border, "stroke", getGenericDualStatusColor(status.status)[1]);
+
+ setAttribute(alarm, "display", "none", 999);
+ setAttribute(arrow, "display", "none", 999);
+ setAttribute(cross, "display", "none", 999);
+ setAttribute(right, "display", "none", 999);
+ setAttribute(left, "display", "none", 999);
+ setAttribute(textBUS, "display", "none", 999);
+
+ if (left_lane_closed != null)
+ setAttribute(left_lane_closed, "display", "none", 999);
+
+ boolean knownStatus = status.status != DeviceStatus.STATUS_OFFLINE && status.status != DeviceStatus.STATUS_UNKNOWN;
+
+ if (knownStatus) {
+ setAttribute(arrow, "display", status.state == AsfStatus.STATE_ARROW ? "inline" : "none", 999);
+ setAttribute(cross, "display", status.state == AsfStatus.STATE_CROSS ? "inline" : "none", 999);
+ setAttribute(right, "display", status.state == AsfStatus.STATE_RIGHT ? "inline" : "none", 999);
+ setAttribute(left, "display", status.state == AsfStatus.STATE_LEFT ? "inline" : "none", 999);
+ setAttribute(textBUS, "display", status.state == AsfStatus.STATE_BUS ? "inline" : "none", 999);
+
+ if(status.state == AsfStatus.STATE_S52_LEFT && left_lane_closed != null)
+ setAttribute(left_lane_closed, "display", "inline", 999);
+ }
+
+ String colorBackground = "#000000";
+ String colorAlarm = "#000000";
+
+ switch (status.status){
+ case DeviceStatus.STATUS_ALARM:
+ colorAlarm = "#FF0000";
+ break;
+ case DeviceStatus.STATUS_OFFLINE:
+ case DeviceStatus.STATUS_UNKNOWN:
+ colorBackground = "#FF00FF";
+ colorAlarm = "#800080";
+ break;
+ }
+
+ setAttribute(border, "stroke", colorAlarm, 999);
+ setAttribute(background, "fill", colorBackground, 999);
+
}
//</editor-fold>
+
+ //<editor-fold defaultstate="collapsed" desc="ASF">
+ /* public void status(Asf svgDevice, SVGElement element) throws Exception{
+ AsfStatus status = svgDevice.getDeviceStatus();
+
+ SVGElement alarm = getChildContainingField(element, "art.id", "Alarm");
+ SVGElement border = getChildContainingField(element, "art.id", "Border");
+ SVGElement background = getChildContainingField(element, "art.id", "Background");
+ SVGElement arrow = getChildContainingField(element, "art.id", "Arrow");
+ SVGElement cross = getChildContainingField(element, "art.id", "Cross");
+ SVGElement right = getChildContainingField(element, "art.id", "Right");
+ SVGElement left = getChildContainingField(element, "art.id", "Left");
+ SVGElement textBUS = getChildContainingField(element, "art.id", "textBUS");
+ SVGElement left_lane_closed = getChildContainingField(element, "art.id", "left-lane-closed");
+
+ setAttribute(alarm, "display", "none", 999);
+ setAttribute(arrow, "display", "none", 999);
+ setAttribute(cross, "display", "none", 999);
+ setAttribute(right, "display", "none", 999);
+ setAttribute(left, "display", "none", 999);
+ setAttribute(textBUS, "display", "none", 999);
+
+ if(left_lane_closed != null)
+ setAttribute(left_lane_closed, "display", "none", 999);
+
+ boolean knownStatus = status.status != DeviceStatus.STATUS_OFFLINE && status.status != DeviceStatus.STATUS_UNKNOWN;
+
+ if (knownStatus) {
+ setAttribute(arrow, "display", status.state == AsfStatus.STATE_ARROW ? "inline" : "none", 999);
+ setAttribute(cross, "display", status.state == AsfStatus.STATE_CROSS ? "inline" : "none", 999);
+ setAttribute(right, "display", status.state == AsfStatus.STATE_RIGHT ? "inline" : "none", 999);
+ setAttribute(left, "display", status.state == AsfStatus.STATE_LEFT ? "inline" : "none", 999);
+ setAttribute(textBUS, "display", status.state == AsfStatus.STATE_BUS ? "inline" : "none", 999);
+
+ if(status.state == AsfStatus.STATE_S52_LEFT && left_lane_closed != null)
+ setAttribute(left_lane_closed, "display", "inline", 999);
+ }
+
+ String colorBackground = "#000000";
+ String colorAlarm = "#000000";
+
+ switch (status.status){
+ case DeviceStatus.STATUS_ALARM:
+ colorAlarm = "#FF0000";
+ break;
+ case DeviceStatus.STATUS_OFFLINE:
+ case DeviceStatus.STATUS_UNKNOWN:
+ colorBackground = "#FFFFFF";
+ colorAlarm = "#800080";
+ break;
+ }
+
+ setAttribute(border, "stroke", colorAlarm, 999);
+ setAttribute(background, "fill", colorBackground, 999);
+
+ }*/
+//</editor-fold>
//<editor-fold defaultstate="collapsed" desc="SignalBoard">
public void status(SignalsBoard svgDevice, SVGElement element)
@@ -86,7 +191,7 @@
boolean hasAlarm = svgDevice.getAlarm(signal.name) > 0;
setText(element, signalValueNumber.intValue() + "");
- setAttribute(element, "fill", hasAlarm ? "#db3939" : "#78e678", 999);
+ setAttribute(element, "fill", hasAlarm ? "#db3939" : "#000000", 999);
setAttribute(element, "fill-opacity", 1, 999);
}
//</editor-fold>
@@ -155,22 +260,106 @@
private void updateSpeedColumn(SVGElement element)
{
try
- {
+ {
+
Pvv svgDevice = (Pvv) Shared.model.modelDevices.getDevice(getAttribute(element, "art.device"));
-
- if (!mapTopCoordinates.containsKey(element))
+ SignalsBoard signalsBoard = (SignalsBoard) Shared.model.modelDevices.getDevice(getAttribute(element, "art.algorithm"));
+
+ if (signalsBoard != null)
+ {
+ SignalStatus signal = signalsBoard.getDeviceStatus().getSignal(getAttribute(element, "art.signal"));
+ SignalStatus signalAlgorithmState = signalsBoard.getDeviceStatus().getSignalInput("state-algorithm-dynamic");
+ if (signalAlgorithmState.value == null) signalAlgorithmState.value = "false";
+ boolean algorithmState = Boolean.parseBoolean(signalAlgorithmState.value);
+ if (signal != null)
+ {
+ boolean automatico = Boolean.parseBoolean(signal.value);
+ setAttribute(element, "fill", (automatico && algorithmState) ? "#e6d69040" : "#e0893351"); //si se fija la velocidad
+ }
+ }
+
+ if (!mapTopCoordinates.containsKey(element))
+ {
+ mapTopCoordinates.put(element, new double[]{element.getPresAbsolute("y").getDoubleValue() + rowHeightBetweenLines, element.getPresAbsolute("height").getDoubleValue()});
+ }
+
+ double baseY = mapTopCoordinates.get(element)[0];
+
+ final int speed = svgDevice.getDeviceStatus().speed;
+ final double verticalOffset = getVerticalOffset(element, speed);
+
+
+ Optional<SVGElement> lineElement1 = getElementsContainingField("art.speed.line").stream()
+ .filter(val -> getAttribute(val, "art.signal").replace("-maximum-speed", "").equalsIgnoreCase(svgDevice.getIdentifier()))
+ .findAny();
+
+ String nominalSpeed = "";
+
+ if(lineElement1.isPresent())
+ {
+ SignalStatus signal = signalsBoard.getDeviceStatus().getSignal(getAttribute(lineElement1.get(), "art.signal"));
+ nominalSpeed = signal.value;
+ if (signal != null)
+ {
+ try
+ {
+ setAttribute(lineElement1.get(), "y1", getVerticalOffset(element, Integer.parseInt(signal.value)));
+ setAttribute(lineElement1.get(), "y2", getVerticalOffset(element, Integer.parseInt(signal.value)));
+ setAttribute(lineElement1.get(), "stroke", "#646a73");
+
+ update(lineElement1.get());
+ }
+ catch (Exception ex){}
+ }
+ }
+
+ Optional<SVGElement> lineElement2 = getElementsContainingField("art.speed.line").stream()
+ .filter(val -> getAttribute(val, "art.signal").replace("-nominal-speed", "").equalsIgnoreCase(svgDevice.getIdentifier()))
+ .findAny();
+
+ if(lineElement2.isPresent())
+ {
+ SignalStatus signal = signalsBoard.getDeviceStatus().getSignal(getAttribute(lineElement2.get(), "art.signal"));
+
+ if (signal != null)
+ {
+ try
+ {
+ setAttribute(lineElement2.get(), "y1", getVerticalOffset(element, Integer.parseInt(signal.value)));
+ setAttribute(lineElement2.get(), "y2", getVerticalOffset(element, Integer.parseInt(signal.value)));
+ setAttribute(lineElement2.get(), "stroke", "#646a73");
+
+ if(signal.value != null && signal.value.equals(nominalSpeed) == false)
+ {
+ setAttribute(lineElement1.get(), "stroke", "#fa0000");
+ }
+
+ update(lineElement2.get());
+ }
+ catch (Exception ex){}
+ }
+ }
+
+ setAttribute(element, "height", Math.abs(baseY - verticalOffset));
+ setAttribute(element, "y", verticalOffset);
+ update(element);
+ }
+ catch (Exception ex)
{
- mapTopCoordinates.put(element, new double[]{element.getPresAbsolute("y").getDoubleValue() + rowWidth, element.getPresAbsolute("height").getDoubleValue()});
}
-
- double baseY = mapTopCoordinates.get(element)[0];
-
- final int speed = svgDevice.getDeviceStatus().speed;
- final double verticalOffset = getVerticalOffset(element, speed);
-
- setAttribute(element, "height", Math.abs(baseY - verticalOffset));
- setAttribute(element, "y", verticalOffset);
- update(element);
+
+ }
+
+ private void loadGlobalInfo(SVGElement element)
+ {
+ try
+ {
+
+ if("LineSpeedInfo".equals(getAttribute(element, "art.loadglobalinfo")))
+ {
+ rowHeightBetweenLines = Double.parseDouble(getAttribute(element, "art.heightbetweenlines"));
+ }
+
} catch (Exception ex)
{
}
@@ -178,6 +367,8 @@
}
//</editor-fold>
+
+
//<editor-fold defaultstate="collapsed" desc="Etd's">
private void updateEtdNode(SVGElement element)
{
@@ -234,15 +425,15 @@
{
final double baseValue = mapTopCoordinates.get(element)[0];
- return baseValue - (rowWidth * (value / 10));
+ return baseValue - (rowHeightBetweenLines * (value / 10));
}
private void updateNodeLinePosition(SVGElement element)
{
try
{
- String startNodeID = getAttribute(element, "art.node.start");
- String endNodeID = getAttribute(element, "art.node.end");
+ String startNodeID = getAttribute(element, "art.node.start");
+ String endNodeID = getAttribute(element, "art.node.end");
if (startNodeID != null && endNodeID != null)
{
@@ -322,4 +513,4 @@
-}
+}
\ No newline at end of file
--
Gitblit v1.10.0