From 321907f4ce5df47b5b8237ecc8717b7bcae3c699 Mon Sep 17 00:00:00 2001 From: Stephan Richter Date: Tue, 20 Apr 2021 21:49:42 +0200 Subject: [PATCH] improved programming card + bugfixes --- pom.xml | 2 +- .../translations/Application.de.translation | 1 + .../java/de/srsoftware/web4rail/BaseClass.java | 16 +++++++++------- src/main/java/de/srsoftware/web4rail/Plan.java | 1 + .../srsoftware/web4rail/moving/Locomotive.java | 18 ++++++++++++++---- 5 files changed, 26 insertions(+), 12 deletions(-) diff --git a/pom.xml b/pom.xml index 20bfd9b..66ad72f 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ 4.0.0 de.srsoftware web4rail - 1.4.25 + 1.4.26 Web4Rail jar Java Model Railway Control diff --git a/resources/translations/Application.de.translation b/resources/translations/Application.de.translation index c58e623..2faacfc 100644 --- a/resources/translations/Application.de.translation +++ b/resources/translations/Application.de.translation @@ -241,6 +241,7 @@ Not connected to other bridge part! : Nicht mit anderem Brücken-Teil verbunden! Notes : Notizen No tile moved. : keine Kachel verschoben. {} not within last {} blocks of train : {} ist nicht in den letzten {} Blöcken des Zugs +no value : kein Wert {} now heading for {} : {} ist nun unterwegs nach {} {} now in auto-mode : {} ist nun im Automatikmodus Occupied area : Belegte Abschnitte diff --git a/src/main/java/de/srsoftware/web4rail/BaseClass.java b/src/main/java/de/srsoftware/web4rail/BaseClass.java index cc6fd9e..9f3a74e 100644 --- a/src/main/java/de/srsoftware/web4rail/BaseClass.java +++ b/src/main/java/de/srsoftware/web4rail/BaseClass.java @@ -86,7 +86,7 @@ public abstract class BaseClass implements Constants{ } public Context block(Block newBlock) { - LOG.debug("{}.block({})",this,newBlock); + //LOG.debug("{}.block({})",this,newBlock); block = newBlock; return this; } @@ -143,7 +143,7 @@ public abstract class BaseClass implements Constants{ } public Context direction(Direction newDirection) { - LOG.debug("{}.direction({})",this,newDirection); + //LOG.debug("{}.direction({})",this,newDirection); direction = newDirection; return this; } @@ -164,7 +164,7 @@ public abstract class BaseClass implements Constants{ public Context setMain(BaseClass object) { main = object; - LOG.debug("{}.setMain({})",this,object); + //LOG.debug("{}.setMain({})",this,object); if (main instanceof Tile) this.tile = (Tile) main; if (main instanceof Contact) this.contact = (Contact) main; if (main instanceof Block) this.block = (Block) main; @@ -209,7 +209,7 @@ public abstract class BaseClass implements Constants{ } public Context train(Train newTrain) { - LOG.debug("{}.train({})",this,newTrain); + //LOG.debug("{}.train({})",this,newTrain); train = newTrain; return this; } @@ -331,18 +331,20 @@ public abstract class BaseClass implements Constants{ public static String distance(long l) { String unit = Plan.lengthUnit; if (DEFAULT_LENGTH_UNIT.equals(unit)) { + double d = l; if (l > 1_000_000) { - l/=1_000_000; + d = l/1_000_000d; unit = t("km"); } else if (l > 1_000) { - l/=1_000; + d = l/1_000; unit = t("m"); } else if (l > 10) { - l/=10; + d = l/10; unit = t("cm"); } + return String.format("%.3f", d)+NBSP+unit; } return l+NBSP+unit; } diff --git a/src/main/java/de/srsoftware/web4rail/Plan.java b/src/main/java/de/srsoftware/web4rail/Plan.java index 2a085e6..6989e2c 100644 --- a/src/main/java/de/srsoftware/web4rail/Plan.java +++ b/src/main/java/de/srsoftware/web4rail/Plan.java @@ -214,6 +214,7 @@ public class Plan extends BaseClass{ case ACTION_FREE: Tile t = get(Id.from(params), false); t.free(t.lockingTrain()); + plan.alter(); return t.properties(); case ACTION_MOVE: return moveTile(params.get(DIRECTION),Id.from(params)); diff --git a/src/main/java/de/srsoftware/web4rail/moving/Locomotive.java b/src/main/java/de/srsoftware/web4rail/moving/Locomotive.java index 9668bca..0bf6f01 100644 --- a/src/main/java/de/srsoftware/web4rail/moving/Locomotive.java +++ b/src/main/java/de/srsoftware/web4rail/moving/Locomotive.java @@ -6,6 +6,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry; +import java.util.Set; import java.util.TreeMap; import java.util.concurrent.TimeoutException; @@ -334,8 +335,17 @@ public class Locomotive extends Car implements Constants,Device{ Table table = new Table(); table.addHead(t("setting"),t("CV"),t("value"),t("actions")); - for (Entry entry : cvs.entrySet()){ + for (int cv=1; cv<19; cv++) { + Object val = cvs.get(cv); + if (isNull(val)) { + if (Set.of(7, 8, 10, 11, 12, 13, 14, 15, 16).contains(cv)) continue; + val = t("no value"); + } + table.addRow(setting(cv),cv,val,new Button(t("edit"), "copyCv(this);")); + } + for (Entry entry : cvs.entrySet()){ int cv = entry.getKey(); + if (cv<10) continue; int val = entry.getValue(); table.addRow(setting(cv),cv,val,new Button(t("edit"), "copyCv(this);")); } @@ -429,7 +439,7 @@ public class Locomotive extends Car implements Constants,Device{ return t("maximum speed vmax"); case 6: return t("mid speed vmid"); - case 8: + case 9: return t("PWM rate"); case 17: case 18: @@ -459,10 +469,10 @@ public class Locomotive extends Car implements Constants,Device{ } public Object turn() { - stop(); + setSpeed(0); super.turn(); plan.stream(t("Stopped and reversed {}.",this)); - return properties(); + return stop(); } @Override