bugfixes
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.1.4</version>
|
<version>1.1.5</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>
|
||||||
|
|||||||
@@ -245,7 +245,7 @@ public class Plan extends BaseClass{
|
|||||||
Vector<Route> routes = new Vector<Route>();
|
Vector<Route> routes = new Vector<Route>();
|
||||||
for (Block block : blocks) {
|
for (Block block : blocks) {
|
||||||
for (Connector con : block.startPoints()) {
|
for (Connector con : block.startPoints()) {
|
||||||
routes.addAll(follow(new Route().begin(block,con.from),con));
|
routes.addAll(follow(new Route().begin(block,con.from.inverse()),con));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (Tile tile : tiles.values()) tile.routes().clear();
|
for (Tile tile : tiles.values()) tile.routes().clear();
|
||||||
|
|||||||
@@ -290,7 +290,7 @@ public class Route extends BaseClass implements Comparable<Route>{
|
|||||||
path = new Vector<Tile>();
|
path = new Vector<Tile>();
|
||||||
turnouts = new HashMap<>();
|
turnouts = new HashMap<>();
|
||||||
startBlock = block;
|
startBlock = block;
|
||||||
startDirection = from.inverse();
|
startDirection = from;
|
||||||
path.add(block);
|
path.add(block);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -283,7 +283,7 @@ public class Locomotive extends Car implements Constants,Device{
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void queue() {
|
private void queue() {
|
||||||
int step = proto.steps * speed / maxSpeed;
|
int step = proto.steps * speed / (maxSpeed == 0 ? 100 : maxSpeed);
|
||||||
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
|
||||||
@@ -303,7 +303,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()) speed = maxSpeed();
|
if (speed > maxSpeed && maxSpeed > 0) speed = maxSpeed();
|
||||||
if (speed < 0) speed = 0;
|
if (speed < 0) speed = 0;
|
||||||
|
|
||||||
queue();
|
queue();
|
||||||
|
|||||||
@@ -542,30 +542,9 @@ public class Train extends BaseClass implements Comparable<Train> {
|
|||||||
locoList().addTo(propList);
|
locoList().addTo(propList);
|
||||||
carList().addTo(propList);
|
carList().addTo(propList);
|
||||||
|
|
||||||
int ms = maxSpeed();
|
if (isSet(currentBlock)) currentBlock.link(currentBlock.toString(),"span").addTo(new Tag("li").content(t("Current location:")+NBSP)).addTo(propList);
|
||||||
if (ms < Integer.MAX_VALUE) new Tag("li").content(t("Max. Speed")+": "+maxSpeed()+NBSP+speedUnit).addTo(propList);
|
if (isSet(direction)) new Tag("li").content(t("Direction: heading {}",direction)).addTo(propList);
|
||||||
|
|
||||||
HashMap<String, Object> props = new HashMap<String,Object>(Map.of(REALM,REALM_TRAIN,ID,id));
|
|
||||||
if (isSet(currentBlock)) {
|
|
||||||
currentBlock.link(currentBlock.toString(),"span").addTo(new Tag("li").content(t("Current location:")+NBSP)).addTo(propList);
|
|
||||||
Tag actions = new Tag("li").clazz().content(t("Actions:")+NBSP);
|
|
||||||
if (isSet(route)) {
|
|
||||||
props.put(ACTION, ACTION_STOP);
|
|
||||||
new Button(t("stop"),props).addTo(actions);
|
|
||||||
} else {
|
|
||||||
props.put(ACTION, ACTION_START);
|
|
||||||
new Button(t("start"),props).addTo(actions);
|
|
||||||
}
|
|
||||||
if (isNull(autopilot)) {
|
|
||||||
props.put(ACTION, ACTION_AUTO);
|
|
||||||
new Button(t("auto"),props).addTo(actions);
|
|
||||||
} else {
|
|
||||||
props.put(ACTION, ACTION_QUIT);
|
|
||||||
new Button(t("quit autopilot"),props).addTo(actions);
|
|
||||||
}
|
|
||||||
actions.addTo(propList);
|
|
||||||
}
|
|
||||||
|
|
||||||
Tag dest = new Tag("li").content(t("Destination:")+NBSP);
|
Tag dest = new Tag("li").content(t("Destination:")+NBSP);
|
||||||
if (isNull(destination)) {
|
if (isNull(destination)) {
|
||||||
new Button(t("Select from plan"),"return selectDest("+id+");").addTo(dest);
|
new Button(t("Select from plan"),"return selectDest("+id+");").addTo(dest);
|
||||||
@@ -578,7 +557,8 @@ public class Train extends BaseClass implements Comparable<Train> {
|
|||||||
if (isSet(route)) {
|
if (isSet(route)) {
|
||||||
link("li", Map.of(REALM,REALM_ROUTE,ID,route.id(),ACTION,ACTION_PROPS), route).addTo(propList);
|
link("li", Map.of(REALM,REALM_ROUTE,ID,route.id(),ACTION,ACTION_PROPS), route).addTo(propList);
|
||||||
}
|
}
|
||||||
if (isSet(direction)) new Tag("li").content(t("Direction: heading {}",direction)).addTo(propList);
|
int ms = maxSpeed();
|
||||||
|
if (ms < Integer.MAX_VALUE) new Tag("li").content(t("Max. Speed")+": "+maxSpeed()+NBSP+speedUnit).addTo(propList);
|
||||||
|
|
||||||
SortedSet<String> allTags = tags();
|
SortedSet<String> allTags = tags();
|
||||||
if (!allTags.isEmpty()) {
|
if (!allTags.isEmpty()) {
|
||||||
@@ -677,6 +657,7 @@ public class Train extends BaseClass implements Comparable<Train> {
|
|||||||
if (isNull(tile)) return t("Tile {} not known!",dest);
|
if (isNull(tile)) return t("Tile {} not known!",dest);
|
||||||
if (tile instanceof Block) {
|
if (tile instanceof Block) {
|
||||||
destination = (Block) tile;
|
destination = (Block) tile;
|
||||||
|
automatic();
|
||||||
return t("{} now heading for {}",this,destination);
|
return t("{} now heading for {}",this,destination);
|
||||||
}
|
}
|
||||||
return t("{} is not a block!",tile);
|
return t("{} is not a block!",tile);
|
||||||
@@ -721,6 +702,7 @@ public class Train extends BaseClass implements Comparable<Train> {
|
|||||||
|
|
||||||
public String start() throws IOException {
|
public String start() throws IOException {
|
||||||
if (isNull(currentBlock)) return t("{} not in a block",this);
|
if (isNull(currentBlock)) return t("{} not in a block",this);
|
||||||
|
if (maxSpeed() == 0) return t("Train has maximum speed of 0 {}, cannot go!",speedUnit);
|
||||||
if (isSet(route)) route.reset(); // reset route previously chosen
|
if (isSet(route)) route.reset(); // reset route previously chosen
|
||||||
|
|
||||||
Context context = new Context(this);
|
Context context = new Context(this);
|
||||||
|
|||||||
Reference in New Issue
Block a user