PCCar.ru - Ваш автомобильный компьютер

PCCar.ru - Ваш автомобильный компьютер (http://pccar.ru/index.php)
-   Общение с машиной (http://pccar.ru/forumdisplay.php?f=14)
-   -   BMW IBUS to USB Keyboard (http://pccar.ru/showthread.php?t=18794)

zyxel812 14.03.2013 21:34

Alex_St, а можно ли оставить только одну коллекцию, дополнив её
Код:

0x05, 0x0c, // USAGE_PAGE (Consumer Devices)
0x19, 0x00, // USAGE_MINIMUM (Unassigned)
0x2a, 0x08, 0x01, // USAGE_MAXIMUM (Police Alarm)
0x15, 0x00, // LOGICAL_MINIMUM (0)
0x26, 0x08, 0x01, // LOGICAL_MAXIMUM (264)
0x95, 0x02, // REPORT_COUNT (2)
0x75, 0x08, // REPORT_SIZE (8)
0x81, 0x00, // INPUT (Data,Ary,Abs)

,
т.е. в одном репорте в начале буду данные о кнопках из обоих страниц? Или это не прокатит?

Alex_St 14.03.2013 22:04

Нет, не прокатит.
Чуть позже отвечу на предыдущие вопросы.

zyxel812 15.03.2013 00:17

Кажется, истина уже где-то рядом :)
главное, понял в какую сторону копать,
изучаю пример KeyboardMouseMultiReport из lufa.

Alex_St 15.03.2013 01:15

zyxel812
Истина таки рядом. Вроде все правильно. Единственное - я не понял зачем там паддинг в виде констант и зачем в таком устройстве леды.. Я бы лишнее убрал.
А в остальном - гуд.
И еще я себе добавил такую коллекцию:
Код:

  0x06, 0x00, 0xff,              // USAGE_PAGE (Vendor Defined Page 1)
  0x09, 0x01,                    // USAGE (Vendor Usage 1)
  0xa1, 0x01,                    // COLLECTION (Application)
  0x85, 0x03,                    //  REPORT_ID (3)
  0x19, 0x00,                    //  USAGE_MINIMUM (Undefined)
  0x29, 0xff,                    //  USAGE_MAXIMUM (Vendor Usage 255)
  0x15, 0x00,                    //  LOGICAL_MINIMUM (0)
  0x26, 0xff, 0x00,              //  LOGICAL_MAXIMUM (255)
  0x75, 0x08,                    //  REPORT_SIZE (8)
  0x95, 0x07,                    //  REPORT_COUNT (8)
  0x91, 0x00,                    //  OUTPUT (Data,Ary,Abs)
  0x19, 0x00,                    //  USAGE_MINIMUM (Undefined)
  0x29, 0xff,                    //  USAGE_MAXIMUM (Vendor Usage 255)
  0x15, 0x00,                    //  LOGICAL_MINIMUM (0)
  0x26, 0xff, 0x00,              //  LOGICAL_MAXIMUM (255)
  0x75, 0x08,                    //  REPORT_SIZE (8)
  0x95, 0x07,                    //  REPORT_COUNT (8)
  0x81, 0x00,                    //  INPUT (Data,Ary,Abs)
  0xc0,                          // END_COLLECTION

Через такой репорт я могу посылать данные туда и обратно программой-конфигуратором для записи/чтения еепром.

п.с. я пользую v-usb.

zyxel812 15.03.2013 01:33

Это всё было из демо-примера, оставил как есть. По ледам определяю, что устройство живо, значение capslock вывел на один из светодиодиков на моей плате, жму соответствующую кнопку на обычной клаве и смотрю, как он загорается и тухнет :)
Спасибо большое, Alex_ST. Благодаря твоим разъяснениям у меня таки получилось передать нажатия клавиш со страницы 0х0С. Одним из следующих шагов будет добавление возможности конфигурирования.

Alex_St 15.03.2013 01:53

Ура! Я очень рад! Удачи в продолжении!
И не забудь возможность конфигурирования ;)

zyxel812 24.03.2013 14:19

Всё почти готово, и прошивка, и конфигуратор. Вот только затык случился, весь мозг уже сломал, в моем составном устройстве работает либо виртуальный последовательный порт, либо клавиатура. Т.е., когда устройство включаешь, к нему можно подключиться через последовательный порт записать и считать конфигурацию. Потом, начинаю нажимать кнопки, сначала ни какой реакции, через несколько нажатий появляются заветные буковки, но устройство перестает отвечать по последовательному порту. При этом, вроде как оно данные по порту получает, а вот ответы не приходят.

awtoap 24.03.2013 15:06

Я в усб не особо соображаю, но смотри на конечные точки...то есть для клавы скажем 1 точка(только вывод), для виртуального порта 2,3 (прием/передача). Вероятно они у тебя перекрываются.

Кстати по дескриптору описанному Alex_st завел свою поделку почти сразу, за что спасибо.

zyxel812 24.03.2013 15:49

Посмотрел, не пересекаются.
Просматриваю сейчас весь свой код, но всё как будь-то бы чисто.

Alex_St 24.03.2013 16:21

Кинь финальный дескриптор - глянем ;-)


Часовой пояс GMT +4, время: 02:13.

Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot