
UD78 User Guide
Issue code: 78nu2
A-7
The complete calculation is show in the table below:
Character Binary Value XOR result
0 0011 0000
1 0011 0001 0000 0001
2 0011 0010 0011 0011
5 0011 0001 0000 0110
– 0010 1101 0010 1011
3 0011 0011 0001 1000
4 0011 0100 0010 1100
. 0010 1110 0000 0010
5 0011 0101 0011 0111
ETX 0000 0011 0011 0100
The final value is the
BCC
,
provided that its equivalent decimal value exceeds
31 (
ASCII
characters from 00 to 31 are used as control codes).
When the final
XOR
result produces a decimal value less than 32, 32 is added.
In this example, 0011 0100 is 52 decimal which is above 31, so this is the final
BCC
value. 52 decimal is the character
4
. The complete message will be as
follows:
Control Address Control Parameter Data Control BCC
EOT 1 1 2 2 STX 0 1 2 5 – 3 4 . 5 ETX 4
Not included in the calculation Included in the calculation Result
Example
QuickBasic program to calculate
BCC
mess$ = CHR$(4)+”1122”+CHR$(2)+”0125”+”-34.5”+CHR$(3)
bcc% = 0
FOR n% = 7 to LEN(mess$)‘start at the character after ‘chr$(2).
bcc% = bcc% XOR ASC(MID$(mess$, n%, 1))
NEXT
IF bcc% < 32 THEN bcc% = bcc% + 32
mess$ = mess$ + CHR$(bcc%)
PRINT mess$