![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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.
И забудешь о проблемах и наступит тебе СЧАСТЬЕ!:)