Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 | 25x 25x 1x 10x | import {getLookup} from './utils';
export const proto = {
// Protocol characters
STX: 0x02,
ETX: 0x03,
ACK: 0x06, // when sent to BSx3..6, causes beep until SI-card taken out
NAK: 0x15,
DLE: 0x10,
WAKEUP: 0xFF,
// Basic protocol commands, currently unused
basicCmd: {
SET_CARDNO: 0x30,
GET_SI5: 0x31, // read out SI-card 5 data
SI5_WRITE: 0x43, // 02 43 (block: 0x30 to 0x37) (16 bytes) 03
SI5_DET: 0x46, // SI-card 5 inserted (46 49) or removed (46 4F)
TRANS_REC: 0x53, // autosend timestamp (online control)
TRANS_TIME: 0x54, // autosend timestamp (lightbeam trigger)
GET_SI6: 0x61, // read out SI-card 6 data
SI6_DET: 0x66, // SI-card 6 inserted
SET_MS: 0x70, // \x4D="M"aster, \x53="S"lave
GET_MS: 0x71,
SET_SYS_VAL: 0x72,
GET_SYS_VAL: 0x73,
GET_BDATA: 0x74, // Note: response carries '\xC4'!
ERASE_BDATA: 0x75,
SET_TIME: 0x76,
GET_TIME: 0x77,
OFF: 0x78,
GET_BDATA2: 0x7A, // Note: response carries '\xCA'!
SET_BAUD: 0x7E, // 0=4800 baud, 1=38400 baud
},
get basicCmdLookup(): {[value: number]: string} {
return getLookup(proto.basicCmd);
},
// Extended protocol commands
cmd: {
GET_BACKUP: 0x81,
SET_SYS_VAL: 0x82,
GET_SYS_VAL: 0x83,
SRR_WRITE: 0xA2, // ShortRangeRadio - SysData write
SRR_READ: 0xA3, // ShortRangeRadio - SysData read
SRR_QUERY: 0xA6, // ShortRangeRadio - network device query
SRR_PING: 0xA7, // ShortRangeRadio - heartbeat from linked devices, every 50 seconds
SRR_ADHOC: 0xA8, // ShortRangeRadio - ad-hoc message, f.ex. from SI-ActiveCard
GET_SI5: 0xB1, // read out SI-card 5 data
TRANS_REC: 0xD3, // autosend timestamp (online control)
CLEAR_CARD: 0xE0, // found on SI-dev-forum: 02 E0 00 E0 00 03 (http://www.sportident.com/en/forum/8/56#59)
GET_SI6: 0xE1, // read out SI-card 6 data block
SET_SI6: 0xE2, // write SI-card 6 line (16 bytes)
SET_SI6_SPECIAL: 0xE4, // write SI-card 6 special fields (e.g. start number)
SI5_DET: 0xE5, // SI-card 5 inserted
SI6_DET: 0xE6, // SI-card 6 inserted
SI_REM: 0xE7, // SI-card removed
SI8_DET: 0xE8, // SI-card 8/9/10/11/p/t inserted
SET_SI8: 0xEA, // write SI-card 8/9/10/11/p/t data word
GET_SI8: 0xEF, // read out SI-card 8/9/10/11/p/t data block
SET_MS: 0xF0, // \x4D="M"aster, \x53="S"lave
GET_MS: 0xF1,
ERASE_BDATA: 0xF5,
SET_TIME: 0xF6,
GET_TIME: 0xF7,
OFF: 0xF8,
SIGNAL: 0xF9, // 02 F9 (number of signals) (CRC16) 03
SET_BAUD: 0xFE, // \x00=4800 baud, \x01=38400 baud
},
get cmdLookup(): {[value: number]: string} {
return getLookup(proto.cmd);
},
// If a punch has explicitly no time (e.g. if the start hasn't been punched)
NO_TIME: 0xEEEE,
// Protocol Parameters
P_MS_DIRECT: 0x4D, // "M"aster
P_MS_REMOTE: 0x53, // "S"lave
P_SI6_CB: 0x08,
// Backup memory record length
REC_LEN: 8, // Only in extended protocol, otherwise 6!
// punch trigger in control mode data structure
T_OFFSET: 8,
T_CN: 0,
T_TIME: 5,
// backup memory in control mode
BC_CN: 3,
BC_TIME: 8,
};
|