ABCDEFGHIJKLMNOPQRSTUVWXYZ
1
Escort TD System commands for firmware version 1.6.4. and higher.
2
3
4
All commands/requests are sent from an external device in the following format:
5
6
Prefix
network number/address
CommandDataCheck sum
7
0х31u8(net_num)(See the list of commands)Can be absentCRC-8 (Maxim)
8
9
10
Prefix
11
0x31
request from the computer/external device
12
0x3Esensor response
13
14
15
16
The list of commands/requests
DataNote
17
0x06
request for data in Omnicomm format
None
18
19
0xFF
command to poll the network
None
20
21
22
The response is rendered in the following format:
23
Prefix
network number/address
Command/RequestDataCheck sum
24
0х3Еu8(net_num)(See the list of commands)
Can be absent (depends on the command sent)
CRC-8 (Maxim)
25
26
27
Commands/requests
Response bytes's description
28
0x06Transmission of the data in the Omnicomm formattemperature -U8U8 - 2 digits
29
U16- fuel level readingU16 - 4 digits
30
U16 — reserved bytes (not used)
U32 - 8 digits
31
32
33
34
35
36
37
38
39
40
0xFF
Command to poll the network
U8 net_num
41
42
43
Example of response to the 0x06 command
44
45
PrefixNetwork addressCommand Checksum
46
Request0х31u8(net_num)0x06CRC-8 (Maxim)
47
48
49
50
51
52
Network addresses of the sensors are set within the range from 0 to 255 (net_num)
53
54
55
Each sensor emits its own number in the time gate corresponding to the sensor network address.
56
gate time for a sensor's response - 1 ms.
57
For example if there are two sensors with the network addresses 1 and 100,
58
the value from the first sensor (with the network address 1) comes in 10 + 1 ms, the value from the second sensor (with the network address 100) comes in 100 + 10 ms.
59
10 ms separate each instance of the data transmission / reception by the converter USB-RS485 /
60
61
CRC calculationYou can can use the following algorithms to calculate the checksum
with a polynom ^8 + a^5 + a^4 + 1 (C language)
62
63
U8 CRC8(U8 data, U8 crc)
64
{1 U8 CRC8 (U8 b, U8 crc)
2 {
3 U8 i = 8;
4 do {
5 if ( (b ^ crc) & 0x01) {
6 crc = ( (crc ^ 0x18) >> 1 ) | 0x80;
7 } else {
8 crc >>= 1;
9 }
10 b >>= 1;
11 } while (--i);
12 return crc;
13 }
1 U8 CRC8(U8 data, U8 crc)
2 {
3 U8 i = data ^ crc;
4 crc = 0;
5 if(i & 0x01) crc ^= 0x5e;
6 if(i & 0x02) crc ^= 0xbc;
7 if(i & 0x04) crc ^= 0x61;
8 if(i & 0x08) crc ^= 0xc2;
9 if(i & 0x10) crc ^= 0x9d;
10 if(i & 0x20) crc ^= 0x23;
11 if(i & 0x40) crc ^= 0x46;
12 if(i & 0x80) crc ^= 0x8c;
13 return crc;
14 }
65
U8 i = data ^ crc;
66
crc = 0;
67
if(i & 0x01) crc ^= 0x5e;
68
if(i & 0x02) crc ^= 0xbc;
69
if(i & 0x04) crc ^= 0x61;
70
if(i & 0x08) crc ^= 0xc2;
71
if(i & 0x10) crc ^= 0x9d;
72
if(i & 0x20) crc ^= 0x23;
73
if(i & 0x40) crc ^= 0x46;
74
if(i & 0x80) crc ^= 0x8c;
75
return crc;
76
}
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100