mirror of
https://github.com/bluekitchen/btstack.git
synced 2025-03-24 13:43:38 +00:00
pass in service record handle for sdp spp create
This commit is contained in:
parent
cb1f1ed1c6
commit
e53943d75d
@ -101,7 +101,7 @@ void packet_handler(uint8_t packet_type, uint16_t channel, uint8_t *packet, uint
|
||||
case RFCOMM_EVENT_SERVICE_REGISTERED:
|
||||
printf("RFCOMM_EVENT_SERVICE_REGISTERED channel: %u, status: 0x%02x\n", packet[3], packet[2]);
|
||||
// register SDP for our SPP
|
||||
sdp_create_spp_service((uint8_t*)service_buffer, rfcomm_channel_nr, "SPP ECHO");
|
||||
sdp_create_spp_service((uint8_t*)service_buffer, 0x10001, rfcomm_channel_nr, "SPP ECHO");
|
||||
bt_send_cmd(&sdp_register_service_record_cmd, service_buffer);
|
||||
bt_send_cmd(&btstack_set_discoverable, 1);
|
||||
break;
|
||||
|
@ -117,7 +117,7 @@ void packet_handler(uint8_t packet_type, uint16_t channel, uint8_t *packet, uint
|
||||
printf("RFCOMM_EVENT_SERVICE_REGISTERED\n");
|
||||
rfcomm_channel_nr = packet[3];
|
||||
// register SDP for our SPP
|
||||
sdp_create_spp_service((uint8_t*) spp_service_buffer, rfcomm_channel_nr, "RFCOMM Test");
|
||||
sdp_create_spp_service((uint8_t*) spp_service_buffer, 0x10001, rfcomm_channel_nr, "RFCOMM Test");
|
||||
bt_send_cmd(&sdp_register_service_record_cmd, spp_service_buffer);
|
||||
bt_send_cmd(&btstack_set_discoverable, 1);
|
||||
break;
|
||||
|
@ -260,7 +260,7 @@ int btstack_main(void)
|
||||
// init SDP, create record for SPP and register with SDP
|
||||
sdp_init();
|
||||
memset(spp_service_buffer, 0, sizeof(spp_service_buffer));
|
||||
sdp_create_spp_service(spp_service_buffer, RFCOMM_SERVER_CHANNEL, "SPP Counter");
|
||||
sdp_create_spp_service(spp_service_buffer, 0x10001, RFCOMM_SERVER_CHANNEL, "SPP Counter");
|
||||
sdp_register_service(spp_service_buffer);
|
||||
printf("SDP service record size: %u\n", de_get_len(spp_service_buffer));
|
||||
|
||||
|
@ -100,7 +100,7 @@ static void spp_service_setup(void){
|
||||
// init SDP, create record for SPP and register with SDP
|
||||
sdp_init();
|
||||
memset(spp_service_buffer, 0, sizeof(spp_service_buffer));
|
||||
sdp_create_spp_service(spp_service_buffer, RFCOMM_SERVER_CHANNEL, "SPP Counter");
|
||||
sdp_create_spp_service(spp_service_buffer, 0x10001, RFCOMM_SERVER_CHANNEL, "SPP Counter");
|
||||
sdp_register_service(spp_service_buffer);
|
||||
printf("SDP service record size: %u\n", de_get_len(spp_service_buffer));
|
||||
}
|
||||
|
@ -93,7 +93,7 @@ static void spp_service_setup(void){
|
||||
// init SDP, create record for SPP and register with SDP
|
||||
sdp_init();
|
||||
memset(spp_service_buffer, 0, sizeof(spp_service_buffer));
|
||||
sdp_create_spp_service(spp_service_buffer, 1, "SPP Counter");
|
||||
sdp_create_spp_service(spp_service_buffer, 0x10001, 1, "SPP Counter");
|
||||
sdp_register_service(spp_service_buffer);
|
||||
printf("SDP service buffer size: %u\n\r", (uint16_t) de_get_len(spp_service_buffer));
|
||||
}
|
||||
|
@ -227,7 +227,7 @@ int btstack_main(int argc, const char * argv[]){
|
||||
// init SDP, create record for SPP and register with SDP
|
||||
sdp_init();
|
||||
memset(spp_service_buffer, 0, sizeof(spp_service_buffer));
|
||||
sdp_create_spp_service( (uint8_t*) spp_service_buffer, 1, "SPP Counter");
|
||||
sdp_create_spp_service( (uint8_t*) spp_service_buffer, 0x10001, 1, "SPP Counter");
|
||||
printf("SDP service buffer size: %u\n\r", (uint16_t) de_get_len((uint8_t*) spp_service_buffer));
|
||||
sdp_register_service(spp_service_buffer);
|
||||
|
||||
|
@ -217,7 +217,7 @@ int btstack_main(int argc, const char * argv[]){
|
||||
// init SDP, create record for SPP and register with SDP
|
||||
sdp_init();
|
||||
memset(spp_service_buffer, 0, sizeof(spp_service_buffer));
|
||||
sdp_create_spp_service( (uint8_t*) spp_service_buffer, 1, "SPP Accel");
|
||||
sdp_create_spp_service( (uint8_t*) spp_service_buffer, 0x10001, 1, "SPP Accel");
|
||||
printf("SDP service buffer size: %u\n\r", (uint16_t) de_get_len((uint8_t*) spp_service_buffer));
|
||||
sdp_register_service(spp_service_buffer);
|
||||
|
||||
|
@ -117,7 +117,7 @@ static hsp_state_t hsp_state = HSP_IDLE;
|
||||
static hsp_ag_callback_t hsp_ag_callback;
|
||||
|
||||
static void hsp_run();
|
||||
static void packet_handler (void * connection, uint8_t packet_type, uint16_t channel, uint8_t *packet, uint16_t size);
|
||||
static void packet_handler (uint8_t packet_type, uint16_t channel, uint8_t *packet, uint16_t size);
|
||||
static void handle_query_rfcomm_event(sdp_query_event_t * event, void * context);
|
||||
|
||||
static void dummy_notify(uint8_t * event, uint16_t size){}
|
||||
@ -432,7 +432,7 @@ static void hsp_run(void){
|
||||
}
|
||||
|
||||
|
||||
static void packet_handler (void * connection, uint8_t packet_type, uint16_t channel, uint8_t *packet, uint16_t size){
|
||||
static void packet_handler (uint8_t packet_type, uint16_t channel, uint8_t *packet, uint16_t size){
|
||||
// printf("packet_handler type %u, packet[0] %x\n", packet_type, packet[0]);
|
||||
if (packet_type == RFCOMM_DATA_PACKET){
|
||||
while (size > 0 && (packet[0] == '\n' || packet[0] == '\r')){
|
||||
|
@ -112,7 +112,7 @@ typedef enum {
|
||||
static hsp_state_t hsp_state = HSP_IDLE;
|
||||
|
||||
static void hsp_run(void);
|
||||
static void packet_handler (void * connection, uint8_t packet_type, uint16_t channel, uint8_t *packet, uint16_t size);
|
||||
static void packet_handler (uint8_t packet_type, uint16_t channel, uint8_t *packet, uint16_t size);
|
||||
static void handle_query_rfcomm_event(sdp_query_event_t * event, void * context);
|
||||
|
||||
static hsp_hs_callback_t hsp_hs_callback;
|
||||
@ -254,7 +254,7 @@ void hsp_hs_init(uint8_t rfcomm_channel_nr){
|
||||
|
||||
rfcomm_init();
|
||||
rfcomm_register_packet_handler(packet_handler);
|
||||
rfcomm_register_service_internal(NULL, rfcomm_channel_nr, 0xffff); // reserved channel, mtu limited by l2cap
|
||||
rfcomm_register_service(rfcomm_channel_nr, 0xffff); // reserved channel, mtu limited by l2cap
|
||||
|
||||
sdp_query_rfcomm_register_callback(handle_query_rfcomm_event, NULL);
|
||||
|
||||
@ -379,7 +379,7 @@ static void hsp_run(void){
|
||||
}
|
||||
|
||||
|
||||
static void packet_handler (void * connection, uint8_t packet_type, uint16_t channel, uint8_t *packet, uint16_t size){
|
||||
static void packet_handler (uint8_t packet_type, uint16_t channel, uint8_t *packet, uint16_t size){
|
||||
// printf("packet_handler type %u, packet[0] %x\n", packet_type, packet[0]);
|
||||
if (packet_type == RFCOMM_DATA_PACKET){
|
||||
while (size > 0 && (packet[0] == '\n' || packet[0] == '\r')){
|
||||
|
@ -677,14 +677,14 @@ void de_dump_data_element(uint8_t * record){
|
||||
#endif
|
||||
}
|
||||
|
||||
void sdp_create_spp_service(uint8_t *service, int service_id, const char *name){
|
||||
void sdp_create_spp_service(uint8_t *service, uint32_t service_record_handle, int service_id, const char *name){
|
||||
|
||||
uint8_t* attribute;
|
||||
de_create_sequence(service);
|
||||
|
||||
// 0x0000 "Service Record Handle"
|
||||
de_add_number(service, DE_UINT, DE_SIZE_16, SDP_ServiceRecordHandle);
|
||||
de_add_number(service, DE_UINT, DE_SIZE_32, 0x10001);
|
||||
de_add_number(service, DE_UINT, DE_SIZE_32, service_record_handle);
|
||||
|
||||
// 0x0001 "Service Class ID List"
|
||||
de_add_number(service, DE_UINT, DE_SIZE_16, SDP_ServiceClassIDList);
|
||||
|
@ -116,7 +116,7 @@ int sdp_filter_attributes_in_attributeIDList(uint8_t *record, uint8_t *att
|
||||
int sdp_attribute_list_constains_id(uint8_t *attributeIDList, uint16_t attributeID);
|
||||
int sdp_traversal_match_pattern(uint8_t * element, de_type_t attributeType, de_size_t size, void *my_context);
|
||||
|
||||
void sdp_create_spp_service(uint8_t *service, int service_id, const char *name);
|
||||
void sdp_create_spp_service(uint8_t *service, uint32_t service_record_handle, int service_id, const char *name);
|
||||
|
||||
/* API_END */
|
||||
|
||||
|
@ -778,7 +778,7 @@ int btstack_main(int argc, const char * argv[]){
|
||||
// init SDP, create record for SPP and register with SDP
|
||||
sdp_init();
|
||||
memset(spp_service_buffer, 0, sizeof(spp_service_buffer));
|
||||
sdp_create_spp_service((uint8_t*) spp_service_buffer, RFCOMM_SERVER_CHANNEL, "SPP Counter");
|
||||
sdp_create_spp_service((uint8_t*) spp_service_buffer, 0x10001, RFCOMM_SERVER_CHANNEL, "SPP Counter");
|
||||
de_dump_data_element((uint8_t*) spp_service_buffer);
|
||||
printf("SDP service record size: %u\n\r", de_get_len((uint8_t*)spp_service_buffer));
|
||||
sdp_register_service((uint8_t*)spp_service_buffer);
|
||||
|
@ -133,7 +133,7 @@ TEST(SDPClient, QueryRFCOMMWithSyntheticData){
|
||||
de_create_sequence(spp_buffer);
|
||||
for (i=0; i<record_nr; i++){
|
||||
uint8_t * record_start = de_push_sequence(spp_buffer);
|
||||
sdp_create_spp_service(record_start, expected_channel[i], expected_name[i]);
|
||||
sdp_create_spp_service(record_start, 0x10001, expected_channel[i], expected_name[i]);
|
||||
de_pop_sequence(spp_buffer, record_start);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user