Browse Source

preparing directional speed of all cars

lookup-tables
Stephan Richter 5 years ago
parent
commit
3e992e191b
  1. 3
      resources/translations/Application.de.translation
  2. 31
      src/main/java/de/srsoftware/web4rail/moving/Car.java
  3. 6
      src/main/java/de/srsoftware/web4rail/moving/Locomotive.java

3
resources/translations/Application.de.translation

@ -91,6 +91,7 @@ export : exportieren
Faster (10 {}) : 10 {} schneller Faster (10 {}) : 10 {} schneller
Firing {} : starte {} Firing {} : starte {}
FinishRoute : Route abschließen FinishRoute : Route abschließen
forward : vorwärts
Found {} routes. : {} Routen gefunden. Found {} routes. : {} Routen gefunden.
FreeStartBlock : Start-Block freigeben FreeStartBlock : Start-Block freigeben
Fullscreen : Vollbild Fullscreen : Vollbild
@ -156,6 +157,7 @@ quit autopilot : Autopilot beenden
{} reached it`s destination! : {} ist am Ziel angekommen! {} reached it`s destination! : {} ist am Ziel angekommen!
Relay/Turnout : Relais/Weiche Relay/Turnout : Relais/Weiche
Report Issue : Problem melden Report Issue : Problem melden
reverse : rückwärts
RIGHT : rechts RIGHT : rechts
Right port\: : Port für rechts Right port\: : Port für rechts
Routes using this tile : Fahrstraßen, die diesen Abschnitt verwenden Routes using this tile : Fahrstraßen, die diesen Abschnitt verwenden
@ -210,7 +212,6 @@ STRAIGHT : gerade
Switch power off : Strom ausschalten Switch power off : Strom ausschalten
Switch power on : Strom anschalten Switch power on : Strom anschalten
SYSTEM : Betriebssystem SYSTEM : Betriebssystem
Tag : Markierung
Tags : Markierungen Tags : Markierungen
Text to display on clients\: : Text, welcher auf den Clients angezeigt werden soll: Text to display on clients\: : Text, welcher auf den Clients angezeigt werden soll:
Text to show on display\: : Text, welcher in der Anzeige dargestellt werden soll: Text to show on display\: : Text, welcher in der Anzeige dargestellt werden soll:

31
src/main/java/de/srsoftware/web4rail/moving/Car.java

