Flexz 0 19 августа, 2009 Опубликовано 19 августа, 2009 · Жалоба Можно перебрать все компорты, кидая туда тестовый запрос и смотреть откуда придет ответ, так часто делают. Мне же больше понравился вариант - вообще отказаться от usbser и пр. и использовать libusb. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
head_sk 0 19 августа, 2009 Опубликовано 19 августа, 2009 · Жалоба Можно перебрать все компорты, кидая туда тестовый запрос и смотреть откуда придет ответ, так часто делают.Этим можно нарушить работу остальных устройств Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flexz 0 19 августа, 2009 Опубликовано 19 августа, 2009 · Жалоба А у вас много девайсов на компортах висит? я вот только с блютусом и переходниками usb-rs-XXX в последнее время встречаюсь, да еще старые программаторы. Но если хотите что б все красиво было, то прямая дорога в WMI, скачайте утилитку WMI Code Creator (она бесплатная) и в неймспейсе root\WMI ищите инфу по последовательным портам. Утилька сама поможет сгенерить код на C# Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
head_sk 0 19 августа, 2009 Опубликовано 19 августа, 2009 (изменено) · Жалоба А у вас много девайсов на компортах висит? я вот только с блютусом и переходниками usb-rs-XXX в последнее время встречаюсь, да еще старые программаторы.У меня нет, а у заказчиков много. Поразбираюсь с libusb. Кто с ней работал? Какие отзывы? Работа стабильная? "Синие экраны" не наблюдаются? И ещё один важный ньюанс: совместимость с Windows Vista и Windows 7? Изменено 19 августа, 2009 пользователем head_sk Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 19 августа, 2009 Опубликовано 19 августа, 2009 · Жалоба Не подскажите как программными средствами в винде определить что этот виртуальный ком-порт открыт именно этим устройством? Смотрите в реестре список и ищете в нем USBSER: HKLM\HARDWARE\DEVICEMAP\SERIALCOMM Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
head_sk 0 20 августа, 2009 Опубликовано 20 августа, 2009 · Жалоба А есть ли какой-то благоразумный выход, что устройство с USB коммерческое выпустить хочется, а VID покупать нет? Подскажите что стоит делать в таком случае? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rezident 0 20 августа, 2009 Опубликовано 20 августа, 2009 · Жалоба Подскажите что стоит делать в таком случае?Договориться и купить один или несколько PID у того, кто уже имеет собственный VID. Еще совсем недавно в Европе (ЕС) такое вовсю практиковалось. Естественно, что продавать свой продукт придется под маркой владельца VID. Потому, что официально перепродажа их запрещена соглашениями. Некоторые производители МК предоставляют свои VID/PID. Недавно интересовался, например, Microchip на основании заявки предоставляет свой VID и какой-то PID для выпуска установочной (пробной) партии устройств на МК (со встроенным USB) этой фирмы общим количеством не более 10 000 шт. См. по ссылке. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
head_sk 0 20 августа, 2009 Опубликовано 20 августа, 2009 · Жалоба А я слышал на этом форуме что многие VID выбирают что-то типа FFFF. Неужели нет номеров которым можно пользоваться всем? Пусть девайсы пересекуться, ничего страшного. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
piz2383 0 20 августа, 2009 Опубликовано 20 августа, 2009 · Жалоба Здравствуйте. Не подскажите в чем может быть загвоздка? Писал программу для драйвера от атмела. Функция отправки хосту работала идеально. Поменял драйвер на usbser.sys. Теперь первая отправка работает хорошо. А вот вторая уже не отправляется. Вот код отправки. unsigned int USB_Write(unsigned char* buffer, unsigned int size) { /***/ while((AT91C_BASE_UDP->UDP_CSR[2]&AT91C_UDP_TXPKTRDY) == AT91C_UDP_TXPKTRDY); while (size--) AT91C_BASE_UDP->UDP_FDR[2] = *buffer++; UDP_EP_SetFlag(AT91C_BASE_UDP, 2, AT91C_UDP_TXPKTRDY) return xSemaphoreTake(TXSemaphore, 5); } Во время второй отправки не срабатывает прерывание AT91C_UDP_TXCOMP. А во время третьей отправки код зависает на строчке с пометкой /***/ В чем может быть проблема? Что в коде не так? Почему с атмеловским драйвером работает а с usbser нет? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rezident 0 21 августа, 2009 Опубликовано 21 августа, 2009 · Жалоба А я слышал на этом форуме что многие VID выбирают что-то типа FFFF. Неужели нет номеров которым можно пользоваться всем?Для отладки вы можете пользоваться любыми вам подходящими VID/PID (естественно которые не совпадают с уже имеющимися в вашей системе), а вот для производства готового устройства - нет. Не думаете же вы, что консорциумы типа USB-IF полные лохи организовывают? :) Пусть девайсы пересекуться, ничего страшного.Как раз наоборот, это и есть самое "страшное". Когда ОС, определив устройство неправильно, начнет "подсовывать" ему совершенно другой драйвер. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться