Browse Source

made turnout delay configurable

lookup-tables
Stephan Richter 4 years ago
parent
commit
1df6dd5b2f
  1. 2
      pom.xml
  2. 1
      resources/translations/Application.de.translation
  3. 5
      src/main/java/de/srsoftware/web4rail/Plan.java
  4. 2
      src/main/java/de/srsoftware/web4rail/actions/SetTurnout.java
  5. 5
      src/main/java/de/srsoftware/web4rail/tiles/Turnout.java
  6. 4
      src/main/java/de/srsoftware/web4rail/tiles/TurnoutL.java
  7. 4
      src/main/java/de/srsoftware/web4rail/tiles/TurnoutR.java

2
pom.xml

@ -4,7 +4,7 @@ @@ -4,7 +4,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>de.srsoftware</groupId>
<artifactId>web4rail</artifactId>
<version>1.5.13</version>
<version>1.5.14</version>
<name>Web4Rail</name>
<packaging>jar</packaging>
<description>Java Model Railway Control</description>

1
resources/translations/Application.de.translation

@ -284,6 +284,7 @@ Origin and destination : Start und Ziel @@ -284,6 +284,7 @@ Origin and destination : Start und Ziel
Origin\: {} to {} : Start: {} nach {}
parked train : abgestellter Zug
parked trains : abgestellte Züge
Pause between switching turnouts of route : Pause zwischen Weichen einer Route
Plan saved as "{}". : Plan als „{}“ gespeichert.
Plan updated. : Plan aktualisiert.
Port for state {} : Anschluss für Status {}

5
src/main/java/de/srsoftware/web4rail/Plan.java

