Конференция "WinAPI" » Открытие COM-порта при использовании переходника USB-COM [D7, WinXP]
 
  • Alex_C (09.12.08 16:05) [0]
    Собственно такая проблема:
    есть ноут без ком-портов. Использую переходник USB-COM - все отлично работает. Подцепил между ноутом и переходником USB-COM USB-хаб, чтоб несколько устройств можно было одновременно подключить. Программа виснет на открытии ком-порта
    hPort := CreateFile(PChar(Port), GENERIC_READ + GENERIC_WRITE,
               0, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);

    Поробовал другую программу - работает. В чем может быть причина?
  • Сергей М. © (09.12.08 16:13) [1]
    В каком потоке происходят эти чудеса ?
  • Alex_C (09.12.08 16:32) [2]
    В основном.
    Причем пытался Дельфей отловить при пошаговом исполнении - все нормально проходит, ничего не виснет.
  • Сергей М. © (09.12.08 16:44) [3]
    hPort := CreateFile(..);
    Win32Check(hPort <> INVALID_HANDLE_VALUE);

    Сообщение видишь ?
  • Alex_C (09.12.08 22:49) [4]
    Блин! Нифига не понимаю! Никакого сообщения нет. Иногда это проходит, а иногда виснет. Закономерности не понял. Убираю USB-хаб - все нормально. Однако пробую родную программу упарвления - работает. Выходит у меня где-то есть какой то не тот параметр...
  • Loginov Dmitry © (09.12.08 23:14) [5]
    > Однако пробую родную программу упарвления - работает. Выходит
    > у меня где-то есть какой то не тот параметр...


    В HyperTerminal'е порт открывается? Без проблем?
  • Германн © (10.12.08 01:09) [6]

    > Alex_C   (09.12.08 22:49) [4]
    >
    > Блин! Нифига не понимаю! Никакого сообщения нет. Иногда
    > это проходит, а иногда виснет. Закономерности не понял.
    > Убираю USB-хаб - все нормально. Однако пробую родную программу
    > упарвления - работает. Выходит у меня где-то есть какой
    > то не тот параметр...
    >

    Задержки, имхо. Родная программа их учитывает, твоя - нет.
  • Сергей М. © (10.12.08 10:15) [7]

    > Никакого сообщения нет


    Значит эта строчка ни причем.
    А на основании чего ты вообще сделал умозаключение, что вис происходит именно на этой строчке ?
    Какие-то отладочные рантайм-сообщения выводил до и после вызова CreateFile или что ?
  • Alex_C (10.12.08 14:00) [8]
    Сегодня разбирался далее. Разобрался, но легче от этого не стало :)
    1. Виснет точно на CreateFile - до и после этого оператора ставил MessageBox - тот, что после не появлялся. Плюс окружал CreateFile try...except - на except тоже MessageBox не появлялось.
    2. Виснет не постояннно, то пару раз нормально, то пару раз зависает.
    3. Замечено следущее: если в программе ОТКРЫВАЕШЬ ком- порт, виснет не намертво, а секунд на 30-50, затем идет дальше и нормально работает. А если в программе пытаешься ПЕРЕОТКРЫТЬ порт (CloseHandle - CreateFile) - вот тогда виснат уже насовсем. Пробовал ставить Sleep(2000) перед CreateFile - не помогает.
    Итог такой: USB-hub по ходу неккоректно работает с переходниками USB-COM. Как исправить - даже не представляю.
  • tesseract © (10.12.08 14:14) [9]

    > Итог такой: USB-hub по ходу неккоректно работает с переходниками
    > USB-COM. Как исправить - даже не представляю.


    С переходниками USB-COM вечный гемморой, ETHERNET-RS232 работает в разы стабильнее. Такое ощущение, что там драйверы выпускники наших ПТУ пишут.
  • Германн © (11.12.08 01:20) [10]

    > tesseract ©   (10.12.08 14:14) [9]

    С микросхемой FT232BM у нас никогда ещё проблем не было.
  • tesseract © (11.12.08 15:19) [11]

    > С микросхемой FT232BM у нас никогда ещё проблем не было.


    Не знаю точную микросхему. Есть те которые реально работают, китайские чудеса как правило только модемы и принтеры держат, на разное спецоборудование уже плохо вешаються.
  • kulibin (10.01.09 21:08) [12]
    У тебя просто номер порта каждый раз меняется (в диспетчере устройств посмотри)
 
Конференция "WinAPI" » Открытие COM-порта при использовании переходника USB-COM [D7, WinXP]
Есть новые Нет новых   [134435   +34][b:0][p:0]