chiark / gitweb /
wip more safety debugging
authorian <ian>
Tue, 15 Apr 2008 01:28:41 +0000 (01:28 +0000)
committerian <ian>
Tue, 15 Apr 2008 01:28:41 +0000 (01:28 +0000)
hostside/TODO
hostside/homes.record
hostside/resolve.c

index 655aebe3f65962f934a4cc5373b59d6b60bfb5d1..f6da014be3127fe30a33842054c595f91d69f7da 100644 (file)
@@ -1,3 +1,48 @@
+
+
+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
 
index cf8735c0e402322416377346ca251d847ce2cdab..1103863bfe7bb7b8277cd2f293733de620b7f641 100644 (file)
@@ -1,3 +1,3 @@
-train santafe home -X5
+train santafe home -X8
 train shinkansen home -X7 -X9 -A5 -A6
 end
index cd5cc6a84598d976dec8c23bc7c36a7e0396ad96..32a55c676a6b5690f7a312212fceb163cdd6a4b2 100644 (file)
@@ -208,6 +208,11 @@ int resolve_complete(void) {
       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;
@@ -257,6 +262,11 @@ int resolve_complete(void) {
        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) {
@@ -279,6 +289,7 @@ int resolve_complete(void) {
        oprintf(UPO, "resolving    supposing %s at-home\n", t1->pname);
        continue;
       }
+    not_3b:
 
       /* Oh dear, 3c. */
       if (phase<2)
@@ -291,6 +302,9 @@ int resolve_complete(void) {
   }
     
   FOR_SEGMENT(d,NOOP,NOOP) {
+    if (problems)
+      goto x_problems;
+
     d->tr_updated= 0;
     d->cm_autostop= 0;
 
@@ -332,7 +346,8 @@ int resolve_complete(void) {
   }
 
   if (problems) {
-    oprintf(UPO,"resolution problems (%d)\n",problems);
+  x_problems:
+    oprintf(UPO,"resolution problems %d\n",problems);
     return -1;
   }