chiark / gitweb /
document new state behaviours for OFF and CDU
[trains.git] / cebpic / README.protocol
index 3ceace68dd67cd02079f791542fae72d72a8bf28..df31395c25d08045bf0ff54cc05282694f8f2360 100644 (file)
@@ -20,20 +20,24 @@ From host to PIC:
  > 1 0001 XXX  0 XXXXXXX  (88+)        PING      Ping `X' (please Pong `X')
  > 1 0010 RRR  E RRR...   (90+)        POLARITY  Set polarity
  > 1 0011 000  0 MMMMMMM  (98+)        WATCHDOG  W'dog reset, t/o <M*16>ms from now
- > 0 0100 001             (21) ON        Power on
- > 0 0100 000             (20) OFF       Power off
+ > 0 0010 001             (11) ON        Power on
+ > 0 0010 000             (10) OFF       Power off
 
- > 00000000                     CRASHED   Acknowledge panic, go to readout mode
- > 00000001                    ACKSERERR RS232 framing or overrun (panic'd)
+;> 00000000                     CRASHED   Acknowledge panic, go to readout mode
+;> 00001002               (0a) TELLMODE  Confirm mode - say HELLO or CRASHED
+;                                          if crashed, undoes the effect of ack
 
 ; In crash readout mode:
 ;
 ;      00000000  MS    Select crash readout mode if not already
 ;                      Reset crash readout pointer to 0
 ;
+;      00001000        Acknowledge RS232 framing error or overrun
+;      00001001        Reboot
+;
 ;      1vvvvvvv  M     Prepare byte 0vvvvvvv for transmission to the slave
 ;
-;      0000nnnn  M     (n>0) prepare to receive nnnn bytes from slave
+;      00000nnn  M     (n>0) prepare to receive nnnn bytes from slave
 ;      0001nnnn  M     (n>0) transmit nnnn bytes of our own from the
 ;                        readout pointer
 ;
@@ -122,6 +126,11 @@ should be reenabled when the host transmits ON.
                                      (User Fault indicator lit)
 
 
+If OFF is issued in the first 500ms following a short circuit, it will
+be ignored; if the short circuit persists, OFF during the following
+period will go to the `Track and CDU disabled' state without sending
+FIXED.
+
 
 POINTS and CDU
 --------------
@@ -151,6 +160,10 @@ not check that the received P value is 0; they may simply assume it).
        is recharging  <----POINTED----  Point is changing
 
 
+Note that OFF will turn the CDU off, and a short circuit (FAULT) will
+turn it off 500ms later (this delay avoids losing races where the host
+sends a point change instruction just before a short happens).
+
 
 PING and PONG
 -------------