diff --git a/example/embedded/panu_demo.c b/example/embedded/panu_demo.c index 3535a1473..3c179416b 100644 --- a/example/embedded/panu_demo.c +++ b/example/embedded/panu_demo.c @@ -326,17 +326,17 @@ static void handle_sdp_client_query_result(uint8_t packet_type, uint8_t *packet, switch (packet[0]){ case SDP_QUERY_ATTRIBUTE_VALUE: // Handle new SDP record - if (sdp_query_attribute_value_event_get_record_id(packet) != record_id) { - record_id = sdp_query_attribute_value_event_get_record_id(packet); + if (sdp_query_attribute_byte_event_get_record_id(packet) != record_id) { + record_id = sdp_query_attribute_byte_event_get_record_id(packet); printf("SDP Record: Nr: %d\n", record_id); } - if (sdp_query_attribute_value_event_get_attribute_length(packet) <= attribute_value_buffer_size) { - attribute_value[sdp_query_attribute_value_event_get_data_offset(packet)] = sdp_query_attribute_value_event_get_data(packet); + if (sdp_query_attribute_byte_event_get_attribute_length(packet) <= attribute_value_buffer_size) { + attribute_value[sdp_query_attribute_byte_event_get_data_offset(packet)] = sdp_query_attribute_byte_event_get_data(packet); - if ((uint16_t)(sdp_query_attribute_value_event_get_data_offset(packet)+1) == sdp_query_attribute_value_event_get_attribute_length(packet)) { + if ((uint16_t)(sdp_query_attribute_byte_event_get_data_offset(packet)+1) == sdp_query_attribute_byte_event_get_attribute_length(packet)) { - switch(sdp_query_attribute_value_event_get_attribute_id(packet)) { + switch(sdp_query_attribute_byte_event_get_attribute_id(packet)) { case SDP_ServiceClassIDList: if (de_get_element_type(attribute_value) != DE_DES) break; for (des_iterator_init(&des_list_it, attribute_value); des_iterator_has_more(&des_list_it); des_iterator_next(&des_list_it)) { @@ -347,7 +347,7 @@ static void handle_sdp_client_query_result(uint8_t packet_type, uint8_t *packet, case SDP_PANU: case SDP_NAP: case SDP_GN: - printf("SDP Attribute 0x%04x: BNEP PAN protocol UUID: %04x\n", sdp_query_attribute_value_event_get_attribute_id(packet), uuid); + printf("SDP Attribute 0x%04x: BNEP PAN protocol UUID: %04x\n", sdp_query_attribute_byte_event_get_attribute_id(packet), uuid); bnep_remote_uuid = uuid; break; default: @@ -358,11 +358,11 @@ static void handle_sdp_client_query_result(uint8_t packet_type, uint8_t *packet, case 0x0100: case 0x0101: str = get_string_from_data_element(attribute_value); - printf("SDP Attribute: 0x%04x: %s\n", sdp_query_attribute_value_event_get_attribute_id(packet), str); + printf("SDP Attribute: 0x%04x: %s\n", sdp_query_attribute_byte_event_get_attribute_id(packet), str); free(str); break; case 0x0004: { - printf("SDP Attribute: 0x%04x\n", sdp_query_attribute_value_event_get_attribute_id(packet)); + printf("SDP Attribute: 0x%04x\n", sdp_query_attribute_byte_event_get_attribute_id(packet)); for (des_iterator_init(&des_list_it, attribute_value); des_iterator_has_more(&des_list_it); des_iterator_next(&des_list_it)) { uint8_t *des_element; @@ -404,7 +404,7 @@ static void handle_sdp_client_query_result(uint8_t packet_type, uint8_t *packet, } } } else { - fprintf(stderr, "SDP attribute value buffer size exceeded: available %d, required %d\n", attribute_value_buffer_size, sdp_query_attribute_value_event_get_attribute_length(packet)); + fprintf(stderr, "SDP attribute value buffer size exceeded: available %d, required %d\n", attribute_value_buffer_size, sdp_query_attribute_byte_event_get_attribute_length(packet)); } break; diff --git a/example/embedded/sdp_bnep_query.c b/example/embedded/sdp_bnep_query.c index 4c2f76bb2..5e5cc918a 100644 --- a/example/embedded/sdp_bnep_query.c +++ b/example/embedded/sdp_bnep_query.c @@ -169,22 +169,22 @@ static void handle_sdp_client_query_result(uint8_t packet_type, uint8_t *packet, switch (packet[0]){ case SDP_QUERY_ATTRIBUTE_VALUE: // handle new record - if (sdp_query_attribute_value_event_get_record_id(packet) != record_id){ - record_id = sdp_query_attribute_value_event_get_record_id(packet); + if (sdp_query_attribute_byte_event_get_record_id(packet) != record_id){ + record_id = sdp_query_attribute_byte_event_get_record_id(packet); printf("\n---\nRecord nr. %u\n", record_id); } - assertBuffer(sdp_query_attribute_value_event_get_attribute_length(packet)); + assertBuffer(sdp_query_attribute_byte_event_get_attribute_length(packet)); - attribute_value[sdp_query_attribute_value_event_get_data_offset(packet)] = sdp_query_attribute_value_event_get_data(packet); - if ((uint16_t)(sdp_query_attribute_value_event_get_data_offset(packet)+1) == sdp_query_attribute_value_event_get_attribute_length(packet)){ + attribute_value[sdp_query_attribute_byte_event_get_data_offset(packet)] = sdp_query_attribute_byte_event_get_data(packet); + if ((uint16_t)(sdp_query_attribute_byte_event_get_data_offset(packet)+1) == sdp_query_attribute_byte_event_get_attribute_length(packet)){ /* LISTING_RESUME */ /* @text The Service Class ID List is a Data Element Sequence (DES) of UUIDs. * The BNEP PAN protocol UUID is within this list. */ - switch(sdp_query_attribute_value_event_get_attribute_id(packet)){ + switch(sdp_query_attribute_byte_event_get_attribute_id(packet)){ // 0x0001 "Service Class ID List" case SDP_ServiceClassIDList: if (de_get_element_type(attribute_value) != DE_DES) break; @@ -196,7 +196,7 @@ static void handle_sdp_client_query_result(uint8_t packet_type, uint8_t *packet, case PANU_UUID: case NAP_UUID: case GN_UUID: - printf(" ** Attribute 0x%04x: BNEP PAN protocol UUID: %04x\n", sdp_query_attribute_value_event_get_attribute_id(packet), uuid); + printf(" ** Attribute 0x%04x: BNEP PAN protocol UUID: %04x\n", sdp_query_attribute_byte_event_get_attribute_id(packet), uuid); break; default: break; @@ -209,7 +209,7 @@ static void handle_sdp_client_query_result(uint8_t packet_type, uint8_t *packet, // 0x0101 "Service Description" case 0x0101: str = get_string_from_data_element(attribute_value); - printf(" ** Attribute 0x%04x: %s\n", sdp_query_attribute_value_event_get_attribute_id(packet), str); + printf(" ** Attribute 0x%04x: %s\n", sdp_query_attribute_byte_event_get_attribute_id(packet), str); free(str); break; @@ -220,7 +220,7 @@ static void handle_sdp_client_query_result(uint8_t packet_type, uint8_t *packet, * and another DES with the BNEP UUID and the the BNEP version. */ case SDP_ProtocolDescriptorList:{ - printf(" ** Attribute 0x%04x: ", sdp_query_attribute_value_event_get_attribute_id(packet)); + printf(" ** Attribute 0x%04x: ", sdp_query_attribute_byte_event_get_attribute_id(packet)); uint16_t l2cap_psm = 0; uint16_t bnep_version = 0; diff --git a/example/embedded/sdp_general_query.c b/example/embedded/sdp_general_query.c index e25bce9ee..5a5e40365 100644 --- a/example/embedded/sdp_general_query.c +++ b/example/embedded/sdp_general_query.c @@ -148,16 +148,16 @@ static void handle_sdp_client_query_result(uint8_t packet_type, uint8_t *packet, switch (packet[0]){ case SDP_QUERY_ATTRIBUTE_VALUE: // handle new record - if (sdp_query_attribute_value_event_get_record_id(packet) != record_id){ - record_id = sdp_query_attribute_value_event_get_record_id(packet); + if (sdp_query_attribute_byte_event_get_record_id(packet) != record_id){ + record_id = sdp_query_attribute_byte_event_get_record_id(packet); printf("\n---\nRecord nr. %u\n", record_id); } - assertBuffer(sdp_query_attribute_value_event_get_attribute_length(packet)); + assertBuffer(sdp_query_attribute_byte_event_get_attribute_length(packet)); - attribute_value[sdp_query_attribute_value_event_get_data_offset(packet)] = sdp_query_attribute_value_event_get_data(packet); - if ((uint16_t)(sdp_query_attribute_value_event_get_data_offset(packet)+1) == sdp_query_attribute_value_event_get_attribute_length(packet)){ - printf("Attribute 0x%04x: ", sdp_query_attribute_value_event_get_attribute_id(packet)); + attribute_value[sdp_query_attribute_byte_event_get_data_offset(packet)] = sdp_query_attribute_byte_event_get_data(packet); + if ((uint16_t)(sdp_query_attribute_byte_event_get_data_offset(packet)+1) == sdp_query_attribute_byte_event_get_attribute_length(packet)){ + printf("Attribute 0x%04x: ", sdp_query_attribute_byte_event_get_attribute_id(packet)); de_dump_data_element(attribute_value); } break; diff --git a/platform/daemon/daemon.c b/platform/daemon/daemon.c index a07cc1ac9..7069371c2 100644 --- a/platform/daemon/daemon.c +++ b/platform/daemon/daemon.c @@ -56,28 +56,27 @@ #include #include "btstack.h" +#include "btstack_client.h" +#include "btstack_debug.h" +#include "btstack_event.h" #include "btstack_linked_list.h" #include "btstack_run_loop.h" #include "btstack_run_loop_posix.h" -#include "hci_cmd.h" #include "btstack_version.h" - -#include "btstack_debug.h" -#include "hci.h" -#include "hci_dump.h" -#include "hci_transport.h" -#include "l2cap.h" #include "classic/remote_device_db.h" #include "classic/rfcomm.h" #include "classic/sdp.h" -#include "classic/sdp_parser.h" #include "classic/sdp_client.h" -#include "classic/sdp_query_util.h" +#include "classic/sdp_parser.h" #include "classic/sdp_query_rfcomm.h" -#include "socket_connection.h" +#include "classic/sdp_query_util.h" +#include "hci.h" +#include "hci_cmd.h" +#include "hci_dump.h" +#include "hci_transport.h" +#include "l2cap.h" #include "rfcomm_service_db.h" - -#include "btstack_client.h" +#include "socket_connection.h" #ifdef ENABLE_BLE #include "ble/gatt_client.h" @@ -1576,13 +1575,12 @@ static void rfcomm_packet_handler(uint8_t packet_type, uint16_t channel, uint8_t static void handle_sdp_rfcomm_service_result(uint8_t packet_type, uint8_t *packet, uint16_t size, void * context){ switch (packet[0]){ - case SDP_QUERY_RFCOMM_SERVICE: { - case SDP_QUERY_COMPLETE: { + case SDP_QUERY_RFCOMM_SERVICE: + case SDP_QUERY_COMPLETE: // already HCI Events, just forward them hci_dump_packet(HCI_EVENT_PACKET, 0, packet, size); socket_connection_send_packet(context, HCI_EVENT_PACKET, 0, packet, size); break; - } default: break; } @@ -1599,23 +1597,22 @@ static void handle_sdp_client_query_result(uint8_t packet_type, uint8_t *packet, int event_len; switch (packet[0]){ - case SDP_QUERY_ATTRIBUTE_VALUE: - sdp_client_assert_buffer(sdp_query_attribute_value_event_get_attribute_length(packet)); - attribute_value[sdp_query_attribute_value_event_get_data_offset(packet)] = sdp_query_attribute_value_event_get_data(packet); - if ((uint16_t)(sdp_query_attribute_value_event_get_data_offset(packet)+1) == sdp_query_attribute_value_event_get_attribute_length(packet)){ - hexdump(attribute_value, sdp_query_attribute_value_event_get_attribute_length(packet)); + case SDP_QUERY_ATTRIBUTE_BYTE: + sdp_client_assert_buffer(sdp_query_attribute_byte_event_get_attribute_length(packet)); + attribute_value[sdp_query_attribute_byte_event_get_data_offset(packet)] = sdp_query_attribute_byte_event_get_data(packet); + if ((uint16_t)(sdp_query_attribute_byte_event_get_data_offset(packet)+1) == sdp_query_attribute_byte_event_get_attribute_length(packet)){ + hexdump(attribute_value, sdp_query_attribute_byte_event_get_attribute_length(packet)); - int event_len = 1 + 3 * 2 + sdp_query_attribute_value_event_get_attribute_length(packet); + int event_len = 1 + 3 * 2 + sdp_query_attribute_byte_event_get_attribute_length(packet); uint8_t event[event_len]; event[0] = SDP_QUERY_ATTRIBUTE_VALUE; - bt_store_16(event, 1, sdp_query_attribute_value_event_get_record_id(packet)); - bt_store_16(event, 3, sdp_query_attribute_value_event_get_attribute_id(packet)); - bt_store_16(event, 5, (uint16_t)sdp_query_attribute_value_event_get_attribute_length(packet)); - memcpy(&event[7], attribute_value, sdp_query_attribute_value_event_get_attribute_length(packet)); + bt_store_16(event, 1, sdp_query_attribute_byte_event_get_record_id(packet)); + bt_store_16(event, 3, sdp_query_attribute_byte_event_get_attribute_id(packet)); + bt_store_16(event, 5, (uint16_t)sdp_query_attribute_byte_event_get_attribute_length(packet)); + memcpy(&event[7], attribute_value, sdp_query_attribute_byte_event_get_attribute_length(packet)); hci_dump_packet(SDP_CLIENT_PACKET, 0, event, event_len); socket_connection_send_packet(sdp_client_query_connection, SDP_CLIENT_PACKET, 0, event, event_len); } - break; case SDP_QUERY_COMPLETE: event_len = packet[1] + 2; diff --git a/src/btstack_defines.h b/src/btstack_defines.h index ea91b1361..821103346 100644 --- a/src/btstack_defines.h +++ b/src/btstack_defines.h @@ -417,8 +417,16 @@ * @param data_offset * @param data */ -#define SDP_QUERY_ATTRIBUTE_VALUE 0x93 +#define SDP_QUERY_ATTRIBUTE_BYTE 0x93 +/** + * @format 22LV + * @param record_id + * @param attribute_id + * @param attribute_length + * @param attribute_value + */ +#define SDP_QUERY_ATTRIBUTE_VALUE 0x94 /** * @format 224 @@ -427,7 +435,7 @@ * @param record_handle * @note Not provided by daemon, only used for internal testing */ -#define SDP_QUERY_SERVICE_RECORD_HANDLE 0x94 +#define SDP_QUERY_SERVICE_RECORD_HANDLE 0x95 /** * @format H1 diff --git a/src/btstack_event.h b/src/btstack_event.h index 7dbd8dfef..6a21e52c5 100644 --- a/src/btstack_event.h +++ b/src/btstack_event.h @@ -88,52 +88,52 @@ static inline const char * sdp_query_rfcomm_service_event_get_name(const uint8_t } /** - * @brief Get field record_id from event sdp_query_attribute_value_event + * @brief Get field record_id from event sdp_query_attribute_byte_event * @param Event packet * @return record_id * @note: btstack_type 2 */ -static inline uint16_t sdp_query_attribute_value_event_get_record_id(const uint8_t * event){ +static inline uint16_t sdp_query_attribute_byte_event_get_record_id(const uint8_t * event){ return READ_BT_16(event, 2); } /** - * @brief Get field attribute_id from event sdp_query_attribute_value_event + * @brief Get field attribute_id from event sdp_query_attribute_byte_event * @param Event packet * @return attribute_id * @note: btstack_type 2 */ -static inline uint16_t sdp_query_attribute_value_event_get_attribute_id(const uint8_t * event){ +static inline uint16_t sdp_query_attribute_byte_event_get_attribute_id(const uint8_t * event){ return READ_BT_16(event, 4); } /** - * @brief Get field attribute_length from event sdp_query_attribute_value_event + * @brief Get field attribute_length from event sdp_query_attribute_byte_event * @param Event packet * @return attribute_length * @note: btstack_type 2 */ -static inline uint16_t sdp_query_attribute_value_event_get_attribute_length(const uint8_t * event){ +static inline uint16_t sdp_query_attribute_byte_event_get_attribute_length(const uint8_t * event){ return READ_BT_16(event, 6); } /** - * @brief Get field data_offset from event sdp_query_attribute_value_event + * @brief Get field data_offset from event sdp_query_attribute_byte_event * @param Event packet * @return data_offset * @note: btstack_type 2 */ -static inline uint16_t sdp_query_attribute_value_event_get_data_offset(const uint8_t * event){ +static inline uint16_t sdp_query_attribute_byte_event_get_data_offset(const uint8_t * event){ return READ_BT_16(event, 8); } /** - * @brief Get field data from event sdp_query_attribute_value_event + * @brief Get field data from event sdp_query_attribute_byte_event * @param Event packet * @return data * @note: btstack_type 1 */ -static inline uint8_t sdp_query_attribute_value_event_get_data(const uint8_t * event){ +static inline uint8_t sdp_query_attribute_byte_event_get_data(const uint8_t * event){ return event[10]; } diff --git a/src/classic/sdp_query_rfcomm.c b/src/classic/sdp_query_rfcomm.c index d0837ec31..1a96ed077 100644 --- a/src/classic/sdp_query_rfcomm.c +++ b/src/classic/sdp_query_rfcomm.c @@ -270,20 +270,20 @@ static void handle_sdp_parser_event(uint8_t packet_type, uint8_t *packet, uint16 break; case SDP_QUERY_ATTRIBUTE_VALUE: // log_info("handle_sdp_parser_event [ AID, ALen, DOff, Data] : [%x, %u, %u] BYTE %02x", - // ve->attribute_id, sdp_query_attribute_value_event_get_attribute_length(packet), - // sdp_query_attribute_value_event_get_data_offset(packet), sdp_query_attribute_value_event_get_data(packet)); - switch (sdp_query_attribute_value_event_get_attribute_id(packet)){ + // ve->attribute_id, sdp_query_attribute_byte_event_get_attribute_length(packet), + // sdp_query_attribute_byte_event_get_data_offset(packet), sdp_query_attribute_byte_event_get_data(packet)); + switch (sdp_query_attribute_byte_event_get_attribute_id(packet)){ case SDP_ProtocolDescriptorList: // find rfcomm channel - handleProtocolDescriptorListData(sdp_query_attribute_value_event_get_attribute_length(packet), - sdp_query_attribute_value_event_get_data_offset(packet), - sdp_query_attribute_value_event_get_data(packet)); + handleProtocolDescriptorListData(sdp_query_attribute_byte_event_get_attribute_length(packet), + sdp_query_attribute_byte_event_get_data_offset(packet), + sdp_query_attribute_byte_event_get_data(packet)); break; case 0x0100: // get service name - handleServiceNameData(sdp_query_attribute_value_event_get_attribute_length(packet), - sdp_query_attribute_value_event_get_data_offset(packet), - sdp_query_attribute_value_event_get_data(packet)); + handleServiceNameData(sdp_query_attribute_byte_event_get_attribute_length(packet), + sdp_query_attribute_byte_event_get_data_offset(packet), + sdp_query_attribute_byte_event_get_data(packet)); break; default: // give up diff --git a/test/sdp_client/general_sdp_query.c b/test/sdp_client/general_sdp_query.c index 912cd621b..ee99151e9 100644 --- a/test/sdp_client/general_sdp_query.c +++ b/test/sdp_client/general_sdp_query.c @@ -118,27 +118,27 @@ static void test_attribute_value_event(const uint8_t * event){ CHECK_EQUAL(event[0], SDP_QUERY_ATTRIBUTE_VALUE); // record ids are sequential - if (sdp_query_attribute_value_event_get_record_id(event) != recordId){ + if (sdp_query_attribute_byte_event_get_record_id(event) != recordId){ recordId++; } - CHECK_EQUAL(sdp_query_attribute_value_event_get_record_id(event), recordId); + CHECK_EQUAL(sdp_query_attribute_byte_event_get_record_id(event), recordId); // is attribute value complete - if (sdp_query_attribute_value_event_get_attribute_id(event) != attributeId ){ + if (sdp_query_attribute_byte_event_get_attribute_id(event) != attributeId ){ if (attributeLength > 0){ CHECK_EQUAL(attributeLength, attributeOffset+1); } - attributeId = sdp_query_attribute_value_event_get_attribute_id(event); + attributeId = sdp_query_attribute_byte_event_get_attribute_id(event); attributeOffset = 0; } // count attribute value bytes - if (sdp_query_attribute_value_event_get_data_offset(event) != attributeOffset){ + if (sdp_query_attribute_byte_event_get_data_offset(event) != attributeOffset){ attributeOffset++; } - attributeLength = sdp_query_attribute_value_event_get_attribute_length(event); + attributeLength = sdp_query_attribute_byte_event_get_attribute_length(event); - CHECK_EQUAL(sdp_query_attribute_value_event_get_data_offset(event), attributeOffset); + CHECK_EQUAL(sdp_query_attribute_byte_event_get_data_offset(event), attributeOffset); } @@ -148,12 +148,12 @@ static void handle_sdp_parser_event(uint8_t packet_type, uint8_t *packet, uint16 test_attribute_value_event(packet); // handle new record - if (sdp_query_attribute_value_event_get_record_id(packet) != record_id){ - record_id = sdp_query_attribute_value_event_get_record_id(packet); + if (sdp_query_attribute_byte_event_get_record_id(packet) != record_id){ + record_id = sdp_query_attribute_byte_event_get_record_id(packet); } // buffer data - assertBuffer(sdp_query_attribute_value_event_get_attribute_length(packet)); - attribute_value[sdp_query_attribute_value_event_get_data_offset(packet)] = sdp_query_attribute_value_event_get_data(packet); + assertBuffer(sdp_query_attribute_byte_event_get_attribute_length(packet)); + attribute_value[sdp_query_attribute_byte_event_get_data_offset(packet)] = sdp_query_attribute_byte_event_get_data(packet); break; case SDP_QUERY_COMPLETE: diff --git a/test/sdp_client/service_attribute_search_query.c b/test/sdp_client/service_attribute_search_query.c index efa371e40..5bdbcf6e2 100644 --- a/test/sdp_client/service_attribute_search_query.c +++ b/test/sdp_client/service_attribute_search_query.c @@ -61,29 +61,29 @@ static void test_attribute_value_event(const uint8_t * event){ CHECK_EQUAL(event[0], SDP_QUERY_ATTRIBUTE_VALUE); // record ids are sequential - // printf("sdp_query_attribute_value_event_get_record_id(event) %d",sdp_query_attribute_value_event_get_record_id(event)); + // printf("sdp_query_attribute_byte_event_get_record_id(event) %d",sdp_query_attribute_byte_event_get_record_id(event)); - if (sdp_query_attribute_value_event_get_record_id(event) != recordId){ + if (sdp_query_attribute_byte_event_get_record_id(event) != recordId){ recordId++; } - CHECK_EQUAL(sdp_query_attribute_value_event_get_record_id(event), recordId); + CHECK_EQUAL(sdp_query_attribute_byte_event_get_record_id(event), recordId); // is attribute value complete - if (sdp_query_attribute_value_event_get_attribute_id(event) != attributeId ){ + if (sdp_query_attribute_byte_event_get_attribute_id(event) != attributeId ){ if (attributeLength > 0){ CHECK_EQUAL(attributeLength, attributeOffset+1); } - attributeId = sdp_query_attribute_value_event_get_attribute_id(event); + attributeId = sdp_query_attribute_byte_event_get_attribute_id(event); attributeOffset = 0; } // count attribute value bytes - if (sdp_query_attribute_value_event_get_data_offset(event) != attributeOffset){ + if (sdp_query_attribute_byte_event_get_data_offset(event) != attributeOffset){ attributeOffset++; } - attributeLength = sdp_query_attribute_value_event_get_attribute_length(event); + attributeLength = sdp_query_attribute_byte_event_get_attribute_length(event); - CHECK_EQUAL(sdp_query_attribute_value_event_get_data_offset(event), attributeOffset); + CHECK_EQUAL(sdp_query_attribute_byte_event_get_data_offset(event), attributeOffset); } @@ -93,12 +93,12 @@ static void handle_sdp_parser_event(uint8_t packet_type, uint8_t *packet, uint16 test_attribute_value_event(packet); // handle new record - if (sdp_query_attribute_value_event_get_record_id(packet) != record_id){ - record_id = sdp_query_attribute_value_event_get_record_id(packet); + if (sdp_query_attribute_byte_event_get_record_id(packet) != record_id){ + record_id = sdp_query_attribute_byte_event_get_record_id(packet); } // buffer data - assertBuffer(sdp_query_attribute_value_event_get_attribute_length(packet)); - attribute_value[sdp_query_attribute_value_event_get_data_offset(packet)] = sdp_query_attribute_value_event_get_data(packet); + assertBuffer(sdp_query_attribute_byte_event_get_attribute_length(packet)); + attribute_value[sdp_query_attribute_byte_event_get_data_offset(packet)] = sdp_query_attribute_byte_event_get_data(packet); break; case SDP_QUERY_COMPLETE: diff --git a/tool/btstack_event_generator.py b/tool/btstack_event_generator.py index 9feb0b32f..2595bb32e 100755 --- a/tool/btstack_event_generator.py +++ b/tool/btstack_event_generator.py @@ -131,14 +131,15 @@ defines_used = set() param_read = { '1' : 'return event[{offset}];', 'J' : 'return event[{offset}];', - 'L' : 'return event[{offset}];', '2' : 'return READ_BT_16(event, {offset});', + 'L' : 'return READ_BT_16(event, {offset});', '3' : 'return READ_BT_24(event, {offset});', '4' : 'return READ_BT_32(event, {offset});', 'H' : 'return READ_BT_16(event, {offset});', 'B' : 'swap48(&event[{offset}], {result_name});', 'R' : 'return &event[{offset}];', - 'T' : 'return (const char *) &event[{offset}];' + 'T' : 'return (const char *) &event[{offset}];', + 'V' : 'return &event[{offset}];', } def c_type_for_btstack_type(type): @@ -202,16 +203,19 @@ def create_events(events): fout.write(copyright) fout.write(hfile_header_begin) for event_type, event_name, format, args in events: - if not event_name in ['SDP_QUERY_COMPLETE', 'SDP_QUERY_RFCOMM_SERVICE', 'SDP_QUERY_ATTRIBUTE_VALUE', 'SDP_QUERY_SERVICE_RECORD_HANDLE']: + if not event_name in [ + 'SDP_QUERY_COMPLETE', + 'SDP_QUERY_RFCOMM_SERVICE', + 'SDP_QUERY_ATTRIBUTE_BYTE', + 'SDP_QUERY_SERVICE_RECORD_HANDLE']: continue event_name = format_function_name(event_name) + length_name = '' offset = 2 supported = all_fields_supported(format) for f, arg in zip(format, args): field_name = arg field_type = f - if field_type == 'V': - break text = create_getter(event_name, field_name, field_type, offset, supported) fout.write(text) if field_type in 'RT':