From c046d999fbd33fda11a63c10a60ef78faffc2e67 Mon Sep 17 00:00:00 2001 From: Stephan Richter Date: Fri, 13 Nov 2020 01:28:52 +0100 Subject: [PATCH] bugfixes --- resources/logback.xml | 1 + src/main/java/de/srsoftware/web4rail/ControlUnit.java | 2 ++ src/main/java/de/srsoftware/web4rail/Plan.java | 7 ++++++- src/main/java/de/srsoftware/web4rail/Route.java | 9 ++++++++- src/main/java/de/srsoftware/web4rail/moving/Train.java | 7 ++++++- src/main/java/de/srsoftware/web4rail/tags/Checkbox.java | 3 +-- 6 files changed, 24 insertions(+), 5 deletions(-) diff --git a/resources/logback.xml b/resources/logback.xml index 2f3378b..a795224 100644 --- a/resources/logback.xml +++ b/resources/logback.xml @@ -9,5 +9,6 @@ + \ No newline at end of file diff --git a/src/main/java/de/srsoftware/web4rail/ControlUnit.java b/src/main/java/de/srsoftware/web4rail/ControlUnit.java index c390e8f..8e07b25 100644 --- a/src/main/java/de/srsoftware/web4rail/ControlUnit.java +++ b/src/main/java/de/srsoftware/web4rail/ControlUnit.java @@ -39,6 +39,7 @@ public class ControlUnit extends Thread implements Constants{ private static final String MODE_INFO = "INFO"; private static final String MODE_COMMAND = "COMMAND"; protected static final String FEEDBACK = "FB"; + protected static final String ACESSORY = "GA"; private String host = DEFAULT_HOST; private int port = DEFAULT_PORT; @@ -315,6 +316,7 @@ public class ControlUnit extends Thread implements Constants{ int addr = Integer.parseInt(parts[5]); boolean active = !parts[6].equals("0"); ControlUnit.this.plan.sensor(addr,active); + case ACESSORY: break; default: LOG.debug("Info thread received: {}",line); diff --git a/src/main/java/de/srsoftware/web4rail/Plan.java b/src/main/java/de/srsoftware/web4rail/Plan.java index b153aa8..84f5184 100644 --- a/src/main/java/de/srsoftware/web4rail/Plan.java +++ b/src/main/java/de/srsoftware/web4rail/Plan.java @@ -575,7 +575,12 @@ public class Plan extends BaseClass{ * @return */ Route registerRoute(Route newRoute) { - for (Tile tile: newRoute.path()) tile.add(newRoute); + for (Tile tile: newRoute.path()) { + if (isNull(tile)) { + System.err.println("--"); + } + tile.add(newRoute); + } int routeId = newRoute.id(); Route existingRoute = routes.get(routeId); if (isSet(existingRoute)) newRoute.addPropertiesFrom(existingRoute); diff --git a/src/main/java/de/srsoftware/web4rail/Route.java b/src/main/java/de/srsoftware/web4rail/Route.java index 6987d88..f8a2bc1 100644 --- a/src/main/java/de/srsoftware/web4rail/Route.java +++ b/src/main/java/de/srsoftware/web4rail/Route.java @@ -461,11 +461,15 @@ public class Route extends BaseClass{ private Route load(JSONObject json,Plan plan) { if (json.has(ID)) id = json.getInt(ID); + if (json.has(NAME)) name(json.getString(NAME)); JSONArray pathIds = json.getJSONArray(PATH); startDirection = Direction.valueOf(json.getString(START_DIRECTION)); endDirection = Direction.valueOf(json.getString(END_DIRECTION)); for (Object tileId : pathIds) { Tile tile = plan.get((String) tileId,false); + if (isNull(tile)) { + continue; + } if (isNull(startBlock)) { begin((Block) tile, startDirection); } else if (tile instanceof Block) { // make sure, endDirection is set on last block @@ -474,7 +478,10 @@ public class Route extends BaseClass{ add(tile, null); } } - if (json.has(NAME)) name(json.getString(NAME)); + if (isNull(path) || path.isEmpty()) { + LOG.warn("{} has no tiles. It will be ignored.",this); + return null; + } if (json.has(TURNOUTS)) { JSONArray turnouts = json.getJSONArray(TURNOUTS); for (int i=0; i { } private void reverseTrace() { - // TODO Auto-generated method stub + LinkedList reversed = new LinkedList(); + LOG.debug("Trace: {}",trace); + while (!trace.isEmpty()) reversed.addFirst(trace.removeFirst()); + trace = reversed; + LOG.debug("reversed: {}",trace); + reversed = null; } public static void saveAll(String filename) throws IOException { diff --git a/src/main/java/de/srsoftware/web4rail/tags/Checkbox.java b/src/main/java/de/srsoftware/web4rail/tags/Checkbox.java index dca200f..4666ae6 100644 --- a/src/main/java/de/srsoftware/web4rail/tags/Checkbox.java +++ b/src/main/java/de/srsoftware/web4rail/tags/Checkbox.java @@ -11,8 +11,7 @@ public class Checkbox extends Tag { Tag checkbox = new Tag("input").attr("type", "checkbox").attr("name", name); if (preCheck) checkbox.attr("checked", "checked"); checkbox.addTo(this); - content(label); - + content(label); } }