hid_device: add hid_remote_wake attribute to API

This commit is contained in:
Milanka Ringwald 2020-11-27 17:11:09 +01:00 committed by Matthias Ringwald
parent f46aa6e163
commit 1ad99f3bd3
6 changed files with 24 additions and 8 deletions

View File

@ -186,7 +186,6 @@ static enum {
APP_CONNECTED
} app_state = APP_BOOTING;
// HID Keyboard lookup
static int lookup_keycode(uint8_t character, const uint8_t * table, int size, uint8_t * keycode){
int i;
@ -403,8 +402,15 @@ int btstack_main(int argc, const char * argv[]){
// SDP Server
sdp_init();
memset(hid_service_buffer, 0, sizeof(hid_service_buffer));
uint8_t hid_virtual_cable = 0;
uint8_t hid_remote_wake = 1;
uint8_t hid_reconnect_initiate = 1;
// hid sevice subclass 2540 Keyboard, hid counntry code 33 US, hid virtual cable off, hid reconnect initiate off, hid boot device off
hid_create_sdp_record(hid_service_buffer, 0x10001, 0x2540, 33, 0, 0, hid_boot_device, hid_descriptor_keyboard_boot_mode, sizeof(hid_descriptor_keyboard_boot_mode), hid_device_name);
hid_create_sdp_record(hid_service_buffer, 0x10001, 0x2540, 33,
hid_virtual_cable, hid_remote_wake, hid_reconnect_initiate,
hid_boot_device, hid_descriptor_keyboard_boot_mode, sizeof(hid_descriptor_keyboard_boot_mode), hid_device_name);
printf("HID service record size: %u\n", de_get_len( hid_service_buffer));
sdp_register_service(hid_service_buffer);

View File

@ -302,8 +302,15 @@ int btstack_main(int argc, const char * argv[]){
// SDP Server
sdp_init();
memset(hid_service_buffer, 0, sizeof(hid_service_buffer));
uint8_t hid_virtual_cable = 0;
uint8_t hid_remote_wake = 1;
uint8_t hid_reconnect_initiate = 1;
// hid sevice subclass 2540 Keyboard, hid counntry code 33 US, hid virtual cable off, hid reconnect initiate off, hid boot device off
hid_create_sdp_record(hid_service_buffer, 0x10001, 0x2540, 33, 0, 0, hid_boot_device, hid_descriptor_mouse_boot_mode, sizeof(hid_descriptor_mouse_boot_mode), hid_device_name);
hid_create_sdp_record(hid_service_buffer, 0x10001, 0x2540, 33,
hid_virtual_cable, hid_remote_wake, hid_reconnect_initiate,
hid_boot_device, hid_descriptor_mouse_boot_mode, sizeof(hid_descriptor_mouse_boot_mode), hid_device_name);
printf("SDP service record size: %u\n", de_get_len( hid_service_buffer));
sdp_register_service(hid_service_buffer);

View File

@ -161,6 +161,7 @@ void hid_create_sdp_record(
uint16_t hid_device_subclass,
uint8_t hid_country_code,
uint8_t hid_virtual_cable,
uint8_t hid_remote_wake,
uint8_t hid_reconnect_initiate,
uint8_t hid_boot_device,
const uint8_t * descriptor, uint16_t descriptor_size,
@ -289,7 +290,6 @@ void hid_create_sdp_record(
}
de_pop_sequence(service, attribute);
uint8_t hid_remote_wake = 1;
de_add_number(service, DE_UINT, DE_SIZE_16, BLUETOOTH_ATTRIBUTE_HID_REMOTE_WAKE);
de_add_number(service, DE_BOOL, DE_SIZE_8, hid_remote_wake);

View File

@ -71,6 +71,7 @@ void hid_create_sdp_record(
uint16_t hid_device_subclass,
uint8_t hid_country_code,
uint8_t hid_virtual_cable,
uint8_t hid_remote_wake,
uint8_t hid_reconnect_initiate,
uint8_t hid_boot_device,
const uint8_t * hid_descriptor,

View File

@ -490,12 +490,14 @@ int btstack_main(int argc, const char * argv[]){
sdp_init();
memset(hid_service_buffer, 0, sizeof(hid_service_buffer));
uint8_t hid_virtual_cable = 0;
uint8_t hid_remote_wake = 1;
uint8_t hid_reconnect_initiate = 1;
uint8_t hid_virtual_cable = 1;
// hid sevice subclass 2540 Keyboard, hid counntry code 33 US, hid virtual cable on, hid reconnect initiate on, hid boot device off
hid_create_sdp_record(hid_service_buffer, 0x10001, 0x2540, 33,
hid_virtual_cable, hid_reconnect_initiate, hid_boot_device,
hid_descriptor_keyboard_boot_mode, sizeof(hid_descriptor_keyboard_boot_mode), hid_device_name);
hid_virtual_cable, hid_remote_wake, hid_reconnect_initiate,
hid_boot_device, hid_descriptor_keyboard_boot_mode, sizeof(hid_descriptor_keyboard_boot_mode), hid_device_name);
printf("HID service record size: %u\n", de_get_len( hid_service_buffer));
sdp_register_service(hid_service_buffer);

View File

@ -217,7 +217,7 @@ TEST(SDPRecordBuilder, HID_DEVICE){
name = "";
descriptor_size = 0;
expected_len = hid_device_record_size(descriptor_size, name);
hid_create_sdp_record(service_buffer, 0, 0, 0, 0, 0, 0, NULL, descriptor_size, name);
hid_create_sdp_record(service_buffer, 0x0001, 0, 0, 0, 0, 0, 0, NULL, descriptor_size, name);
CHECK_EQUAL(de_get_len(service_buffer), expected_len);
}