CR bytes lost when mapping Connectport X2 serial port to TCP sockets

Hi all: This is my first post and, after three days of hard work with a Connectport X2 and a LTH sensor, I would like to congratulate Digi guys for their great job developing these fantastic devices.

At this point I think I’ve found a bug and I would like to share it with the forum members: When performing a serial port mapping to TCP sockets from a Connectport X2, bytes with value 13 (0xD, ASCII CR) are not transfered from Connectport to destination.

I’ve discovered it because my LTH adapter is addressed as 00:13:A2:00:40:6F:7C:DB and, when I got its frames, they were not properly parsed by my code. After carefully reviewing the frame contents I realised that 64-bit source address field was not complete, and in fact value 13 was not present.

This problem is present when using, at least, raw TCP and SSH sockets. In order to discard problems not in the source but in the destination programs managing data flow (netcat for raw tcp socket and ssh client for ssh socket) I’ve captured TCP frames using Wireshak and, in fact, value 13 is not present in the received data frame field. Look the data dump of a packet containing a 0x91 (Explicit Rx Indicator) frame:

7E 00 1E 91 00 A2 00 40 6F 7C DB 45 63 00 00 00 00 00 42 9C 63 45 DB

As you can see, the source address is 00 A2 00 40 6F 7C DB when in fact it might be 00 13 A2 00 40 6F 7C DB

It’s very important to point that, when using RealPort instead of TCP sockets, the problem is NOT present.

This is the description of the used hardware:

Gateway: ConnectPort X2 ZB with Firmware (Version 82002549_C1 10/04/2011)
Sensor: XBEE ZB Bat LTH with firmware 29A0

I hope Digi staff could address this problem, the power of ConnectPort X2 with port mapping is almost unlimited for integration of computer and XBee devices.

Thanks in advance.

Finally I got it!

For serial to TCP redirection working right, serial Handshake must be set to NONE. Be careful because its default value is ‘Software’, what causes the above error be present.