chiark / gitweb /
8b0412bcc18431f141f7734da1ff09c2a144fb6e
[trains.git] / hostside / README
1 ./hostside-old [<options>] <nmra-command> <nmra-args...>    see nmra-packets.h
2 ./hostside-old [<options>] nmra_bytes <nmra-command-hex-no-csum>
3 ./hostside-old [<options>] nmra_raw <nmra-command-hex-with-csum>
4 ./hostside-old [<options>] command <literal-data-for-pic>
5  options
6   -s<serialport>   eg -s/dev/ttyS0  normally necessary
7   -w<repeatdelay>  usleep; 0 = no usleep; default is -1 = don't repeat at all
8   -i<iterations>   default is 0 = infinite; -1 means don't repeat
9   -f<fudgedelay>   usleep; each character; default is 0 = no usleep
10
11 Eg,
12  ./hostside-old -s/dev/ttyS0 -w10000 -i1000 nmra_bytes 0348
13 to tell decoder 3 to go speed 13 backwards every 10ms for 1000 times, ie 10s
14  (on norway this means it actually happens every 20ms, ie for 20s,
15    which makes it a bit of a fudge really)
16
17  ff       ff       80       e4       c1       17         output bytes
18  11111111 11111111 10000000 11100100 11000001 00010111   as bits
19  >1111111 >1111111 >0000000 >1100100 >1000001 $0010111   top bit: >/$ for pic
20
21  1111111 1111111  0 00000011 0 01001000 0 01001011 1     reorg bits for nmra:
22   preamble (14)   S 0AAAAAAA P 01DCSSSS 0 EEEEEEEE 1
23                     03    (+)  48       = 4b ok
24
25 To test:
26  ./hostside-old -st nmra_bytes 0348 && binview t
27
28
29
30
31 Protocol over new hostside stdin:
32                                             Example (always the same msg):
33  P> nmra [*<slot>] [<nmra-command [<nmra-args>...]]    nmra speed28 3 13 1
34  P> nmra [*<slot>] [=<nmra-bytes>]                     nmra =0348
35  P> nmra [*<slot>] [:<nmra-bytes-with-csum>]           nmra :03484b
36  P> nmra [*<slot>] [_<pic-literal-bytes>]              nmra _7f7f00644197
37    in each case *<slot> indicates that the message should be put in
38    the retransmission cycle, and cancels any previous message with the
39    same *<slot>.  <slot> may be empty.
40  P> nmra *<slot>
41    cancels the relevant retransmission.
42
43                                             Example (always the same msg):
44  P> pic =<pic-bytes>                                   pic =a003
45  P> pic <pic-command> [<pic-args...]                   pic point 3
46        the latter for commands with no `...' in README.protocol only
47
48  Keen readers will observe that
49     pic =<pic-bytes>    and
50     nmra _<pic-bytes>
51  do exactly the same.
52
53  P> polarity <bit-string-in-hex>....
54        where, eg, with 14 segments,
55                          [      1]    [111 1111]    reversible
56                [123]     [56 7890]    [123 4567]     segment number
57          1 0010 000    1 000 1000    0 111 1010     example POLARITY
58          1 0010 RRR    1 RRR RRRR    0 RRR R---      from README.protocol
59                 RRR      RRR RRRR      RRR R        actual R bits
60                 \__        ___/\__      ___/         ... which map ...
61                    RRRRRRRR       RRRRRR             ... into data ...
62                    RRRRRRRR       RRRRRR--           ... like this.
63                    00000010       00111100
64                                  [ 1111111]         reversible
65                   [12345678]     [90123456]          segment number
66                      0x02           0x3c            hex values
67                        023c                         hex data string
68
69  Up< pic-out <hex-bytes...>
70  Up< pic-in <hex-bytes...>
71
72  U< count <type> <number-in-decimal>
73       eg  count polarity 14
74  U< pic detect 1|0 <S>
75  U< pic point <P>
76  U< pic pointed <P>
77  U< pic charged <P>
78  U< polarity <bit-string-in-hex>....
79  U< polarised <bit-string-in-hex>....