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);
}
}