HID scanner demo

Dependencies:   BLE_API WIFI_API_32kRAM nRF51822 mbed

BLE HID function in this demo is temporary working with Android phone ONLY. Will be fixed to support iOS device in next update.

Committer:
wgd8700
Date:
Fri Aug 14 09:37:24 2015 +0000
Revision:
2:be04a220392e
Parent:
0:b0fc0661c081
Update BLE_API, nRF51822, and mbed libs to sync throughout all sample code, work for 32KB RAM revision platform; Update main.cpp to add RF switch lock mechanism to prevent packet losses for BLE

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Marcomissyou 0:b0fc0661c081 1 #include "HIDService.h"
Marcomissyou 0:b0fc0661c081 2
Marcomissyou 0:b0fc0661c081 3 const uint8_t KeyboardReportMap[] =
Marcomissyou 0:b0fc0661c081 4 { 0x05, 0x01, // Usage Page (Generic Desktop)
Marcomissyou 0:b0fc0661c081 5 0x09, 0x06, // Usage (Keyboard)
Marcomissyou 0:b0fc0661c081 6 0xA1, 0x01, // Collection (Application)
Marcomissyou 0:b0fc0661c081 7 0x05, 0x07, // Usage Page (Key Codes)
Marcomissyou 0:b0fc0661c081 8 0x19, 0xe0, // Usage Minimum (224)
Marcomissyou 0:b0fc0661c081 9 0x29, 0xe7, // Usage Maximum (231)
Marcomissyou 0:b0fc0661c081 10 0x15, 0x00, // Logicagl Minimum (0)
Marcomissyou 0:b0fc0661c081 11 0x25, 0x01, // Logical Maximum (1)
Marcomissyou 0:b0fc0661c081 12 0x75, 0x01, // Report Size (1)
Marcomissyou 0:b0fc0661c081 13 0x95, 0x08, // Report Count (8)
Marcomissyou 0:b0fc0661c081 14 0x81, 0x02, // Input (Data, Variable, Absolute)
Marcomissyou 0:b0fc0661c081 15
Marcomissyou 0:b0fc0661c081 16 0x95, 0x01, // Report Count (1)
Marcomissyou 0:b0fc0661c081 17 0x75, 0x08, // Report Size (8)
Marcomissyou 0:b0fc0661c081 18 0x81, 0x01, // Input (Constant) reserved byte(1)
Marcomissyou 0:b0fc0661c081 19
Marcomissyou 0:b0fc0661c081 20 0x95, 0x05, // Report Count (5)
Marcomissyou 0:b0fc0661c081 21 0x75, 0x01, // Report Size (1)
Marcomissyou 0:b0fc0661c081 22 0x05, 0x08, // Usage Page (Page# for LEDs)
Marcomissyou 0:b0fc0661c081 23 0x19, 0x01, // Usage Minimum (1)
Marcomissyou 0:b0fc0661c081 24 0x29, 0x05, // Usage Maximum (5)
Marcomissyou 0:b0fc0661c081 25 0x91, 0x02, // Output (Data, Variable, Absolute), Led report
Marcomissyou 0:b0fc0661c081 26 0x95, 0x01, // Report Count (1)
Marcomissyou 0:b0fc0661c081 27 0x75, 0x03, // Report Size (3)
Marcomissyou 0:b0fc0661c081 28 0x91, 0x01, // Output (Data, Variable, Absolute), Led report padding
Marcomissyou 0:b0fc0661c081 29
Marcomissyou 0:b0fc0661c081 30 0x95, 0x06, // Report Count (6)
Marcomissyou 0:b0fc0661c081 31 0x75, 0x08, // Report Size (8)
Marcomissyou 0:b0fc0661c081 32 0x15, 0x00, // Logical Minimum (0)
Marcomissyou 0:b0fc0661c081 33 0x25, 0x65, // Logical Maximum (101)
Marcomissyou 0:b0fc0661c081 34 0x05, 0x07, // Usage Page (Key codes)
Marcomissyou 0:b0fc0661c081 35 0x19, 0x00, // Usage Minimum (0)
Marcomissyou 0:b0fc0661c081 36 0x29, 0x65, // Usage Maximum (101)
Marcomissyou 0:b0fc0661c081 37 0x81, 0x00, // Input (Data, Array) Key array(6 bytes)
Marcomissyou 0:b0fc0661c081 38
Marcomissyou 0:b0fc0661c081 39 0x09, 0x05, // Usage (Vendor Defined)
Marcomissyou 0:b0fc0661c081 40 0x15, 0x00, // Logical Minimum (0)
Marcomissyou 0:b0fc0661c081 41 0x26, 0xFF, 0x00, // Logical Maximum (255)
Marcomissyou 0:b0fc0661c081 42 0x75, 0x08, // Report Count (2)
Marcomissyou 0:b0fc0661c081 43 0x95, 0x02, // Report Size (8 bit)
Marcomissyou 0:b0fc0661c081 44 0xB1, 0x02, // Feature (Data, Variable, Absolute)
Marcomissyou 0:b0fc0661c081 45 0xC0 // End Collection (Application)
Marcomissyou 0:b0fc0661c081 46 };