Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

ComPort. Autodedect Port. [D5, D6, Win95/98, WinXP]


Zombik666 ©   (2004-04-04 17:07:00) 

Здравствуйте, уважаемые Мастера Дельфи! Вопрос к Вам такой: к одному из COM-портов подключен прибор. Требуется написать программу автоопределения имени порта, к которому этот прибор подключен. Прибор при посылке на него определенного набора байт отзывается ответной посылкой. Компонент ComPort "отлавливает" эту посылку через событие OnRxChar. Я применяю следующий (неработающий) алгоритм: задаем переменную detect:boolean=true, прописываем в событии OnRxChar detect:=false и перебираем порты в цикле while detect..do. Но беда в том, что проверка проходит быстрее, чем создается событие OnRxChar. Как приостановить "while..do", не останавливая обмен данными с портом, а?


NikB   (2004-04-05 21:47:00) [1]

Пишу как для тебе (извини моего русского язьика)
1. Задай tTimer с interwal болше время ответа
2. По OnTimer flOK:=false и посилаеш запрос к Com1
3. По OnRxChar, если тебе нравится ответ - ставиш flOK:=true;
4. По OnTimer проверяеш flOK, если true - запоминаеш порт, если false и посилаеш запрос к Com2 и т.п.


GanibalLector   (2004-04-05 02:41:00) [2]

А ты не используй компонент,а пиши все на API.
И забудешь о проблемах и наступит тебе СЧАСТЬЕ!:)


Наверх

Титульная страница Поиск, карта сайта Написать письмо