Class BLEHIDDevice

BLEHIDDevice Class

Description

A class used for creating and managing HID over GATT Profile (HOGP) services.

Syntax
class BLEHIDDevice

Members

Public Constructors

The public constructor should not be used as this class is intended to be a singleton class. Access member functions using the object instance named BLEHIDDev.

Public Methods

BLEHIDDevice::init

Initialize the HID Device Profile by creating the required services

BLEHIDD evice::setNumOutputReport

Configure the number of HID output reports

BLEHID Device::setNumInputReport

Configure the number of HID input reports

B LEHIDDevice::setReportMap

Configure the HID report map

BLEHIDDevice::inputReport

Send a HID input report

BLEHIDDevice ::setOutputReportCallback

Set a user callback function for receiving HID output reports

BLEHIDD evice::bootKeyboardReport

Send a HID boot keyboard input report

BLEHIDDevice::setHidInfo

Set HID info of the HID service

B LEHIDDevice::setBattLevel

Set battery level info of the Battery service

BLEHIDDevice::setPNPInfo

Set PNP information of the Device Information service

BLEHIDDevi ce::setManufacturerString

Set manufacturer information of the Device Information service

BLE HIDDevice::setModelString

Set model information of the Device Information service

BLEHIDDevice::hidService

Get reference to HID service

BLE HIDDevice::devInfoService

Get reference to Device Information service

BLEHIDDevice::battService

Get reference to Battery service

BLEHIDDevice::init

Description
Initialize the HID Device profile by creating the required services.
Syntax
void init(void);
Parameters
The function requires no input parameter.
Returns
The function returns nothing.
Example Code
Example: BLEHIDGamepad
Notes and Warnings
The HID Device object should be initialized before any HID reports can be sent.

BLEHIDDevice::setNumOutputReport

Description
Configure the number of HID output reports.
Syntax
void setNumOutputReport (uint8_t numOutputReports);
Parameters
numOutputReports: number of output reports
Returns
The function returns nothing.
Example Code
NA
Notes and Warnings
The number of output reports should be configured before BLEHIDDevice init() function is called.

BLEHIDDevice::setNumInputReport

Description
Configure the number of HID input reports.
Syntax
void setNumInputReport (uint8_t numInputReports);
Parameters
numInputReports: number of input reports
Returns
The function returns nothing.
Example Code
NA
Notes and Warnings
The number of input reports should be configured before BLEHIDDevice init() function is called.

BLEHIDDevice::setReportMap

Description
Configure the HID report map characteristic with a HID report descriptor.
Syntax
void setReportMap (uint8_t* report_map, uint16_t len);
Parameters
report_map: pointer to HID report descriptor
len: HID report descriptor length in bytes
Returns
The function returns nothing.
Example Code
Example: BLEHIDGamepad
Notes and Warnings
The HID report map characteristic can only be configured after BLEHIDDevice init() function is called.

BLEHIDDevice::inputReport

Description
Send a HID input report.
Syntax
void inputReport (uint8_t reportID, uint8_t* data, uint16_t len, uint8_t conn_id);
Parameters
reportID: HID report ID of input report
data: pointer to HID input report data to send
len: length of HID input report data in bytes
conn_id: connection ID of device to send HID report to
Returns
The function returns nothing.
Example Code
NA
Notes and Warnings
HID input reports can only be sent after BLEHIDDevice init() function has been called.

BLEHIDDevice::setOutputReportCallback

Description
Set a user callback function for receiving HID output report data.
Syntax
void setOutputReportCallback (uint8_t reportID, void (*fCallback) (BLECharacteristic* chr, uint8_t conn_id));
Parameters
reportID: HID report ID of output report to link callback function with
chr: BLECharacteristic class object containing received HID output report data
conn_id: connection ID of device which sent HID report data
Returns
The function returns nothing.
Example Code
NA
Notes and Warnings
Setting a user callback function for output reports can only occur after BLEHIDDevice init() function has been called.

