![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
RS485 mode [D5, WinXP]
S.A.S. © (2002-12-13 12:08:00)Привет всем. Помогите с решением такой проблемы. Необходимо работать с внешним устройством через COM порт по стандарту RS485. Работаю через CreateFile... Как правильно наложить маску на dcb.Flags, чтобы RTS сам переключался (Toggle mode). Посылаю устройству строку, оно отвечает (осциллографом смотрю), а считать ответ не могу - на ReadFile... прога виснит. Перебрал несколько готовых компонент - посылка отлично, а при приеме ни одно ихнее событие (типа onRxChar, onRxFlag) не наступает. Если читать сразу после отправки - опять виснем. Как правильно выставить timeout или может причина еще в чем-то ?
В общем как правильно читать данные из порта в RS485.
wal (2002-12-13 12:46:00) [1]Забей на
> чтобы RTS сам переключался
- нормально оно н когда не работало, и переключай с пoмощью EscapeCommFunction. Включай перед передачей и выключай после окончания передачи. Окончание передачи можно определить таким образом - практически все известные мне аппаратные реализации RS485 выдают эхо, т.е. что передал, то и получаешь на входе. значит работаем так -
выставляем РТС,
передаем данные1,
принимаем данные1,
снимаем РТС,
принимаем данные2.
А насчет флагов - выставляй только проверку четности, если она конечно предусмотрена протоколом.