@ -34,17 +34,22 @@ public class Car extends BaseClass implements Comparable<Car>{
static HashMap<Id,Car> cars = new HashMap<Id, Car>(); static HashMap<Id,Car> cars = new HashMap<Id, Car>();
public static final String NAME = "name"; public static final String NAME = "name";
public static boolean FORWARD = true;
public static boolean REVERSE = false;
private static final String LENGTH = "length"; private static final String LENGTH = "length";
private static final String STOCK_ID = "stock-id"; private static final String STOCK_ID = "stock-id";
private static final String TAGS = "tags"; private static final String TAGS = "tags";
private static final String MAX_SPEED = "max_speed"; private static final String MAX_SPEED = "max_speed";
private static final String MAX_SPEED_REVERSE = "max_speed_reverse";
protected HashSet<String> tags = new HashSet<String>(); protected HashSet<String> tags = new HashSet<String>();
private String name; private String name;
public int length; public int length;
protected String stockId = ""; protected String stockId = "";
private Train train; private Train train;
protected int maxSpeed = 0; protected int maxSpeedForward = 0;
protected int maxSpeedReverse = 0;
private boolean orientation = FORWARD;
public Car(String name) { public Car(String name) {
this(name,null); this(name,null);
@ -78,7 +83,7 @@ public class Car extends BaseClass implements Comparable<Car>{
public Car clone() { public Car clone() {
Car clone = new Car(name); Car clone = new Car(name);
clone.maxSpeed = maxSpeed; clone.maxSpeedForward = maxSpeedForward;
clone.length = length; clone.length = length;
clone.tags = new HashSet<String>(tags); clone.tags = new HashSet<String>(tags);
clone.notes = notes; clone.notes = notes;
@ -99,7 +104,7 @@ public class Car extends BaseClass implements Comparable<Car>{
JSONObject json = super.json(); JSONObject json = super.json();
json.put(NAME, name); json.put(NAME, name);
json.put(LENGTH, length); json.put(LENGTH, length);
if (maxSpeed != 0) json.put(MAX_SPEED, maxSpeed); if (maxSpeedForward != 0) json.put(MAX_SPEED, maxSpeedForward);
json.put(STOCK_ID, stockId); json.put(STOCK_ID, stockId);
if (!tags.isEmpty()) json.put(TAGS, tags); if (!tags.isEmpty()) json.put(TAGS, tags);
return json; return json;
@ -137,7 +142,11 @@ public class Car extends BaseClass implements Comparable<Car>{
public Car load(JSONObject json) { public Car load(JSONObject json) {
super.load(json); super.load(json);
if (json.has(LENGTH)) length = json.getInt(LENGTH); if (json.has(LENGTH)) length = json.getInt(LENGTH);
if (json.has(MAX_SPEED)) maxSpeed = json.getInt(MAX_SPEED); if (json.has(MAX_SPEED)) {
maxSpeedForward = json.getInt(MAX_SPEED);
maxSpeedReverse = maxSpeedForward;
}
if (json.has(MAX_SPEED_REVERSE)) maxSpeedReverse = json.getInt(MAX_SPEED_REVERSE);
if (json.has(STOCK_ID)) stockId = json.getString(STOCK_ID); if (json.has(STOCK_ID)) stockId = json.getString(STOCK_ID);
if (json.has(TAGS)) json.getJSONArray(TAGS).forEach(elem -> { tags.add(elem.toString()); }); if (json.has(TAGS)) json.getJSONArray(TAGS).forEach(elem -> { tags.add(elem.toString()); });
return this; return this;
@ -163,7 +172,7 @@ public class Car extends BaseClass implements Comparable<Car>{
.forEach(car -> table.addRow( .forEach(car -> table.addRow(
car.stockId, car.stockId,
car.link(), car.link(),
car.maxSpeed == 0 ? "–":(car.maxSpeed+NBSP+speedUnit), car.maxSpeedForward == 0 ? "–":(car.maxSpeedForward+NBSP+speedUnit),
car.length+NBSP+lengthUnit, car.length+NBSP+lengthUnit,
isSet(car.train) ? car.train.link("span", car.train) : "", isSet(car.train) ? car.train.link("span", car.train) : "",
String.join(", ", car.tags()), String.join(", ", car.tags()),
@ -182,7 +191,7 @@ public class Car extends BaseClass implements Comparable<Car>{
} }
public int maxSpeed() { public int maxSpeed() {
return maxSpeed; return maxSpeedForward;
} }
String name(){ String name(){
@ -194,8 +203,11 @@ public class Car extends BaseClass implements Comparable<Car>{
formInputs.add(t("Name"),new Input(NAME,name)); formInputs.add(t("Name"),new Input(NAME,name));
formInputs.add(t("Stock ID"),new Input(STOCK_ID,stockId)); formInputs.add(t("Stock ID"),new Input(STOCK_ID,stockId));
formInputs.add(t("Length"),new Input(LENGTH,length).attr("type", "number").addTo(new Tag("span")).content(NBSP+lengthUnit)); formInputs.add(t("Length"),new Input(LENGTH,length).attr("type", "number").addTo(new Tag("span")).content(NBSP+lengthUnit));
formInputs.add(t("Tag"), new Input(TAGS,String.join(", ", tags))); formInputs.add(t("Tags"), new Input(TAGS,String.join(", ", tags)));
formInputs.add(t("Maximum Speed"),new Input(MAX_SPEED, maxSpeed).numeric().addTo(new Tag("span")).content(NBSP+speedUnit)); Tag div = new Tag("div");
new Input(MAX_SPEED, maxSpeedForward).numeric().addTo(new Tag("p")).content(NBSP+speedUnit+NBSP+t("forward")).addTo(div);
new Input(MAX_SPEED_REVERSE, maxSpeedReverse).numeric().addTo(new Tag("p")).content(NBSP+speedUnit+NBSP+t("reverse")).addTo(div);
formInputs.add(t("Maximum Speed"),div);
Fieldset fieldset = new Fieldset(t("Train")); Fieldset fieldset = new Fieldset(t("Train"));
if (train != null) train.link().addTo(fieldset); if (train != null) train.link().addTo(fieldset);
@ -243,7 +255,8 @@ public class Car extends BaseClass implements Comparable<Car>{
super.update(params); super.update(params);
if (params.containsKey(NAME)) name = params.get(NAME).trim(); if (params.containsKey(NAME)) name = params.get(NAME).trim();
if (params.containsKey(LENGTH)) length = Integer.parseInt(params.get(LENGTH)); if (params.containsKey(LENGTH)) length = Integer.parseInt(params.get(LENGTH));
if (params.containsKey(MAX_SPEED)) maxSpeed = Integer.parseInt(params.get(MAX_SPEED)); if (params.containsKey(MAX_SPEED)) maxSpeedForward = Integer.parseInt(params.get(MAX_SPEED));
if (params.containsKey(MAX_SPEED_REVERSE)) maxSpeedReverse = Integer.parseInt(params.get(MAX_SPEED_REVERSE));
if (params.containsKey(STOCK_ID)) stockId = params.get(STOCK_ID); if (params.containsKey(STOCK_ID)) stockId = params.get(STOCK_ID);
if (params.containsKey(TAGS)) { if (params.containsKey(TAGS)) {
String[] parts = params.get(TAGS).replace(",", " ").split(" "); String[] parts = params.get(TAGS).replace(",", " ").split(" ");

6
src/main/java/de/srsoftware/web4rail/moving/Locomotive.java

@ -237,7 +237,7 @@ public class Locomotive extends Car implements Constants,Device{
.map(car -> (Locomotive)car) .map(car -> (Locomotive)car)
.sorted(Comparator.comparing(loco -> loco.address)) .sorted(Comparator.comparing(loco -> loco.address))
.sorted(Comparator.comparing(loco -> loco.stockId)) .sorted(Comparator.comparing(loco -> loco.stockId))
.forEach(loco -> table.addRow(loco.stockId,loco.link(),loco.maxSpeed == 0 ? "–":loco.maxSpeed+NBSP+speedUnit,loco.proto,loco.address,loco.length+NBSP+lengthUnit,String.join(", ", loco.tags()))); .forEach(loco -> table.addRow(loco.stockId,loco.link(),loco.maxSpeedForward == 0 ? "–":loco.maxSpeedForward+NBSP+speedUnit,loco.proto,loco.address,loco.length+NBSP+lengthUnit,String.join(", ", loco.tags())));
table.addTo(win); table.addTo(win);
@ -264,7 +264,7 @@ public class Locomotive extends Car implements Constants,Device{
} }
private void queue() { private void queue() {
int step = proto.steps * speed / (maxSpeed == 0 ? 100 : maxSpeed); int step = proto.steps * speed / (maxSpeedForward == 0 ? 100 : maxSpeedForward);
plan.queue(new Command("SET {} GL "+address+" "+(reverse?1:0)+" "+step+" "+proto.steps+" "+(f1?1:0)+" "+(f2?1:0)+" "+(f3?1:0)+" "+(f4?1:0)) { plan.queue(new Command("SET {} GL "+address+" "+(reverse?1:0)+" "+step+" "+proto.steps+" "+(f1?1:0)+" "+(f2?1:0)+" "+(f3?1:0)+" "+(f4?1:0)) {
@Override @Override
@ -284,7 +284,7 @@ public class Locomotive extends Car implements Constants,Device{
LOG.debug(this.detail()+".setSpeed({})",newSpeed); LOG.debug(this.detail()+".setSpeed({})",newSpeed);
init(); init();
speed = newSpeed; speed = newSpeed;
if (speed > maxSpeed && maxSpeed > 0) speed = maxSpeed(); if (speed > maxSpeedForward && maxSpeedForward > 0) speed = maxSpeed();
if (speed < 0) speed = 0; if (speed < 0) speed = 0;
queue(); queue();

Loading…
Cancel
Save