Beware that this post is related to an SDK in maintenance mode
More Info: Consider nRF Connect SDK for new designs
This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

why HID touch device can works on android but can't work on IOS?nRF52832 ,ble_app_hids_keyboard example,SDK 13.0.0,s132

hi,

I use 52832 to implement the HID touch device,It can works on android but can't works on IOS?why

//my report descritor
	static uint8_t report_map_data[] =
	{   
		///µÚ1¸öµã
		0x05, 0x0d, // USAGE_PAGE (Digitizers) ///global item
		0x09, 0x04, // USAGE (Touch Screen) ///local item
		0xa1, 0x01, // COLLECTION (Application) ///main item
		
		0x85, 0x01, // REPORT_ID (Touch) ///local item             ///report id  ///data[0]
		
		0x09, 0x22, // USAGE (Finger)   ///local item              ???
		0xa1, 0x02, // COLLECTION (Logical) ///main item
		0x09, 0x42, // USAGE (Tip Switch) ///local item  tip switch   ???
		0x15, 0x00, // LOGICAL_MINIMUM (0) ///global item
		0x25, 0x01, // LOGICAL_MAXIMUM (1) ///global  item
		0x75, 0x01, // REPORT_SIZE (1) ///global  item
		0x95, 0x01, // REPORT_COUNT (1) ///global  item
		0x81, 0x02, // INPUT (Data,Var,Abs) ///main  item   ///data[1]---bit1
		
		0x09, 0x32, // USAGE (In Range) ///local item
		0x81, 0x02, // INPUT (Data,Var,Abs) ///main  item  ///data[1]---bit2
		
		0x95, 0x06, // REPORT_COUNT (6)  ///global  item
		0x81, 0x03, // INPUT (Cnst,Ary,Abs) ///main  item ///data[1]---bit7~bit3
		0x75, 0x08, // REPORT_SIZE (8)  ///global   item
		0x09, 0x51, // USAGE (Contact Identifier) ///local  item 
		0x95, 0x01, // REPORT_COUNT (1) ///local  item
		0x81, 0x02, // INPUT (Data,Var,Abs)  ///main item      ///data[2]
		
		0x05, 0x01, // USAGE_PAGE (Generic Desktop)  ///global  item
		0x15, 0x00,        //LOGICAL_MINIMUM(0)  ///global  item             /// .1
		0x26, 0xff, 0x0f, // LOGICAL_MAXIMUM (4095)  ///global  item         /// .2 
		0x75, 0x10, // REPORT_SIZE (16)  ///local  item
		0x55, 0x00, // UNIT_EXPONENT (0)  ///local  item
		0x65, 0x00, // UNIT (None) ///local  item
		0x09, 0x30, // USAGE (X)  ///local  item
		0x35, 0x00, // PHYSICAL_MINIMUM (0)  ///global  item
		0x46, 0xff, 0x0f,///18.11.30  // PHYSICAL_MAXIMUM (4095) ///global item       ///1080///ĬÈÏÊúÆÁx///¶ÔÓ¦ºáÆÁy
		0x81, 0x02, // INPUT (Data,Var,Abs) ///main item   ///data[3] data[4]
		0x09, 0x31, // USAGE (Y)  ///local  item  
		0x26, 0xff, 0x0f,///18.11.30                                                ///2244///2244///ĬÈÏÊúÆÁy///¶ÔÓ¦ºáÆÁx
		0x46, 0xff, 0x0f,///18.11.30
		0x81, 0x02, // INPUT (Data,Var,Abs) ///main  item  ///data[5]  data[6]
		0xc0,            // END_COLLECTION  ///main item
	}
//send the report to app	
void AndroidHid_Notify_Key(ble_hids_t m_hids)
{
	ipRepVal[1] = TOUCH_DOWN; // down
	
	if (abs_hor < 10000)
	{
		abs_hor += 20;
		abs_ver += 20;
	} 
	else 
	{
		ipRepVal[1] = TOUCH_UP; // up
	}
	
	ipRepVal[0]=HID_TOUCH_RPT_ID;
	ipRepVal[2]=0x00;
	
	ipRepVal[3] = abs_hor%256;
	ipRepVal[4] = abs_hor/256;
	ipRepVal[5] = abs_ver%256;
	ipRepVal[6] = abs_ver/256;

	if (ipRepVal[1] == TOUCH_UP)
	{
		abs_hor = 0;
		abs_ver = 0;
	}
	
	ble_hids_inp_rep_send(&m_hids, 0, 7, ipRepVal);		
}

Parents
  • Hi,

    Are you sure the Digitizer usage page is supported by iOS? As far as I can see it is not mentioned in the Accessory Interface specification.

  • i think it supports. 《MFi Accessory Interface Specification R18_NoRestriction》

    19.3.5.1 Digitizer Support (Touchscreen and Touchpad)
    A digitizer is a device that measures absolute spatial position, typically in two or more dimensions. CarPlay
    supports the following types of digitizers:
    19.3.5.1.1 Touchscreen
    A touchscreen is a digitizer with an integrated display that allows the use of a finger for direct interaction with
    a presented interface.

  • Table 19-45 Digitizer Support HID Usages
    Page ID Page Name Usage ID Usage Name Usage Type
    0x01 Generic 0x30 X Dynamic Value
    0x01 Generic 0x31 Y Dynamic Value
    0x0D Digitizer 0x04 Touch Screen Application Collection
    0x0D Digitizer 0x05 Touch Pad Application Collection
    0x0D Digitizer 0x22 Finger Logical Collection
    0x0D Digitizer 0x32 In Range Momentary Control
    0x0D Digitizer 0x33 Touch Momentary Control
    0x0D Digitizer 0x37 Data Valid Momentary Control
    0x0D Digitizer 0x38 Transducer Index Dynamic Value
    0x0D Digitizer 0x42 Tip Switch Momentary Control
    0x0D Digitizer 0x51 Contact Identifier Dynamic Value

Reply
  • Table 19-45 Digitizer Support HID Usages
    Page ID Page Name Usage ID Usage Name Usage Type
    0x01 Generic 0x30 X Dynamic Value
    0x01 Generic 0x31 Y Dynamic Value
    0x0D Digitizer 0x04 Touch Screen Application Collection
    0x0D Digitizer 0x05 Touch Pad Application Collection
    0x0D Digitizer 0x22 Finger Logical Collection
    0x0D Digitizer 0x32 In Range Momentary Control
    0x0D Digitizer 0x33 Touch Momentary Control
    0x0D Digitizer 0x37 Data Valid Momentary Control
    0x0D Digitizer 0x38 Transducer Index Dynamic Value
    0x0D Digitizer 0x42 Tip Switch Momentary Control
    0x0D Digitizer 0x51 Contact Identifier Dynamic Value

Children
Related