smk 0 4 июня, 2013 Опубликовано 4 июня, 2013 · Жалоба Задача передавать/принимать RS232 из/в RS485. Есть переходник, который по сигналу DTR переключается на прием/передачу. По задумке сначала DTR выставляется в 1 и включает 485 на передачу. Затем производится передача и по завершении DTR ставится в 0 переводя 485 на прием. Суть проблемы в том, что DTR ставится в 0 раньше, чем завершится передача. Как можно сделать так чтобы DTR устанавливался в 0 по завершении передачи? Нужно сразу по завершении принимать ответ... Спасибо. serialPort1.Open(); serialPort1.DtrEnable = true; serialPort1.Write(TX_buf, 0, 8); serialPort1.DtrEnable = false; serialPort1.Close(); Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
neiver 0 4 июня, 2013 Опубликовано 4 июня, 2013 · Жалоба К сожалению в этом классе нет возможности узнать об окончании передачи. Можно после serialPort1.Write(TX_buf, 0, 8); вставить задержку на какое-то разумное время Thread.Sleep(1). Но это достаточно кривое решение. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MrYuran 17 4 июня, 2013 Опубликовано 4 июня, 2013 · Жалоба А напрямую с WinAPI обшарпанный не дружит? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
smk 0 4 июня, 2013 Опубликовано 4 июня, 2013 · Жалоба А может не морочить себе голову да поставить в переходник MAX13487 ? Пробовал кто на скорости 4800 ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
neiver 0 4 июня, 2013 Опубликовано 4 июня, 2013 · Жалоба А напрямую с WinAPI обшарпанный не дружит? Дружит. PInvoke называется. Если очень хочестся то можно экспортировать из WinAPI FlushFileBuffers, выдернуть через Reflection из объекта порта хендл и передать в FlushFileBuffers. Это даже будет работать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MrYuran 17 5 июня, 2013 Опубликовано 5 июня, 2013 · Жалоба А может не морочить себе голову да поставить в переходник MAX13487 ? Пробовал кто на скорости 4800 ? FTDI имеет встроенную схему коммутации 485. Все равно СОМ-порт сейчас только на раритетах остался. А так к любому компу/ноуту можно будет подключить. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
M_Andrey 0 5 июня, 2013 Опубликовано 5 июня, 2013 · Жалоба FTDI имеет встроенную схему коммутации 485. Все равно СОМ-порт сейчас только на раритетах остался. А так к любому компу/ноуту можно будет подключить. Серьезные проекты на ширпотребовских материнках не делают, а в промышленных платах/компах бывает до 6 СОМ-портов и думаю еще долго будут делать. К тому-же FTDI частенько отваливаются, что в принципе недопустимо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MrYuran 17 5 июня, 2013 Опубликовано 5 июня, 2013 · Жалоба Серьезные проекты на ширпотребовских материнках не делают В серьезных проектах ставят моху или адвантех и не парятся с дерганием DTR Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
smk 0 5 июня, 2013 Опубликовано 5 июня, 2013 · Жалоба В серьезных проектах ставят моху или адвантех и не парятся с дерганием DTR Ну это да. А мах13487 вполне прилично заработала. Проблема решилась. Мне настольным образом потестипровать нужно кое-что по быстрому. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться