Цитата:
Сообщение от 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
Первая - для обычных клавиш, вторая - для мультимедийных.