![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Открытие COM-порта при использовании переходника USB-COM [D7, WinXP]
Alex_C © (2008-12-09 16:05:00)Собственно такая проблема:
есть ноут без ком-портов. Использую переходник USB-COM - все отлично работает. Подцепил между ноутом и переходником USB-COM USB-хаб, чтоб несколько устройств можно было одновременно подключить. Программа виснет на открытии ком-порта
hPort := CreateFile(PChar(Port), GENERIC_READ + GENERIC_WRITE,
0, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
Поробовал другую программу - работает. В чем может быть причина?
kulibin (2009-01-10 21:08:00) [1]У тебя просто номер порта каждый раз меняется (в диспетчере устройств посмотри)
tesseract (2008-12-11 15:19:00) [2]
> С микросхемой FT232BM у нас никогда ещё проблем не было.
Не знаю точную микросхему. Есть те которые реально работают, китайские чудеса как правило только модемы и принтеры держат, на разное спецоборудование уже плохо вешаються.
Германн (2008-12-11 01:20:00) [3]
> tesseract © (10.12.08 14:14) [9]
С микросхемой FT232BM у нас никогда ещё проблем не было.
tesseract (2008-12-10 14:14:00) [4]
> Итог такой: USB-hub по ходу неккоректно работает с переходниками
> USB-COM. Как исправить - даже не представляю.
С переходниками USB-COM вечный гемморой, ETHERNET-RS232 работает в разы стабильнее. Такое ощущение, что там драйверы выпускники наших ПТУ пишут.
Alex_C (2008-12-10 14:00:00) [5]Сегодня разбирался далее. Разобрался, но легче от этого не стало :)
1. Виснет точно на CreateFile - до и после этого оператора ставил MessageBox - тот, что после не появлялся. Плюс окружал CreateFile try...except - на except тоже MessageBox не появлялось.
2. Виснет не постояннно, то пару раз нормально, то пару раз зависает.
3. Замечено следущее: если в программе ОТКРЫВАЕШЬ ком- порт, виснет не намертво, а секунд на 30-50, затем идет дальше и нормально работает. А если в программе пытаешься ПЕРЕОТКРЫТЬ порт (CloseHandle - CreateFile) - вот тогда виснат уже насовсем. Пробовал ставить Sleep(2000) перед CreateFile - не помогает.
Итог такой: USB-hub по ходу неккоректно работает с переходниками USB-COM. Как исправить - даже не представляю.
Сергей М. (2008-12-10 10:15:00) [6]
> Никакого сообщения нет
Значит эта строчка ни причем.
А на основании чего ты вообще сделал умозаключение, что вис происходит именно на этой строчке ?
Какие-то отладочные рантайм-сообщения выводил до и после вызова CreateFile или что ?
Германн (2008-12-10 01:09:00) [7]
> Alex_C (09.12.08 22:49) [4]
>
> Блин! Нифига не понимаю! Никакого сообщения нет. Иногда
> это проходит, а иногда виснет. Закономерности не понял.
> Убираю USB-хаб - все нормально. Однако пробую родную программу
> упарвления - работает. Выходит у меня где-то есть какой
> то не тот параметр...
>
Задержки, имхо. Родная программа их учитывает, твоя - нет.
Loginov Dmitry (2008-12-09 23:14:00) [8]> Однако пробую родную программу упарвления - работает. Выходит
> у меня где-то есть какой то не тот параметр...
В HyperTerminal'е порт открывается? Без проблем?
Alex_C (2008-12-09 22:49:00) [9]Блин! Нифига не понимаю! Никакого сообщения нет. Иногда это проходит, а иногда виснет. Закономерности не понял. Убираю USB-хаб - все нормально. Однако пробую родную программу упарвления - работает. Выходит у меня где-то есть какой то не тот параметр...
Сергей М. (2008-12-09 16:44:00) [10]hPort := CreateFile(..);
Win32Check(hPort <> INVALID_HANDLE_VALUE);
Сообщение видишь ?
Alex_C (2008-12-09 16:32:00) [11]В основном.
Причем пытался Дельфей отловить при пошаговом исполнении - все нормально проходит, ничего не виснет.
Сергей М. (2008-12-09 16:13:00) [12]В каком потоке происходят эти чудеса ?