BLEHIDDevice::bootKeyboardReport

Description
Send a HID boot keyboard input report.
Syntax
void bootKeyboardReport (uint8_t* data, uint16_t len, uint8_t conn_id);
Parameters
data: pointer to HID input report data to send
len: length of HID input report data in bytes
conn_id: connection ID of device to send HID report to
Returns
The function returns nothing.
Example Code
NA
Notes and Warnings
By default, the HID service Protocol Mode characteristic has boot mode disabled. To send boot keyboard input reports, the Protocol Mode characteristic needs to have boot mode enabled.

BLEHIDDevice::setHidInfo

Description
Set data of the HID Info characteristic of the HID service.
Syntax
void setHidInfo (uint16_t bcd, uint8_t country, uint8_t flags);
Parameters
bcd: 16-bit unsigned integer representing version number of base USB HID Specification implemented by HID Device
country: 8-bit integer identifying country HID Device hardware is localized for. Most hardware is not localized (value 0x00).
flags: Bit flags indicating remote-wake capability and advertising when bonded but not connected.
Returns
The function returns nothing.
Example Code
NA
Notes and Warnings
For detailed information on the characteristic, refer to Bluetooth SIG HID Service specifications.

BLEHIDDevice::setBattLevel

Description
Set battery level data of the Battery service.
Syntax
void setBattLevel (uint8_t level);
Parameters
level: battery level expressed as % of full charge
Returns
The function returns nothing.
Example Code
NA
Notes and Warnings
Battery level is set to 100% by default. For detailed information refer to Bluetooth SIG Battery service specifications.

BLEHIDDevice::setPNPInfo

Description
Set PNP data of the Device Information service.
Syntax
void setPNPInfo (uint8_t sig, uint16_t vid, uint16_t pid, uint16_t version);
Parameters
sig: The Vendor ID Source field designates which organization assigned the value used in the Vendor ID field value.
vid: The Vendor ID field is intended to uniquely identify the vendor of the device.
pid: The Product ID field is intended to distinguish between different products made by the vendor.
version: The Product Version field is a numeric expression identifying the device release number in Binary-Coded Decimal.
Returns
The function returns nothing.
Example Code
NA
Notes and Warnings
By default, sig and vid are configured to indicate Realtek as the vendor. For detailed information refer to Bluetooth SIG Device Information service specifications.

BLEHIDDevice::setManufacturerString

Description
Set manufacturer information of the Device Information service.
Syntax
void setManufacturerString (const char* manufacturer);
Parameters
manufacturer: pointer to character string containing manufacturer name info.
Returns
The function returns nothing.
Example Code
NA
Notes and Warnings
Manufacturer is set to “Realtek” by default. For detailed information refer to Bluetooth SIG Device Information service specifications.

BLEHIDDevice::setModelString

Description
Set model information of the Device Information service.
Syntax
void setModelString (const char* model);
Parameters
model: pointer to character string containing device model info.
Returns
The function returns nothing.
Example Code
NA
Notes and Warnings
Model is set to “Ameba_BLE_HID” by default. For detailed information refer to Bluetooth SIG Device Information service specifications.

BLEHIDDevice::hidService

Description
Get reference to HID service
Syntax
BLEService& hidService ();
Parameters
The function requires no input parameter.
Returns
The function returns a reference to the BLEService class object for the HID service.
Example Code
Example: BLEHIDMouse
Notes and Warnings
NA

BLEHIDDevice::devInfoService

Description
Get reference to Device Information service
Syntax
BLEService& devInfoService ();
Parameters
The function requires no input parameter.
Returns
The function returns a reference to the BLEService class object for the Device Information service.
Example Code
Example: BLEHIDMouse
Notes and Warnings
NA

BLEHIDDevice::battService

Description
Get reference to Battery service
Syntax
BLEService& battService ();
Parameters
The function requires no input parameter.
Returns
The function returns a reference to the BLEService class object for the Battery service.
Example Code
Example: BLEHIDMouse
Notes and Warnings
NA