CAI_Support said:
Ross,
Are you using a tty0tty on your BSD system?
There's no need, netcat directly connects the socket to stdio and faithfully copies the contents of any and all packets.
I've been using it for years with other terminal servers without incident, even copying terabytes of data across the internet between SANs - without ever so much as a checksum mismatch.
CAI_Support said:
Did you do tcpdump to see where the problem is? Does the communication stop before reaching to the tty0tty driver?
tcpdump seems to show data is just "missing"....
ok, I caught one....
Here's a section of the logged data from the file:
16:54:33=> *V01 3.342
16:54:33=> T01 28.3
16:54:33=> V02 3.345
16:54:33=> T02 28.1
16:54:34=> V03 3.396
16:54:34=> T03 27.8
16:54:36=> A0.352
16:54:36=> T08 0.0
16:54:36=> A07 26.888 3.361 .100
16:54:37=> V09 3.365
16:54:37=> T09 0.0
16:54:37=> V10 3.363
And here's the packets as monitored at the switch where the WC32 connects (timestamps in milliseconds, IP source and destination obfuscated)
16:54:28.651678 a.b.c.d w.x.y.z *.....
16:54:33.238823 a.b.c.d w.x.y.z V.....
16:54:33.288792 a.b.c.d w.x.y.z 01 3..
16:54:33.338777 a.b.c.d w.x.y.z .342..
16:54:33.388772 a.b.c.d w.x.y.z ..T...
16:54:33.488749 a.b.c.d w.x.y.z 01 2..
16:54:33.538739 a.b.c.d w.x.y.z 8.3...
16:54:33.588721 a.b.c.d w.x.y.z V.....
16:54:33.638716 a.b.c.d w.x.y.z 02 3..
16:54:33.688701 a.b.c.d w.x.y.z .345..
16:54:33.738704 a.b.c.d w.x.y.z ..T...
16:54:33.788717 a.b.c.d w.x.y.z 02 2..
16:54:33.839355 a.b.c.d w.x.y.z 8.1...
16:54:33.888907 a.b.c.d w.x.y.z V.....
16:54:33.938662 a.b.c.d w.x.y.z 03 3..
16:54:33.988649 a.b.c.d w.x.y.z .396..
16:54:34.038652 a.b.c.d w.x.y.z ..T...
16:54:34.138611 a.b.c.d w.x.y.z 03 2..
16:54:34.188605 a.b.c.d w.x.y.z 7.8...
16:54:34.238593 a.b.c.d w.x.y.z A.....
16:54:36.638141 a.b.c.d w.x.y.z 0.....
16:54:36.638287 a.b.c.d w.x.y.z .352..T08 0.0..A07 26.88
16:54:36.688125 a.b.c.d w.x.y.z 8 3...
16:54:36.738120 a.b.c.d w.x.y.z 361 ..
16:54:36.788095 a.b.c.d w.x.y.z .100..
16:54:36.838111 a.b.c.d w.x.y.z ......
16:54:36.951548 a.b.c.d w.x.y.z V0....
16:54:37.001076 a.b.c.d w.x.y.z 9 3...
16:54:37.001259 a.b.c.d w.x.y.z 365...
16:54:37.051966 a.b.c.d w.x.y.z ......
16:54:37.102051 a.b.c.d w.x.y.z T0....
16:54:37.152196 a.b.c.d w.x.y.z 9 0...
Interesting to note that the second packet back has much more data, as if chars are coming in the UART, being assembled into the ethernet frame but simply not being sent.
(I'm presuming you wait a certain number of milliseconds before sending a ethernet frame, to keep the latency low, or sending a larger frame if more bytes are received in the meantime?)
Also interestingly, I've now moved both RS232 channels to the WC32 board to see if it makes it better or worse. The fault is evident on both channels, and the approx 10 minutes interval seems to still be consistent - although at the moment it looks like the 10 minutes may not align across both channels! Like it's some 10-minute event thing per UART?