+
+
+with santafe at X8, we get this:
+
+ picio out polarity <>
+ lay_train X8 @santafe added_slop=0 maxinto=509 tra->backwards=0 tloc.backwards=1
+ lay_train_pass santafe @X8+509 check_clash=1 advance=20 speed=0 remain=20 backwards=0
+ lay_train_pass loop @X8 remain=20
+ lay_train_pass further=1 tloc=@X6+0 remain=20
+ lay_train_pass loop @X6 remain=20
+ lay_train_pass further=0 tloc=@X6+20 remain=0
+ lay_train_pass santafe @X8+509 check_clash=0 advance=0 speed=0 remain=0 backwards=0
+ lay_train_pass loop @X8 remain=0
+ lay_train_pass santafe @X8+0 check_clash=1 advance=605 speed=0 remain=605 backwards=1
+ lay_train_pass loop @X8 remain=605
+ lay_train_pass further=1 tloc=@X10+0 remain=96
+ lay_train_pass loop @X10 remain=96
+ message safety @X10 santafe: collision with shinkansen
+ lay_train_pass further=0 tloc=@X10+96 remain=0
+ message safety @X8 santafe: emergency stop on reaching here
+ lay_train X8 @santafe added_slop=300 maxinto=509 tra->backwards=0 tloc.backwards=1
+ lay_train_pass santafe @X8+509 check_clash=1 advance=320 speed=0 remain=320 backwards=0
+ lay_train_pass loop @X8 remain=320
+ lay_train_pass further=1 tloc=@X6+0 remain=320
+ lay_train_pass loop @X6 remain=320
+ lay_train_pass further=1 tloc=@X5+0 remain=68
+ lay_train_pass loop @X5 remain=68
+ lay_train_pass further=0 tloc=@X5+68 remain=0
+ lay_train_pass santafe @X8+509 check_clash=0 advance=0 speed=0 remain=0 backwards=0
+ lay_train_pass loop @X8 remain=0
+ lay_train_pass santafe @X8+0 check_clash=1 advance=605 speed=0 remain=605 backwards=1
+ lay_train_pass loop @X8 remain=605
+ lay_train_pass further=1 tloc=@X10+0 remain=96
+ lay_train_pass loop @X10 remain=96
+ lay_train_pass further=0 tloc=@X10+96 remain=0
+ picio out polarity <>
+
+but why does emergency stop help ?
+
+
+
+
+
+
+
dunno but maybe before can test
wiring to gui display
if (d->owner) { /* 3a perhaps */
oprintf(UPO, "resolving expected %s\n", t->pname);
+ if (t->addr < 0) {
+ oprintf(UPO, "resolving expected-is-not-addressable\n");
+ goto not_3a;
+ }
+
if (t->resolution == RR_H) {
oprintf(UPO, "resolving expected-is-at-home\n");
goto not_3a;
Train *t1= d->home; /* t' st d \elem H(t') */
oprintf(UPO, "resolving home %s\n", t1->pname);
+ if (t1->addr < 0) {
+ oprintf(UPO, "resolving home-is-not-addressable\n");
+ goto not_3b;
+ }
+
oprintf(UPO, "resolving reset-expecteds\n");
FOR_TRAIN(tplus, NOOP,NOOP) {
if (tplus->resolution == RR_E) {
oprintf(UPO, "resolving supposing %s at-home\n", t1->pname);
continue;
}
+ not_3b:
/* Oh dear, 3c. */
if (phase<2)
}
FOR_SEGMENT(d,NOOP,NOOP) {
+ if (problems)
+ goto x_problems;
+
d->tr_updated= 0;
d->cm_autostop= 0;
}
if (problems) {
- oprintf(UPO,"resolution problems (%d)\n",problems);
+ x_problems:
+ oprintf(UPO,"resolution problems %d\n",problems);
return -1;
}