lifeforms Posted October 27, 2011 Share Posted October 27, 2011 ОС: Linux linuxhost 2.6.38.6-26.rc1.fc15.i686.PAE #1 SMP Mon May 9 20:36:50 UTC 2011 i686 i686 i386 GNU/Linux --------------------------------------------------------------------------------------------------------- Драйвер Moxa NPort5150: Product: NPort Linux Real TTY Driver (V2) Version: 1.17.3 Build 11060916 Date: 06/09/2011 Company: Moxa Inc. Release Note: ============= ver1.17.3 Build 11060916 1. Improve: Support Linux Kernel up to 2.6.39 -------------------------------------------------------------------------------------------------------- Простейшая программа отправки в устройство /dev/ttyr00 пропущу открытие дескриптора инициализацию и т.д.: unsigned char buff[] = { 0x02, 0x03, 0x00, 0x43, 0x00, 0x01, 0xff, 0xff }; write(fd, buff, 8); Отправляем пакет: 0x02 0x03 0x00 0x43 0x00 0x01 0x75 0xED ответа от устройства нет. tcpdump -w filename.dump ip host moxahost tcpdump -r filename.dump -nn -xx XX:XX:XX.090565 IP linuxhost.50463 > moxahost.950: Flags [P.], seq 3160517789:3160517797, ack 1810504621, win 14600, length 8 0x0000: 0090 e815 493a 0050 5683 001f 0800 4500 0x0010: 0030 0af2 4000 4006 b9ad c0a8 fa76 c0a8 0x0020: fa60 c51f 03b6 bc61 ac9d 6bea 1bad 5018 0x0030: 3908 6500 0000 0203 0043 0001 55cd Разница в последних цифрах посыла на -32. Отправляем пакет: 0x02 0x03 0x00 0x43 0x00 0x01 0x00 0x00 tcpdump -w filename.dump ip host moxahost tcpdump -r filename.dump -nn -xx XX:XX:XX.090589 IP linuxhost.50463 > moxahost.950: Flags [P.], seq 3160517789:3160517797, ack 1810504621, win 14600, length 8 0x0000: 0090 e815 493a 0050 5683 001f 0800 4500 0x0010: 0030 0af2 4000 4006 b9ad c0a8 fa76 c0a8 0x0020: fa60 c51f 03b6 bc61 ac9d 6bea 1bad 5018 0x0030: 3908 6500 0000 0203 0043 0001 0000 Отправляем пакет: 0x02 0x03 0x00 0x43 0x00 0x01 0xFF 0xFF tcpdump -w filename.dump ip host moxahost tcpdump -r filename.dump -nn -xx XX:XX:XX.090632 IP linuxhost.50463 > moxahost.950: Flags [P.], seq 3160517789:3160517797, ack 1810504621, win 14600, length 8 0x0000: 0090 e815 493a 0050 5683 001f 0800 4500 0x0010: 0030 0af2 4000 4006 b9ad c0a8 fa76 c0a8 0x0020: fa60 c51f 03b6 bc61 ac9d 6bea 1bad 5018 0x0030: 3908 6500 0000 0203 0043 0001 dfdf Вопрос собственно вот в чем: Почему так? Уточню что посыл не от балды это команда Modbus и последние значения для меня важны поскольку CRC16 это. Link to comment
lifeforms Posted October 27, 2011 Author Share Posted October 27, 2011 Ошибка найдена. Инициализация /dev/ttyr00 должна быть в raw режим. options.c_oflag &= ~OPOST; Link to comment
Komantsev Posted November 5, 2011 Share Posted November 5, 2011 Спасибо за информацию :-) Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now