implemented editable speed step
This commit is contained in:
2
pom.xml
2
pom.xml
@@ -4,7 +4,7 @@
|
|||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<groupId>de.srsoftware</groupId>
|
<groupId>de.srsoftware</groupId>
|
||||||
<artifactId>web4rail</artifactId>
|
<artifactId>web4rail</artifactId>
|
||||||
<version>1.4.7</version>
|
<version>1.4.8</version>
|
||||||
<name>Web4Rail</name>
|
<name>Web4Rail</name>
|
||||||
<packaging>jar</packaging>
|
<packaging>jar</packaging>
|
||||||
<description>Java Model Railway Control</description>
|
<description>Java Model Railway Control</description>
|
||||||
|
|||||||
@@ -156,6 +156,7 @@ public class Plan extends BaseClass{
|
|||||||
private static final String FINAL_SPEED = "final_speed";
|
private static final String FINAL_SPEED = "final_speed";
|
||||||
private static final String FREE_BEHIND_TRAIN = "free_behind_train";
|
private static final String FREE_BEHIND_TRAIN = "free_behind_train";
|
||||||
private static final String RENAME = "rename";
|
private static final String RENAME = "rename";
|
||||||
|
private static final String SPEED_STEP = "speed_step";
|
||||||
private String name = DEFAULT_NAME;
|
private String name = DEFAULT_NAME;
|
||||||
|
|
||||||
private ControlUnit controlUnit = new ControlUnit(this); // the control unit, to which the plan is connected
|
private ControlUnit controlUnit = new ControlUnit(this); // the control unit, to which the plan is connected
|
||||||
@@ -496,6 +497,7 @@ public class Plan extends BaseClass{
|
|||||||
|
|
||||||
return new JSONObject()
|
return new JSONObject()
|
||||||
.put(FINAL_SPEED, Train.defaultEndSpeed)
|
.put(FINAL_SPEED, Train.defaultEndSpeed)
|
||||||
|
.put(SPEED_STEP, Train.defaultSpeedStep)
|
||||||
.put(FREE_BEHIND_TRAIN, Route.freeBehindTrain)
|
.put(FREE_BEHIND_TRAIN, Route.freeBehindTrain)
|
||||||
.put(LENGTH_UNIT, lengthUnit)
|
.put(LENGTH_UNIT, lengthUnit)
|
||||||
.put(SPEED_UNIT, speedUnit)
|
.put(SPEED_UNIT, speedUnit)
|
||||||
@@ -525,6 +527,7 @@ public class Plan extends BaseClass{
|
|||||||
if (json.has(LENGTH_UNIT)) lengthUnit = json.getString(LENGTH_UNIT);
|
if (json.has(LENGTH_UNIT)) lengthUnit = json.getString(LENGTH_UNIT);
|
||||||
if (json.has(SPEED_UNIT)) speedUnit = json.getString(SPEED_UNIT);
|
if (json.has(SPEED_UNIT)) speedUnit = json.getString(SPEED_UNIT);
|
||||||
if (json.has(FINAL_SPEED)) Train.defaultEndSpeed = json.getInt(FINAL_SPEED);
|
if (json.has(FINAL_SPEED)) Train.defaultEndSpeed = json.getInt(FINAL_SPEED);
|
||||||
|
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(FREE_BEHIND_TRAIN)) Route.freeBehindTrain = json.getBoolean(FREE_BEHIND_TRAIN);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@@ -704,6 +707,7 @@ public class Plan extends BaseClass{
|
|||||||
formInputs.add(null, new Input(ACTION,ACTION_UPDATE));
|
formInputs.add(null, new Input(ACTION,ACTION_UPDATE));
|
||||||
formInputs.add(t("Length unit"),new Input(LENGTH_UNIT, lengthUnit));
|
formInputs.add(t("Length unit"),new Input(LENGTH_UNIT, lengthUnit));
|
||||||
formInputs.add(t("Speed unit"),new Input(SPEED_UNIT, speedUnit));
|
formInputs.add(t("Speed unit"),new Input(SPEED_UNIT, speedUnit));
|
||||||
|
formInputs.add(t("Speed step"),new Input(SPEED_STEP, Train.defaultSpeedStep).attr("title", t("Speeds are always increadsed/decreased by this value")));
|
||||||
formInputs.add(t("Lower speed limit"),new Input(FINAL_SPEED, Train.defaultEndSpeed).attr("title", t("Final speed after breaking, before halting")));
|
formInputs.add(t("Lower speed limit"),new Input(FINAL_SPEED, Train.defaultEndSpeed).attr("title", t("Final speed after breaking, before halting")));
|
||||||
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("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));
|
||||||
|
|
||||||
@@ -1017,6 +1021,7 @@ public class Plan extends BaseClass{
|
|||||||
|
|
||||||
if (params.containsKey(LENGTH_UNIT)) lengthUnit = params.get(LENGTH_UNIT);
|
if (params.containsKey(LENGTH_UNIT)) lengthUnit = params.get(LENGTH_UNIT);
|
||||||
if (params.containsKey(SPEED_UNIT)) speedUnit = params.get(SPEED_UNIT);
|
if (params.containsKey(SPEED_UNIT)) speedUnit = params.get(SPEED_UNIT);
|
||||||
|
if (params.containsKey(SPEED_STEP)) Train.defaultSpeedStep = Integer.parseInt(params.get(SPEED_STEP));
|
||||||
if (params.containsKey(FINAL_SPEED)) Train.defaultEndSpeed = Integer.parseInt(params.get(FINAL_SPEED));
|
if (params.containsKey(FINAL_SPEED)) Train.defaultEndSpeed = Integer.parseInt(params.get(FINAL_SPEED));
|
||||||
Route.freeBehindTrain = "on".equalsIgnoreCase(params.get(FREE_BEHIND_TRAIN));
|
Route.freeBehindTrain = "on".equalsIgnoreCase(params.get(FREE_BEHIND_TRAIN));
|
||||||
|
|
||||||
|
|||||||
@@ -253,7 +253,7 @@ public class Route extends BaseClass {
|
|||||||
table.addRow(t,isSet(fTime)? fTime+NBSP+"ms" : "–",isSet(rTime)? fTime+NBSP+"ms" : "–");
|
table.addRow(t,isSet(fTime)? fTime+NBSP+"ms" : "–",isSet(rTime)? fTime+NBSP+"ms" : "–");
|
||||||
}
|
}
|
||||||
table.clazz("brake-times").addTo(fieldset);
|
table.clazz("brake-times").addTo(fieldset);
|
||||||
new Tag("p").content(t("1) Duration between 5 {} steps during brake process.",speedUnit)).addTo(fieldset);
|
new Tag("p").content(t("1) Duration between {} {} steps during brake process.",Train.defaultSpeedStep,speedUnit)).addTo(fieldset);
|
||||||
return fieldset;
|
return fieldset;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ public class Locomotive extends Car implements Constants,Device{
|
|||||||
new Locomotive(params.get(Locomotive.NAME)).parent(plan).register();
|
new Locomotive(params.get(Locomotive.NAME)).parent(plan).register();
|
||||||
return Locomotive.manager();
|
return Locomotive.manager();
|
||||||
case ACTION_FASTER10:
|
case ACTION_FASTER10:
|
||||||
return loco.faster(10);
|
return loco.faster(Train.defaultSpeedStep);
|
||||||
case ACTION_MOVE:
|
case ACTION_MOVE:
|
||||||
return loco.moveUp();
|
return loco.moveUp();
|
||||||
case ACTION_PROGRAM:
|
case ACTION_PROGRAM:
|
||||||
@@ -71,7 +71,7 @@ public class Locomotive extends Car implements Constants,Device{
|
|||||||
case ACTION_PROPS:
|
case ACTION_PROPS:
|
||||||
return loco == null ? Locomotive.manager() : loco.properties();
|
return loco == null ? Locomotive.manager() : loco.properties();
|
||||||
case ACTION_SLOWER10:
|
case ACTION_SLOWER10:
|
||||||
return loco.faster(-10);
|
return loco.faster(-Train.defaultSpeedStep);
|
||||||
case ACTION_STOP:
|
case ACTION_STOP:
|
||||||
return loco.stop();
|
return loco.stop();
|
||||||
case ACTION_TOGGLE_F1:
|
case ACTION_TOGGLE_F1:
|
||||||
@@ -134,10 +134,10 @@ public class Locomotive extends Car implements Constants,Device{
|
|||||||
Tag par = new Tag("p");
|
Tag par = new Tag("p");
|
||||||
|
|
||||||
params.put(ACTION, ACTION_FASTER10);
|
params.put(ACTION, ACTION_FASTER10);
|
||||||
new Button(t("Faster (10 {})",speedUnit),params).addTo(par);
|
new Button(t("Faster ({} {})",Train.defaultSpeedStep,speedUnit),params).addTo(par);
|
||||||
|
|
||||||
params.put(ACTION, ACTION_SLOWER10);
|
params.put(ACTION, ACTION_SLOWER10);
|
||||||
new Button(t("Slower (10 {})",speedUnit),params).addTo(par);
|
new Button(t("Slower ({} {})",Train.defaultSpeedStep,speedUnit),params).addTo(par);
|
||||||
|
|
||||||
par.addTo(fieldset);
|
par.addTo(fieldset);
|
||||||
|
|
||||||
|
|||||||
@@ -55,7 +55,8 @@ public class Train extends BaseClass implements Comparable<Train> {
|
|||||||
|
|
||||||
private static final String NAME = "name";
|
private static final String NAME = "name";
|
||||||
|
|
||||||
public static int defaultEndSpeed;
|
public static int defaultEndSpeed = 10;
|
||||||
|
public static int defaultSpeedStep = 10;
|
||||||
private String name = null;
|
private String name = null;
|
||||||
|
|
||||||
|
|
||||||
@@ -132,7 +133,7 @@ public class Train extends BaseClass implements Comparable<Train> {
|
|||||||
case ACTION_TOGGLE_F4:
|
case ACTION_TOGGLE_F4:
|
||||||
return train.toggleFunction(4);
|
return train.toggleFunction(4);
|
||||||
case ACTION_FASTER10:
|
case ACTION_FASTER10:
|
||||||
return train.faster(10);
|
return train.faster(Train.defaultSpeedStep);
|
||||||
case ACTION_MOVE:
|
case ACTION_MOVE:
|
||||||
return train.setDestination(params);
|
return train.setDestination(params);
|
||||||
case ACTION_PROPS:
|
case ACTION_PROPS:
|
||||||
@@ -142,7 +143,7 @@ public class Train extends BaseClass implements Comparable<Train> {
|
|||||||
case ACTION_REVERSE:
|
case ACTION_REVERSE:
|
||||||
return train.reverse().properties();
|
return train.reverse().properties();
|
||||||
case ACTION_SLOWER10:
|
case ACTION_SLOWER10:
|
||||||
return train.slower(10);
|
return train.slower(Train.defaultSpeedStep);
|
||||||
case ACTION_START:
|
case ACTION_START:
|
||||||
return train.properties(train.start(false));
|
return train.properties(train.start(false));
|
||||||
case ACTION_STOP:
|
case ACTION_STOP:
|
||||||
|
|||||||
@@ -12,8 +12,6 @@ public class BrakeProcess extends BaseClass implements Runnable{
|
|||||||
|
|
||||||
private static final Logger LOG = LoggerFactory.getLogger(BrakeProcess.class);
|
private static final Logger LOG = LoggerFactory.getLogger(BrakeProcess.class);
|
||||||
|
|
||||||
private static final int SPEED_STEP = 10;
|
|
||||||
|
|
||||||
public static int defaultTimeStep = 500;
|
public static int defaultTimeStep = 500;
|
||||||
private Train train;
|
private Train train;
|
||||||
private int targetSpeed = Train.defaultEndSpeed;
|
private int targetSpeed = Train.defaultEndSpeed;
|
||||||
@@ -41,7 +39,7 @@ public class BrakeProcess extends BaseClass implements Runnable{
|
|||||||
int s = startSpeed;
|
int s = startSpeed;
|
||||||
while (s > Train.defaultEndSpeed) {
|
while (s > Train.defaultEndSpeed) {
|
||||||
dist += s*ts;
|
dist += s*ts;
|
||||||
s -= SPEED_STEP;
|
s -= Train.defaultSpeedStep;
|
||||||
}
|
}
|
||||||
LOG.debug("Estimated distamce with {} ms timestep: {}",ts,dist);
|
LOG.debug("Estimated distamce with {} ms timestep: {}",ts,dist);
|
||||||
return dist;
|
return dist;
|
||||||
@@ -64,7 +62,7 @@ public class BrakeProcess extends BaseClass implements Runnable{
|
|||||||
sleep(timeStep);
|
sleep(timeStep);
|
||||||
lastSpeed = train.speed;
|
lastSpeed = train.speed;
|
||||||
updateDistance();
|
updateDistance();
|
||||||
if (lastSpeed > targetSpeed) lastSpeed -= SPEED_STEP;
|
if (lastSpeed > targetSpeed) lastSpeed -= Train.defaultSpeedStep;
|
||||||
if (ended) break;
|
if (ended) break;
|
||||||
if (lastSpeed <= targetSpeed && (ended = true)) lastSpeed = targetSpeed;
|
if (lastSpeed <= targetSpeed && (ended = true)) lastSpeed = targetSpeed;
|
||||||
train.setSpeed(lastSpeed);
|
train.setSpeed(lastSpeed);
|
||||||
|
|||||||
Reference in New Issue
Block a user