@ -79,6 +79,7 @@ import de.srsoftware.web4rail.tiles.Switch; @@ -79,6 +79,7 @@ import de.srsoftware.web4rail.tiles.Switch;
import de.srsoftware.web4rail.tiles.TextDisplay;
import de.srsoftware.web4rail.tiles.Tile;
import de.srsoftware.web4rail.tiles.TileWithShadow;
import de.srsoftware.web4rail.tiles.Turnout;
import de.srsoftware.web4rail.tiles.Turnout.State;
import de.srsoftware.web4rail.tiles.Turnout3E;
import de.srsoftware.web4rail.tiles.TurnoutLE;
@ -541,6 +542,7 @@ public class Plan extends BaseClass{ @@ -541,6 +542,7 @@ public class Plan extends BaseClass{
.put(MAINTENANCE_INTERVAL, Car.defaulMaintenanceDist)
.put(LENGTH_UNIT, lengthUnit)
.put(SPEED_UNIT, speedUnit)
.put(Turnout.DELAY, Turnout.delay)
.put(TILE, jTiles);
}
@ -570,6 +572,7 @@ public class Plan extends BaseClass{ @@ -570,6 +572,7 @@ public class Plan extends BaseClass{
if (json.has(SPEED_STEP)) Train.defaultSpeedStep = json.getInt(SPEED_STEP);
if (json.has(FREE_BEHIND_TRAIN)) Route.freeBehindTrain = json.getBoolean(FREE_BEHIND_TRAIN);
if (json.has(MAINTENANCE_INTERVAL)) Car.defaulMaintenanceDist = json.getLong(MAINTENANCE_INTERVAL);
if (json.has(Turnout.DELAY)) Turnout.delay = json.getInt(Turnout.DELAY);
try {
Car.loadAll(name+".cars",plan);
@ -756,6 +759,7 @@ public class Plan extends BaseClass{ @@ -756,6 +759,7 @@ public class Plan extends BaseClass{
formInputs.add(t("Default maintenance intervall"),new Input(MAINTENANCE_INTERVAL, Car.defaulMaintenanceDist).numeric().addTo(new Tag("span")).content(NBSP+Plan.lengthUnit));
formInputs.add(t("Free tiles behind train"),new Checkbox(FREE_BEHIND_TRAIN, t("If checked, tiles behind the train are freed according to the length of the train and the tiles. If it is unchecked, tiles will not get free before route is finished."), Route.freeBehindTrain));
formInputs.add(t("Allow editing JSON of action lists"),new Checkbox(ALLOW_JSON_EDIT, t("Do you know, what you are doing?"), allowJsonEdit ));
formInputs.add(t("Pause between switching turnouts of route"),new Input(Turnout.DELAY, Turnout.delay).numeric());
postForm.add(relayProperties());
postForm.add(routeProperties());
@ -1071,6 +1075,7 @@ public class Plan extends BaseClass{ @@ -1071,6 +1075,7 @@ public class Plan extends BaseClass{
if (params.containsKey(SPEED_UNIT)) speedUnit = params.getString(SPEED_UNIT);
if (params.containsKey(SPEED_STEP)) Train.defaultSpeedStep = params.getInt(SPEED_STEP);
if (params.containsKey(FINAL_SPEED)) Train.defaultEndSpeed = params.getInt(FINAL_SPEED);
if (params.containsKey(Turnout.DELAY)) Turnout.delay = params.getInt(Turnout.DELAY);
if (params.containsKey(MAINTENANCE_INTERVAL)) try {
Car.defaulMaintenanceDist = params.getLong(MAINTENANCE_INTERVAL);
} catch(NumberFormatException e) {};

2
src/main/java/de/srsoftware/web4rail/actions/SetTurnout.java

@ -30,7 +30,7 @@ public class SetTurnout extends Action { @@ -30,7 +30,7 @@ public class SetTurnout extends Action {
if (isNull(turnout)) return false;
if (!turnout.state(state,false).succeeded()) return false;
if (turnout.address() == 0) return true;
sleep(1000);
sleep(Turnout.delay);
return true;
}

5
src/main/java/de/srsoftware/web4rail/tiles/Turnout.java

@ -31,10 +31,11 @@ public abstract class Turnout extends Tile implements Device{ @@ -31,10 +31,11 @@ public abstract class Turnout extends Tile implements Device{
private static final String PORT_A = "port_a";
private static final String PORT_B = "port_b";
public static final String STATE = "state";
public static final String DELAY = "turnout_delay";
protected static final String STRAIGHT = "straight";
public static int delay = 1000;
protected int address = 0;
protected int delay = 400;
protected int duration = 400;
protected boolean error = false;
protected boolean initialized = false;
private Protocol protocol = Protocol.DCC128;

4
src/main/java/de/srsoftware/web4rail/tiles/TurnoutL.java

@ -25,9 +25,9 @@ public abstract class TurnoutL extends Turnout { @@ -25,9 +25,9 @@ public abstract class TurnoutL extends Turnout {
protected String commandFor(State newState) {
switch (newState) {
case LEFT:
return "SET {} GA "+address+" "+portB+" 1 "+delay;
return "SET {} GA "+address+" "+portB+" 1 "+duration;
case STRAIGHT:
return "SET {} GA "+address+" "+portA+" 1 "+delay;
return "SET {} GA "+address+" "+portA+" 1 "+duration;
default:
throw new IllegalStateException();
}

4
src/main/java/de/srsoftware/web4rail/tiles/TurnoutR.java

@ -23,9 +23,9 @@ public abstract class TurnoutR extends Turnout { @@ -23,9 +23,9 @@ public abstract class TurnoutR extends Turnout {
public String commandFor(State newState) {
switch (newState) {
case RIGHT:
return "SET {} GA "+address+" "+portB+" 1 "+delay;
return "SET {} GA "+address+" "+portB+" 1 "+duration;
case STRAIGHT:
return "SET {} GA "+address+" "+portA+" 1 "+delay;
return "SET {} GA "+address+" "+portA+" 1 "+duration;
default:
throw new IllegalStateException();
}

Loading…
Cancel
Save