Browse Source

bugfixes

lookup-tables
Stephan Richter 4 years ago
parent
commit
5b73a909df
  1. 2
      pom.xml
  2. 2
      src/main/java/de/srsoftware/web4rail/Plan.java
  3. 2
      src/main/java/de/srsoftware/web4rail/Route.java
  4. 4
      src/main/java/de/srsoftware/web4rail/moving/Locomotive.java
  5. 30
      src/main/java/de/srsoftware/web4rail/moving/Train.java

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>

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

@ -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();

2
src/main/java/de/srsoftware/web4rail/Route.java

@ -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;
} }

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

@ -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();

30
src/main/java/de/srsoftware/web4rail/moving/Train.java

@ -542,29 +542,8 @@ 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)) {
@ -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);

Loading…
Cancel
Save