mirror of
https://github.com/bluekitchen/btstack.git
synced 2025-03-03 16:14:11 +00:00
rfcomm: drop rfcomm_register_packet_handler and send events via per channel handler
This commit is contained in:
parent
ccb8ddfbd8
commit
fc376368bd
@ -259,7 +259,6 @@ int btstack_main(void)
|
|||||||
l2cap_init();
|
l2cap_init();
|
||||||
|
|
||||||
rfcomm_init();
|
rfcomm_init();
|
||||||
rfcomm_register_packet_handler(packet_handler);
|
|
||||||
rfcomm_register_service(packet_handler, RFCOMM_SERVER_CHANNEL, 0xffff);
|
rfcomm_register_service(packet_handler, RFCOMM_SERVER_CHANNEL, 0xffff);
|
||||||
|
|
||||||
// init SDP, create record for SPP and register with SDP
|
// init SDP, create record for SPP and register with SDP
|
||||||
|
@ -100,7 +100,6 @@ static void spp_service_setup(void){
|
|||||||
l2cap_init();
|
l2cap_init();
|
||||||
|
|
||||||
rfcomm_init();
|
rfcomm_init();
|
||||||
rfcomm_register_packet_handler(packet_handler);
|
|
||||||
rfcomm_register_service(packet_handler, RFCOMM_SERVER_CHANNEL, 0xffff); // reserved channel, mtu limited by l2cap
|
rfcomm_register_service(packet_handler, RFCOMM_SERVER_CHANNEL, 0xffff); // reserved channel, mtu limited by l2cap
|
||||||
|
|
||||||
// init SDP, create record for SPP and register with SDP
|
// init SDP, create record for SPP and register with SDP
|
||||||
|
@ -91,7 +91,6 @@ static void spp_service_setup(void){
|
|||||||
|
|
||||||
// init RFCOMM
|
// init RFCOMM
|
||||||
rfcomm_init();
|
rfcomm_init();
|
||||||
rfcomm_register_packet_handler(packet_handler);
|
|
||||||
// reserved channel, mtu limited by l2cap, 1 credit
|
// reserved channel, mtu limited by l2cap, 1 credit
|
||||||
rfcomm_register_service_with_initial_credits(rfcomm_channel_nr, 0xffff, 1);
|
rfcomm_register_service_with_initial_credits(rfcomm_channel_nr, 0xffff, 1);
|
||||||
|
|
||||||
|
@ -197,8 +197,6 @@ int btstack_main(int argc, const char * argv[]){
|
|||||||
// init L2CAP
|
// init L2CAP
|
||||||
l2cap_init();
|
l2cap_init();
|
||||||
|
|
||||||
rfcomm_register_packet_handler(packet_handler);
|
|
||||||
|
|
||||||
sdp_query_rfcomm_register_callback(handle_query_rfcomm_event);
|
sdp_query_rfcomm_register_callback(handle_query_rfcomm_event);
|
||||||
|
|
||||||
// turn on!
|
// turn on!
|
||||||
|
@ -2081,7 +2081,6 @@ int main (int argc, char * const * argv){
|
|||||||
#ifdef ENABLE_RFCOMM
|
#ifdef ENABLE_RFCOMM
|
||||||
log_info("config.h: ENABLE_RFCOMM\n");
|
log_info("config.h: ENABLE_RFCOMM\n");
|
||||||
rfcomm_init();
|
rfcomm_init();
|
||||||
rfcomm_register_packet_handler(&rfcomm_packet_handler);
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef ENABLE_SDP
|
#ifdef ENABLE_SDP
|
||||||
|
@ -225,7 +225,6 @@ int btstack_main(int argc, const char * argv[]){
|
|||||||
|
|
||||||
// init RFCOMM
|
// init RFCOMM
|
||||||
rfcomm_init();
|
rfcomm_init();
|
||||||
rfcomm_register_packet_handler(packet_handler);
|
|
||||||
rfcomm_register_service(packet_handler, rfcomm_channel_nr, 100); // reserved channel, mtu=100
|
rfcomm_register_service(packet_handler, rfcomm_channel_nr, 100); // reserved channel, mtu=100
|
||||||
|
|
||||||
// init SDP, create record for SPP and register with SDP
|
// init SDP, create record for SPP and register with SDP
|
||||||
|
@ -215,7 +215,6 @@ int btstack_main(int argc, const char * argv[]){
|
|||||||
|
|
||||||
// init RFCOMM
|
// init RFCOMM
|
||||||
rfcomm_init();
|
rfcomm_init();
|
||||||
rfcomm_register_packet_handler(packet_handler);
|
|
||||||
rfcomm_register_service(rfcomm_packet_handler, rfcomm_channel_nr, 100); // reserved channel, mtu=100
|
rfcomm_register_service(rfcomm_packet_handler, rfcomm_channel_nr, 100); // reserved channel, mtu=100
|
||||||
|
|
||||||
// init SDP, create record for SPP and register with SDP
|
// init SDP, create record for SPP and register with SDP
|
||||||
|
@ -225,7 +225,6 @@ int btstack_main(int argc, const char * argv[]){
|
|||||||
|
|
||||||
// init RFCOMM
|
// init RFCOMM
|
||||||
rfcomm_init();
|
rfcomm_init();
|
||||||
rfcomm_register_packet_handler(packet_handler);
|
|
||||||
rfcomm_register_service(packet_handler, rfcomm_channel_nr, 100); // reserved channel, mtu=100
|
rfcomm_register_service(packet_handler, rfcomm_channel_nr, 100); // reserved channel, mtu=100
|
||||||
|
|
||||||
// init SDP, create record for SPP and register with SDP
|
// init SDP, create record for SPP and register with SDP
|
||||||
|
@ -216,7 +216,6 @@ int btstack_main(int argc, const char * argv[]){
|
|||||||
|
|
||||||
// init RFCOMM
|
// init RFCOMM
|
||||||
rfcomm_init();
|
rfcomm_init();
|
||||||
rfcomm_register_packet_handler(packet_handler);
|
|
||||||
rfcomm_register_service(packet_handler, rfcomm_channel_nr, 100); // reserved channel, mtu=100
|
rfcomm_register_service(packet_handler, rfcomm_channel_nr, 100); // reserved channel, mtu=100
|
||||||
|
|
||||||
// init SDP, create record for SPP and register with SDP
|
// init SDP, create record for SPP and register with SDP
|
||||||
|
@ -1996,7 +1996,6 @@ void hfp_ag_init(uint16_t rfcomm_channel_nr, uint32_t supported_features,
|
|||||||
|
|
||||||
l2cap_init();
|
l2cap_init();
|
||||||
|
|
||||||
rfcomm_register_packet_handler(packet_handler);
|
|
||||||
rfcomm_register_service(packet_handler, rfcomm_channel_nr, 0xffff);
|
rfcomm_register_service(packet_handler, rfcomm_channel_nr, 0xffff);
|
||||||
hfp_init();
|
hfp_init();
|
||||||
|
|
||||||
|
@ -1056,7 +1056,6 @@ void hfp_hf_init(uint16_t rfcomm_channel_nr, uint32_t supported_features, uint16
|
|||||||
hci_add_event_handler(&hci_event_callback_registration);
|
hci_add_event_handler(&hci_event_callback_registration);
|
||||||
|
|
||||||
l2cap_init();
|
l2cap_init();
|
||||||
rfcomm_register_packet_handler(packet_handler);
|
|
||||||
rfcomm_register_service(packet_handler, rfcomm_channel_nr, 0xffff);
|
rfcomm_register_service(packet_handler, rfcomm_channel_nr, 0xffff);
|
||||||
hfp_init();
|
hfp_init();
|
||||||
|
|
||||||
|
@ -266,7 +266,6 @@ void hsp_ag_init(uint8_t rfcomm_channel_nr){
|
|||||||
l2cap_init();
|
l2cap_init();
|
||||||
|
|
||||||
rfcomm_init();
|
rfcomm_init();
|
||||||
rfcomm_register_packet_handler(packet_handler);
|
|
||||||
rfcomm_register_service(packet_handler, rfcomm_channel_nr, 0xffff); // reserved channel, mtu limited by l2cap
|
rfcomm_register_service(packet_handler, rfcomm_channel_nr, 0xffff); // reserved channel, mtu limited by l2cap
|
||||||
|
|
||||||
sdp_query_rfcomm_register_callback(handle_query_rfcomm_event);
|
sdp_query_rfcomm_register_callback(handle_query_rfcomm_event);
|
||||||
|
@ -264,7 +264,6 @@ void hsp_hs_init(uint8_t rfcomm_channel_nr){
|
|||||||
l2cap_init();
|
l2cap_init();
|
||||||
|
|
||||||
rfcomm_init();
|
rfcomm_init();
|
||||||
rfcomm_register_packet_handler(packet_handler);
|
|
||||||
rfcomm_register_service(packet_handler, rfcomm_channel_nr, 0xffff); // reserved channel, mtu limited by l2cap
|
rfcomm_register_service(packet_handler, rfcomm_channel_nr, 0xffff); // reserved channel, mtu limited by l2cap
|
||||||
|
|
||||||
sdp_query_rfcomm_register_callback(handle_query_rfcomm_event);
|
sdp_query_rfcomm_register_callback(handle_query_rfcomm_event);
|
||||||
|
@ -84,9 +84,6 @@ static btstack_linked_list_t rfcomm_services = NULL;
|
|||||||
|
|
||||||
static gap_security_level_t rfcomm_security_level;
|
static gap_security_level_t rfcomm_security_level;
|
||||||
|
|
||||||
static void (*app_packet_handler)(uint8_t packet_type,
|
|
||||||
uint16_t channel, uint8_t *packet, uint16_t size);
|
|
||||||
|
|
||||||
static void rfcomm_run(void);
|
static void rfcomm_run(void);
|
||||||
static void rfcomm_channel_state_machine(rfcomm_channel_t *channel, rfcomm_channel_event_t *event);
|
static void rfcomm_channel_state_machine(rfcomm_channel_t *channel, rfcomm_channel_event_t *event);
|
||||||
static void rfcomm_channel_state_machine_2(rfcomm_multiplexer_t * multiplexer, uint8_t dlci, rfcomm_channel_event_t *event);
|
static void rfcomm_channel_state_machine_2(rfcomm_multiplexer_t * multiplexer, uint8_t dlci, rfcomm_channel_event_t *event);
|
||||||
@ -107,7 +104,7 @@ static void rfcomm_emit_connection_request(rfcomm_channel_t *channel) {
|
|||||||
event[8] = channel->dlci >> 1;
|
event[8] = channel->dlci >> 1;
|
||||||
little_endian_store_16(event, 9, channel->rfcomm_cid);
|
little_endian_store_16(event, 9, channel->rfcomm_cid);
|
||||||
hci_dump_packet(HCI_EVENT_PACKET, 0, event, sizeof(event));
|
hci_dump_packet(HCI_EVENT_PACKET, 0, event, sizeof(event));
|
||||||
(*app_packet_handler)(HCI_EVENT_PACKET, 0, (uint8_t *) event, sizeof(event));
|
(channel->packet_handler)(HCI_EVENT_PACKET, 0, (uint8_t *) event, sizeof(event));
|
||||||
}
|
}
|
||||||
|
|
||||||
// API Change: BTstack-0.3.50x uses
|
// API Change: BTstack-0.3.50x uses
|
||||||
@ -129,7 +126,7 @@ static void rfcomm_emit_channel_opened(rfcomm_channel_t *channel, uint8_t status
|
|||||||
little_endian_store_16(event, pos, channel->rfcomm_cid); pos += 2; // 12 - channel ID
|
little_endian_store_16(event, pos, channel->rfcomm_cid); pos += 2; // 12 - channel ID
|
||||||
little_endian_store_16(event, pos, channel->max_frame_size); pos += 2; // max frame size
|
little_endian_store_16(event, pos, channel->max_frame_size); pos += 2; // max frame size
|
||||||
hci_dump_packet(HCI_EVENT_PACKET, 0, event, sizeof(event));
|
hci_dump_packet(HCI_EVENT_PACKET, 0, event, sizeof(event));
|
||||||
(*app_packet_handler)(HCI_EVENT_PACKET, 0, (uint8_t *) event, pos);
|
(channel->packet_handler)(HCI_EVENT_PACKET, 0, (uint8_t *) event, pos);
|
||||||
}
|
}
|
||||||
|
|
||||||
// data: event(8), len(8), rfcomm_cid(16)
|
// data: event(8), len(8), rfcomm_cid(16)
|
||||||
@ -140,7 +137,7 @@ static void rfcomm_emit_channel_closed(rfcomm_channel_t * channel) {
|
|||||||
event[1] = sizeof(event) - 2;
|
event[1] = sizeof(event) - 2;
|
||||||
little_endian_store_16(event, 2, channel->rfcomm_cid);
|
little_endian_store_16(event, 2, channel->rfcomm_cid);
|
||||||
hci_dump_packet(HCI_EVENT_PACKET, 0, event, sizeof(event));
|
hci_dump_packet(HCI_EVENT_PACKET, 0, event, sizeof(event));
|
||||||
(*app_packet_handler)(HCI_EVENT_PACKET, 0, (uint8_t *) event, sizeof(event));
|
(channel->packet_handler)(HCI_EVENT_PACKET, 0, (uint8_t *) event, sizeof(event));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void rfcomm_emit_remote_line_status(rfcomm_channel_t *channel, uint8_t line_status){
|
static void rfcomm_emit_remote_line_status(rfcomm_channel_t *channel, uint8_t line_status){
|
||||||
@ -151,7 +148,7 @@ static void rfcomm_emit_remote_line_status(rfcomm_channel_t *channel, uint8_t li
|
|||||||
little_endian_store_16(event, 2, channel->rfcomm_cid);
|
little_endian_store_16(event, 2, channel->rfcomm_cid);
|
||||||
event[4] = line_status;
|
event[4] = line_status;
|
||||||
hci_dump_packet( HCI_EVENT_PACKET, 0, event, sizeof(event));
|
hci_dump_packet( HCI_EVENT_PACKET, 0, event, sizeof(event));
|
||||||
(*app_packet_handler)(HCI_EVENT_PACKET, 0, (uint8_t *) event, sizeof(event));
|
(channel->packet_handler)(HCI_EVENT_PACKET, 0, (uint8_t *) event, sizeof(event));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void rfcomm_emit_port_configuration(rfcomm_channel_t *channel){
|
static void rfcomm_emit_port_configuration(rfcomm_channel_t *channel){
|
||||||
@ -161,7 +158,7 @@ static void rfcomm_emit_port_configuration(rfcomm_channel_t *channel){
|
|||||||
event[1] = sizeof(rfcomm_rpn_data_t);
|
event[1] = sizeof(rfcomm_rpn_data_t);
|
||||||
memcpy(&event[2], (uint8_t*) &channel->rpn_data, sizeof(rfcomm_rpn_data_t));
|
memcpy(&event[2], (uint8_t*) &channel->rpn_data, sizeof(rfcomm_rpn_data_t));
|
||||||
hci_dump_packet( HCI_EVENT_PACKET, 0, event, sizeof(event));
|
hci_dump_packet( HCI_EVENT_PACKET, 0, event, sizeof(event));
|
||||||
(*app_packet_handler)(HCI_EVENT_PACKET, channel->rfcomm_cid, (uint8_t*)event, sizeof(event));
|
(channel->packet_handler)(HCI_EVENT_PACKET, channel->rfcomm_cid, (uint8_t*)event, sizeof(event));
|
||||||
}
|
}
|
||||||
|
|
||||||
// MARK RFCOMM RPN DATA HELPER
|
// MARK RFCOMM RPN DATA HELPER
|
||||||
@ -1019,7 +1016,7 @@ static void rfcomm_multiplexer_state_machine(rfcomm_multiplexer_t * multiplexer,
|
|||||||
for (it = (btstack_linked_item_t *) rfcomm_channels; it ; it = it->next){
|
for (it = (btstack_linked_item_t *) rfcomm_channels; it ; it = it->next){
|
||||||
rfcomm_channel_t * channel = ((rfcomm_channel_t *) it);
|
rfcomm_channel_t * channel = ((rfcomm_channel_t *) it);
|
||||||
if (channel->multiplexer != multiplexer) continue;
|
if (channel->multiplexer != multiplexer) continue;
|
||||||
(*app_packet_handler)(HCI_EVENT_PACKET, 0, (uint8_t *) packet_sent_event, sizeof(packet_sent_event));
|
(channel->packet_handler)(HCI_EVENT_PACKET, 0, (uint8_t *) packet_sent_event, sizeof(packet_sent_event));
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -1148,7 +1145,7 @@ static void rfcomm_channel_packet_handler_uih(rfcomm_multiplexer_t *multiplexer,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// deliver payload
|
// deliver payload
|
||||||
(*app_packet_handler)(RFCOMM_DATA_PACKET, channel->rfcomm_cid,
|
(channel->packet_handler)(RFCOMM_DATA_PACKET, channel->rfcomm_cid,
|
||||||
&packet[payload_offset], size-payload_offset-1);
|
&packet[payload_offset], size-payload_offset-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1407,16 +1404,12 @@ static void rfcomm_packet_handler(uint8_t packet_type, uint16_t channel, uint8_t
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// we only handle l2cap packet over open multiplexer channel now
|
// we only handle l2cap packets
|
||||||
if (packet_type != L2CAP_DATA_PACKET) {
|
if (packet_type != L2CAP_DATA_PACKET) return;
|
||||||
(*app_packet_handler)(packet_type, channel, packet, size);
|
|
||||||
return;
|
// ... over open multiplexer channel now
|
||||||
}
|
|
||||||
rfcomm_multiplexer_t * multiplexer = rfcomm_multiplexer_for_l2cap_cid(channel);
|
rfcomm_multiplexer_t * multiplexer = rfcomm_multiplexer_for_l2cap_cid(channel);
|
||||||
if (!multiplexer || multiplexer->state != RFCOMM_MULTIPLEXER_OPEN) {
|
if (!multiplexer || multiplexer->state != RFCOMM_MULTIPLEXER_OPEN) return;
|
||||||
(*app_packet_handler)(packet_type, channel, packet, size);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// channel data ?
|
// channel data ?
|
||||||
// rfcomm: (0) addr [76543 server channel] [2 direction: initiator uses 1] [1 C/R: CMD by initiator = 1] [0 EA=1]
|
// rfcomm: (0) addr [76543 server channel] [2 direction: initiator uses 1] [1 C/R: CMD by initiator = 1] [0 EA=1]
|
||||||
@ -1551,7 +1544,7 @@ static void rfcomm_channel_state_machine(rfcomm_channel_t *channel, rfcomm_chann
|
|||||||
modem_status_event[0] = RFCOMM_EVENT_REMOTE_MODEM_STATUS;
|
modem_status_event[0] = RFCOMM_EVENT_REMOTE_MODEM_STATUS;
|
||||||
modem_status_event[1] = 1;
|
modem_status_event[1] = 1;
|
||||||
modem_status_event[2] = event_msc->modem_status;
|
modem_status_event[2] = event_msc->modem_status;
|
||||||
(*app_packet_handler)(HCI_EVENT_PACKET, channel->rfcomm_cid, (uint8_t*)&modem_status_event, sizeof(modem_status_event));
|
(channel->packet_handler)(HCI_EVENT_PACKET, channel->rfcomm_cid, (uint8_t*)&modem_status_event, sizeof(modem_status_event));
|
||||||
// no return, MSC_CMD will be handled by state machine below
|
// no return, MSC_CMD will be handled by state machine below
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1737,7 +1730,7 @@ static void rfcomm_channel_state_machine(rfcomm_channel_t *channel, rfcomm_chann
|
|||||||
case CH_EVT_RCVD_CREDITS: {
|
case CH_EVT_RCVD_CREDITS: {
|
||||||
// notify daemon -> might trigger re-try of parked connections
|
// notify daemon -> might trigger re-try of parked connections
|
||||||
uint8_t credits_event[2] = { DAEMON_EVENT_NEW_RFCOMM_CREDITS, 0 };
|
uint8_t credits_event[2] = { DAEMON_EVENT_NEW_RFCOMM_CREDITS, 0 };
|
||||||
(*app_packet_handler)(DAEMON_EVENT_PACKET, channel->rfcomm_cid, credits_event, sizeof(credits_event));
|
(channel->packet_handler)(DAEMON_EVENT_PACKET, channel->rfcomm_cid, credits_event, sizeof(credits_event));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
@ -1854,12 +1847,6 @@ void rfcomm_set_required_security_level(gap_security_level_t security_level){
|
|||||||
rfcomm_security_level = security_level;
|
rfcomm_security_level = security_level;
|
||||||
}
|
}
|
||||||
|
|
||||||
// register packet handler
|
|
||||||
void rfcomm_register_packet_handler(void (*handler)(uint8_t packet_type,
|
|
||||||
uint16_t channel, uint8_t *packet, uint16_t size)){
|
|
||||||
app_packet_handler = handler;
|
|
||||||
}
|
|
||||||
|
|
||||||
int rfcomm_can_send_packet_now(uint16_t rfcomm_cid){
|
int rfcomm_can_send_packet_now(uint16_t rfcomm_cid){
|
||||||
rfcomm_channel_t * channel = rfcomm_channel_for_rfcomm_cid(rfcomm_cid);
|
rfcomm_channel_t * channel = rfcomm_channel_for_rfcomm_cid(rfcomm_cid);
|
||||||
if (!channel){
|
if (!channel){
|
||||||
|
@ -298,11 +298,6 @@ void rfcomm_init(void);
|
|||||||
*/
|
*/
|
||||||
void rfcomm_set_required_security_level(gap_security_level_t security_level);
|
void rfcomm_set_required_security_level(gap_security_level_t security_level);
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief Register packet handler.
|
|
||||||
*/
|
|
||||||
void rfcomm_register_packet_handler(void (*handler)(uint8_t packet_type, uint16_t channel, uint8_t *packet, uint16_t size));
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @brief Create RFCOMM connection to a given server channel on a remote deivce.
|
* @brief Create RFCOMM connection to a given server channel on a remote deivce.
|
||||||
* This channel will automatically provide enough credits to the remote side.
|
* This channel will automatically provide enough credits to the remote side.
|
||||||
|
@ -266,10 +266,6 @@ void rfcomm_disconnect(uint16_t rfcomm_cid){
|
|||||||
(*registered_rfcomm_packet_handler)(HCI_EVENT_PACKET, 0, (uint8_t *) event, sizeof(event));
|
(*registered_rfcomm_packet_handler)(HCI_EVENT_PACKET, 0, (uint8_t *) event, sizeof(event));
|
||||||
}
|
}
|
||||||
|
|
||||||
void rfcomm_register_packet_handler(void (*handler)(uint8_t packet_type, uint16_t channel, uint8_t *packet, uint16_t size)){
|
|
||||||
registered_rfcomm_packet_handler = handler;
|
|
||||||
}
|
|
||||||
|
|
||||||
uint8_t rfcomm_register_service(btstack_packet_handler_t packet_handler, uint8_t channel, uint16_t max_frame_size){
|
uint8_t rfcomm_register_service(btstack_packet_handler_t packet_handler, uint8_t channel, uint16_t max_frame_size){
|
||||||
printf("rfcomm_register_service\n");
|
printf("rfcomm_register_service\n");
|
||||||
registered_rfcomm_packet_handler = handler;
|
registered_rfcomm_packet_handler = handler;
|
||||||
|
@ -780,7 +780,6 @@ int btstack_main(int argc, const char * argv[]){
|
|||||||
l2cap_register_fixed_channel(&packet_handler, L2CAP_CID_CONNECTIONLESS_CHANNEL);
|
l2cap_register_fixed_channel(&packet_handler, L2CAP_CID_CONNECTIONLESS_CHANNEL);
|
||||||
|
|
||||||
rfcomm_init();
|
rfcomm_init();
|
||||||
rfcomm_register_packet_handler(packet_handler);
|
|
||||||
rfcomm_register_service(packet_handler, RFCOMM_SERVER_CHANNEL, 150); // reserved channel, mtu=100
|
rfcomm_register_service(packet_handler, RFCOMM_SERVER_CHANNEL, 150); // reserved channel, mtu=100
|
||||||
|
|
||||||
// init SDP, create record for SPP and register with SDP
|
// init SDP, create record for SPP and register with SDP
|
||||||
|
@ -177,7 +177,6 @@ int btstack_main(int argc, const char * argv[]){
|
|||||||
// init L2CAP
|
// init L2CAP
|
||||||
l2cap_init();
|
l2cap_init();
|
||||||
rfcomm_init();
|
rfcomm_init();
|
||||||
rfcomm_register_packet_handler(packet_handler);
|
|
||||||
|
|
||||||
sdp_query_rfcomm_register_callback(handle_query_rfcomm_event);
|
sdp_query_rfcomm_register_callback(handle_query_rfcomm_event);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user