USB - Полный мануал

Тема в разделе "WASM.ELECTRONICS", создана пользователем n0wheremany, 4 фев 2006.

  1. n0wheremany

    n0wheremany New Member

    Публикаций:
    0
    Регистрация:
    4 фев 2006
    Сообщения:
    6
    Адрес:
    Россия
    Здрасте.

    Мне посоветовали задать на ваш форум вопрос про USB-девайс.



    Такой вопрос: Я использую SetupApi для получения данных об устройстве. Тама есть функция SetupDiGetDeviceRegistryProperty, которая получает из реестра данные об устройстве. Наверно большинство я знаю ($00000000-$0000001F), но мне надо узнать Порт устройства. Если залесть в реестр то там в "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB" есть список устройств, мне надо узнать допустим здесь "..\Vid_...\5&17b9a840&0&1\Device Parameters" PortName. В моём случае это СОМ порт, возможны и другие, но это мне не важно.

    У кого есть какие идеи.
     
  2. yalex

    yalex New Member

    Публикаций:
    0
    Регистрация:
    1 июн 2004
    Сообщения:
    13
    Что-то не понял, так СОМ порт или USB. СОМ порт имеет определённый номер для чтения-записи. Через СОМ порт работают на прямую (или через функции работы с портом или файлом), а USB имеет свой набор функций для работы с устройством и массив подключённых устройств. Там же можно узнать, то ли устройство подключено.



    Ссылки:

    http://www.usb.org/

    http://www.lvr.com/usb.htm

    +Статьи в osr.com
     
  3. n0wheremany

    n0wheremany New Member

    Публикаций:
    0
    Регистрация:
    4 фев 2006
    Сообщения:
    6
    Адрес:
    Россия
    От USB я беру только имя файла, а далее работаю как с COM.

    Устройство - Мобила.
     
  4. yalex

    yalex New Member

    Публикаций:
    0
    Регистрация:
    1 июн 2004
    Сообщения:
    13
    Тогда нужно дизасемить уже существующий драйвер и посмотреть как он работает. Такие есть. USB-VirtualCOM.
     
  5. n0wheremany

    n0wheremany New Member

    Публикаций:
    0
    Регистрация:
    4 фев 2006
    Сообщения:
    6
    Адрес:
    Россия
    Да не надо мне ничего Дизамбелировать. Как мне узнать порт на котором сидит модем. USB я знаю. Как мне поймать COM?
     
  6. yalex

    yalex New Member

    Публикаций:
    0
    Регистрация:
    1 июн 2004
    Сообщения:
    13
    Опросить соответствующий порт и если лампочки на модеме замигают, значит это он.
     
  7. n0wheremany

    n0wheremany New Member

    Публикаций:
    0
    Регистрация:
    4 фев 2006
    Сообщения:
    6
    Адрес:
    Россия
    Вопрос стоит так:

    Как узнать имя порта (DOS) по NT Имени.



    А не про лампочки...
     
  8. NoMD

    NoMD New Member

    Публикаций:
    0
    Регистрация:
    25 дек 2004
    Сообщения:
    18
    Адрес:
    Russia
    Я так делал (не с усб правда, но оно вобщем как помню тоже находилось как COM3 )



    char *buffer1,*buffer2,*buffer3;

    .........

    SetupDiGetDeviceRegistryProperty(hDevInfo,&DevInfoData,SPDRP_DRIVER,0,(PBYTE)buffer,256,0)



    lstrcpy(buffer2,"SYSTEM\\CurrentControlSet\\Control\\Class\\"); lstrcat(buffer2,buffer);



    RegOpenKeyEx(HKEY_LOCAL_MACHINE,buffer2,0,KEY_QUERY_VALUE,&hKey);



    if(RegQueryValueEx(hKey,"AttachedTo",0,0,(LPBYTE)buffer3,(DWORD*)&i)==ERROR_SUCCESS){

    здесь в buffer3 будет имя порта, по которому TAPI нашёл модем.

    }



    P.S. А если верить TAPI не катит, то думаю единственный верный способ будет: попорядочку всем портам слать какой-нибудь запрос (типа ATI3) и сравнивать ответ с нужным. Но тут скорей всего можно наткнуться на неприятности.
     
  9. n0wheremany

    n0wheremany New Member

    Публикаций:
    0
    Регистрация:
    4 фев 2006
    Сообщения:
    6
    Адрес:
    Россия
    P.S. А если верить TAPI не катит, то думаю единственный верный способ будет: попорядочку всем портам слать какой-нибудь запрос (типа ATI3) и сравнивать ответ с нужным. Но тут скорей всего можно наткнуться на неприятности.



    Это глупо... ошибок много будет...



    SetupDiGetDeviceRegistryProperty - не катит...
     
  10. kelz

    kelz New Member

    Публикаций:
    0
    Регистрация:
    16 мар 2006
    Сообщения:
    13
    Адрес:
    Армавир
    Если я правильно понял, есть USB устройство (мобила) и нужно его read/write делать? Если так, то могу куском исходника помочь, который имя девайса определяет и потом его в CreateFile ставит. После этого можно его читать/писать как обычный ком-порт (и вообще как обычный файл).