Example 4 shows an example of a function that creates the lookup table.
#include <stdio.h>
#define MAX_CHAR
256
#define BITS_CHAR
8
#define SIGN_BIT
0x8000
#define POLY
0x1021
unsigned short crctab [MAX_CHAR]; main
()
{
unsigned short ch; unsigned
short workval; unsigned
short bit; unsigned short
carry;
for (ch = 0; ch != MAX_CHAR; ch++) {
workval = ch << BITS_CHAR;
for (bit = BITS_CHAR; bit != 0; bit--) {
carry = (workval & SIGN_BIT);
workval <<= 1; if
(carry) workval ^=
POLY;
}
crctab[ch] = workval;
}
for (ch = 0; ch != MAX_CHAR; ch++)
printf(“0x%04x\n”, crctab[ch]);
}
Manually Disabling ECP for Maintenance
Under certain conditions, communications between the host and MPRX may be lost temporarily
and maintenance may be required. The reader or host is sending out a message and waiting for an
acknowledgment. When the acknowledgment is not received, the message is sent again. Additional
messages are also buffered. Often the first indication that the MPRX software is in an ECP “loop” is when
the user/technician sees a recurring display of the same message repeated on the monitor. The procedure
described in the following paragraphs enables the maintenance technician to change configuration or test
tag reading manually.
Assuming that the ECP timeout is at the factory default of 12.7 seconds (or other value that allows enough
time for the commands to be manually entered) the following command sequence may be used to break
out of an ECP loop. This command sequence uses four ASCII < ` > characters (60 hex) as wild card CRC
values.
Note:
The ASCII <`> character (60 hex) is commonly located on the ~ key.
MPRX User Guide
TransCore Proprietary
4–54
Содержание MPRX 10-7200-001
Страница 137: ......