Показать сообщение отдельно
Старый 14.03.2013, 16:17   #23
Alex_St
Старший Пользователь
 
Аватар для Alex_St
 
Регистрация: 09.04.2008
Возраст: 44
Город: Одесса
Регион: Украина
Машина: Chevrolet Aveo-II LS 2008
Сообщений: 896
Alex_St is a name known to allAlex_St is a name known to allAlex_St is a name known to allAlex_St is a name known to allAlex_St is a name known to allAlex_St is a name known to all
По умолчанию

Цитата:
Сообщение от iGeophysix Посмотреть сообщение
в Ардуино есть библиотека Keyboard

и там есть просто метод: Keyboard.press(keyCode);

так вот какой keyCode я должен запихнуть?)))

128 для увеличения звука
129 для уменьшения
234 предыдущий трек
235 следующий трек
так?)
Я не понял - ты делаешь юсб клаву или компорт, а потом разбор данных на компе?
Если второе - то лучше так не делать.
Если первое - то тебе надо привязываться не к либе ардуйно, а к стандарту хид клавы. И в репорте передавать коды.

Для хид клавы описаны все сканкоды, которые не зависят от того что у тебя на другом конце - андроид или винда.

Вот сканкоды для мультимедиа клавы:
Код:
// PAGE 00xC:
#define KEY_NEXT_TRACK        0x00B5   /*  Scan Next Track      0C    00B5 */
#define KEY_PREVIOUS_TRACK    0x00B6   /*  Scan Previous Track  0C    00B6 */
#define KEY_STOP              0x00B7   /*  Stop                 0C    00B7 */
#define KEY_PLAY_PAUSE        0x00CD   /*  Play/ Pause          0C    00CD */
#define KEY_MUTE              0x00E2   /*  Mute                 0C    00E2 */
#define KEY_BASS_BOOST        0x00E5   /*  Bass Boost           0C    00E5 */
#define KEY_LOUDNESS          0x00E7   /*  Loudness             0C    00E7 */
#define KEY_VOLUME_UP         0x00E9   /*  Volume Up            0C    00E9 */
#define KEY_VOLUME_DOWN       0x00EA   /*  Volume Down          0C    00EA */
#define KEY_BASS_UP           0x0152   /*  Bass Up              0C    0152 */
#define KEY_BASS_DOWN         0x0153   /*  Bass Down            0C    0153 */
#define KEY_TREBLE_UP         0x0154   /*  Treble Up            0C    0154 */
#define KEY_TREBLE_DOWN       0x0155   /*  Treble Down          0C    0155 */
#define KEY_MEDIA_SELECT      0x0183   /*  Media Select         0C    0183 */
#define KEY_MAIL              0x018A   /*  Mail                 0C    018A */
#define KEY_CALCULATOR        0x0192   /*  Calculator           0C    0192 */
#define KEY_MY_COMPUTER       0x0194   /*  My Computer          0C    0194 */
#define KEY_WWW_SEARCH        0x0221   /*  WWW Search           0C    0221 */
#define KEY_WWW_HOME          0x0223   /*  WWW Home             0C    0223 */
#define KEY_WWW_BACK          0x0224   /*  WWW Back             0C    0224 */
#define KEY_WWW_FORWARD       0x0225   /*  WWW Forward          0C    0225 */
#define KEY_WWW_STOP          0x0226   /*  WWW Stop             0C    0226 */
#define KEY_WWW_REFRESH       0x0227   /*  WWW Refresh          0C    0227 */
#define KEY_WWW_FAVORITES     0x022A   /*  WWW Favorites        0C    022A */
Репорт должен быть настроен для Consumer Devices (PAGE 0x0C).

А для обычных кнопок репорт должен быть настроен на обычную клаву (0x07)
Я у себя сделал две коллекции в одном дескрипторе:
Код:
   0x05, 0x01,                    // USAGE_PAGE (Generic Desktop)
   0x09, 0x06,                    // USAGE (Keyboard)
   0xa1, 0x01,                    // COLLECTION (Application)
   0x85, 0x01,                    //   REPORT_ID (1)
   0x05, 0x07,                    //   USAGE_PAGE (Keyboard)
   0x19, 0xe0,                    //   USAGE_MINIMUM (Keyboard LeftControl)
   0x29, 0xe7,                    //   USAGE_MAXIMUM (Keyboard Right GUI)
   0x15, 0x00,                    //   LOGICAL_MINIMUM (0)
   0x25, 0x01,                    //   LOGICAL_MAXIMUM (1)
   0x75, 0x01,                    //   REPORT_SIZE (1)
   0x95, 0x08,                    //   REPORT_COUNT (8)
   0x81, 0x02,                    //   INPUT (Data,Var,Abs)
   0x05, 0x07,                    //   USAGE_PAGE (Keyboard)
   0x95, 0x01,                    //   REPORT_COUNT (1)
   0x75, 0x08,                    //   REPORT_SIZE (8)
   0x25, 0x65,                    //   LOGICAL_MAXIMUM (101)
   0x19, 0x00,                    //   USAGE_MINIMUM (Reserved (no event indicated))
   0x29, 0x65,                    //   USAGE_MAXIMUM (Keyboard Application)
   0x81, 0x00,                    //   INPUT (Data,Ary,Abs)
   0xc0,                          // END_COLLECTION
   0x05, 0x0c,                    // USAGE_PAGE (Consumer Devices)
   0x09, 0x01,                    // USAGE (Consumer Control)
   0xa1, 0x01,                    // COLLECTION (Application)
   0x85, 0x02,                    //   REPORT_ID (2)
   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)
   0xc0,                          // END_COLLECTION
Первая - для обычных клавиш, вторая - для мультимедийных.
__________________
Мой журнал: http://www.pccar.ru/showthread.php?p=79335
Alex_St вне форума   Ответить с цитированием