Other Parts Discussed in Thread: LAUNCHXL-CC2640R2,
Hi Teams,
I had built up HID MOUSE codes with changed MOUSE hiReportMap[], MOUSE GATT Service and Characteristics
After compiler and download completed the result as followings,
a. OK! can connect to iPhone SE with OS 14.4
b. OK! can send KEYBOARD character, on LEFT key pressed, by calling HidEmuKbd_sendReport()
c. but FAILED! can NOT see MOUSE's cursor, on RIGHT key pressed, by calling HidEmuKbd_sendMouseReport()
Any suggest?
Notes: Working Tools Version based on followings,
(1) Hardware: LAUNCHXL_CC2640R2 Rev: 1.0
(2) CCS: V7.3.0
(3) SDK: V1.50.0.58
(4) XDCTOOLS: 3.50.3.33_core
(5) TI ARM Compiler: V16.9.4 LTS
(6) Project Folder: C:\ti\simplelink_cc2640r2_sdk_ble_example_pack_1_50_00_62\examples\rtos\CC2640R2_LAUNCHXL\bleapps\hid_emu_kbd
static CONST uint8 hidReportMap[] =
{
0x05, 0x01, // Usage Pg (Generic Desktop)
0x09, 0x06, // Usage (Keyboard)
0xA1, 0x01, // Collection: (Application)
0x85, 0x01, // REPORT_ID (1) // (24.02) added
//
0x05, 0x07, // Usage Pg (Key Codes)
0x19, 0xE0, // Usage Min (224)
0x29, 0xE7, // Usage Max (231)
0x15, 0x00, // Log Min (0)
0x25, 0x01, // Log Max (1)
//
// Modifier byte
0x75, 0x01, // Report Size (1)
0x95, 0x08, // Report Count (8)
0x81, 0x02, // Input: (Data, Variable, Absolute)
//
// Reserved byte
0x95, 0x01, // Report Count (1)
0x75, 0x08, // Report Size (8)
0x81, 0x01, // Input: (Constant)
//
// LED report
0x95, 0x05, // Report Count (5)
0x75, 0x01, // Report Size (1)
0x05, 0x08, // Usage Pg (LEDs)
0x19, 0x01, // Usage Min (1)
0x29, 0x05, // Usage Max (5)
0x91, 0x02, // Output: (Data, Variable, Absolute)
//
// LED report padding
0x95, 0x01, // Report Count (1)
0x75, 0x03, // Report Size (3)
0x91, 0x01, // Output: (Constant)
//
// Key arrays (6 bytes)
0x95, 0x06, // Report Count (6)
0x75, 0x08, // Report Size (8)
0x15, 0x00, // Log Min (0)
0x25, 0x65, // Log Max (101)
0x05, 0x07, // Usage Pg (Key Codes)
0x19, 0x00, // Usage Min (0)
0x29, 0x65, // Usage Max (101)
0x81, 0x00, // Input: (Data, Array)
//
0xC0, // End Collection
//* refer: e2e.ti.com/.../how-to-send-2byte-consumer-control-code-in-hidadvremote
//*************************************************
//* MOUSE
//* buf[0] := [b0] [b1] [b2] [b3 b4 b5 b6 b7] // BUTTON 1 2 3
//* buf[1] := [b0 b1 b2 b3 b4 b5 b6 b7] // X
//* buf[2] := [b0 b1 b2 b3 b4 b5 b6 b7] // Y
//* buf[3] := [b0 b1 b2 b3 b4 b5 b6 b7] // WHEEL
//* calling: buf[0..3] := {0x00, x, y, 0x00}
//*************************************************
0x05, 0x01, // Usage Page (Generic Desktop)
0x09, 0x02, // Usage (Mouse)
0xA1, 0x01, // Collection (Application)
0x85, 0x02, // Report Id (2)
0x09, 0x01, // Usage (Pointer)
0xA1, 0x00, // Collection (Physical)
0x05, 0x09, // Usage Page (Buttons)
0x19, 0x01, // Usage Minimum (01) - Button 1
0x29, 0x03, // Usage Maximum (03) - Button 3
0x15, 0x00, // Logical Minimum (0)
0x25, 0x01, // Logical Maximum (1)
0x75, 0x01, // Report Size (1)
0x95, 0x03, // Report Count (3)
0x81, 0x02, // Input (Data, Variable, Absolute) - Button states
0x75, 0x05, // Report Size (5)
0x95, 0x01, // Report Count (1)
0x81, 0x01, // Input (Constant) - Padding or Reserved bits
0x05, 0x01, // Usage Page (Generic Desktop)
0x09, 0x30, // Usage (X)
0x09, 0x31, // Usage (Y)
0x09, 0x38, // Usage (Wheel)
0x15, 0x81, // Logical Minimum (-127)
0x25, 0x7F, // Logical Maximum (127)
0x75, 0x08, // Report Size (8)
0x95, 0x03, // Report Count (3)
0x81, 0x06, // Input (Data, Variable, Relative) - X & Y coordinate
0xC0, // End Collection
0xC0 // End Collection
//===
};
Ragards,
Kevin