[an error occurred while processing this directive]
|
Тоже долго с этим боролся. Аппаратные средства, по крайней мере, в 98, не работают. Функции вроде заложены, но не реализованы. Я просто слушал линию, дожидался приема моих же передаваемых байт (они же и на приемник автоматом приходят), и по окончании приема снимал разрешение передачи. При этом нужно делать задержку по ответу в колнтроллере на несколько миллисекунд (около 5).
Другой вариант - купить адаптер 232-485, который САМ следит за передачей и управляет разрешением передатчика. Такие можно найти. Там задержка, мне кажется, нужна порядка длины посылки одного байта.
В принципе, можно еще залезть прямо в регистры COM-порта. Там эта информация появляется гораздо быстрее. Под ДОСом все работает гораздо приличнее. Но такой подход некрасив, работает просто только под 98, под NT- дополнительные проблемы, и не только с обращением к портам, но и с определением их адресов. Бодяга, в общем, и плохая совместимость для различных Виндов.
E-mail: info@telesys.ru