I'm trying to implement RFC2217 in my code but I can't understand how the last parity bit (46H and 28H) is generated.
I'm using RS485 to Ethernet device.
What will be the code, if I'm using 2400,E,8,1?
Is it: 55 AA 55 09 60 1B XX
?
- Is
1B
right? - What will be
XX
?
User manual: page 42 in https://www.sarcitalia.it/file_upload/prodotti//USR-N520-Manual-EN-V1.0.4.pdf
CodePudding user response:
In the field for the baud rate you missed the MSByte. This field shall be
00 09 60
.Yes,
1B
for "E,8,1" is correct. BTW, the table lists 2 bits for the 1-bit fields of "stop bit" and "parity enable", which is quite irritating.The field "parity" is actually just a sum, without the header and the MSBit cleared. (I don't grasp the text of the explanation, but the document seems to be low quality anyway.)
01 C2 00 03
: 0x01 0xC2 0x00 0x03 = 0xC6; without bit 7 = 0x46.00 25 80 03
: 0x00 0x25 0x80 0x03 = 0xA8; without bit 7 = 0x28.Your telegram
00 09 60 1B
: 0x00 0x09 0x60 0x1B = 0x84; without bit 7 = 0x04. SoXX
is04
.