MOXA 5210.
При отправке данных с RS232 -> TCP порт данные уходят без искажения, но только первые 3-5 символов. Далее сколько бы не TCP CLIENT их ждал, оставшаяся часть не приходит.
При отправке данных с TCP порт -> RS232 данные приходят корректно в полном объеме.
Есть подозрение, что TCP CLIENT должен работать с MOXA не совсем прозрачно, а делать какие-то манипуляции после каждого принятого куска данных.
Вот пример обмена:
RS232: отправлено [ENQ]
TCP client: получено[ENQ]
TCP client: отправлено [ACK]
RS232: получено[ACK]
RS232: отправлено [sTX]1Haa2234234234232349||||||||HOST||P|1|20130111161701[CR][ETX]20[CR][LF]
TCP client: получено[sTX]1Ha
и оставшаяся часть сообщения больше не приходит, хотя TCP client продолжает ждать данные с TCP порта.
пробовал как на скорости 9600, так и на 57600, как с Xon/Xoff так и без, все равно приходит только начало пакета((
Хотя во вкладке Monitor->Async
Async
Port TxCnt RxCnt TxTotalCnt RxTotalCnt DSR CTS DCD 1 1 76 1 76 ON OFF OFF 2 0 0 0 0 OFF OFF OFF
видно, что принято не 5-6 байт, а 76. Но в TCP порт уходит только 5.
Пробовали протестировать на другой MOXa, аналогичная ситуация, так-что аппаратную ошибку можно исключить.
Причем, в обратную сторону все работает нормально.
В чем может быть проблема?
Немного удалось разобраться, но не до конца.
Проблема решается изменением Baud rate и Force transmit
Baud rate=9600
Force transmit=0 ---приходит только первая часть
Baud rate=9600
Force transmit=1 ---приходит только первая часть
Baud rate=57600
Force transmit=1 ---приходит все верно
Baud rate=9600
Force transmit=10 ---приходит все верно
Baud rate=57600
Force transmit=0 ---приходит только первая часть