mirror of
https://github.com/bluekitchen/btstack.git
synced 2025-02-20 18:40:31 +00:00
daemon: prefix l2cap/rfcomm/sdp events only used by daemon
This commit is contained in:
parent
a232af0476
commit
62c64df103
@ -19,13 +19,13 @@ L2CAP_DATA_PACKET packet type. L2CAP provides the following events:
|
||||
with *l2cap_accept_connection* and
|
||||
*l2cap_decline_connecti-on* respectively.
|
||||
|
||||
- L2CAP_EVENT_CREDITS - emitted when there is a chance to send a new
|
||||
- DAEMON_EVENT_L2CAP_CREDITS - emitted when there is a chance to send a new
|
||||
L2CAP packet. BTstack does not buffer packets. Instead, it requires
|
||||
the application to retry sending if BTstack cannot deliver a packet
|
||||
to the Bluetooth module. In this case, the l2cap_send
|
||||
will return an error.
|
||||
|
||||
- L2CAP_EVENT_SERVICE_REGISTERED - Status not equal zero indicates
|
||||
- DAEMON_EVENT_L2CAP_SERVICE_REGISTERED - Status not equal zero indicates
|
||||
an error. Possible errors: service is already registered;
|
||||
MAX_NO_L2CAP_SERVICES (defined in config.h) already registered.
|
||||
|
||||
@ -36,8 +36,8 @@ Event | Event Code
|
||||
L2CAP_EVENT_CHANNEL_OPENED | 0x70
|
||||
L2CAP_EVENT_CHANNEL_CLOSED | 0x71
|
||||
L2CAP_EVENT_INCOMING_CONNECTION | 0x72
|
||||
L2CAP_EVENT_CREDITS | 0x74
|
||||
L2CAP_EVENT_SERVICE_REGISTERED | 0x75
|
||||
DAEMON_EVENT_L2CAP_CREDITS | 0x74
|
||||
DAEMON_EVENT_L2CAP_SERVICE_REGISTERED | 0x75
|
||||
|
||||
|
||||
Table: L2CAP Events. {#tbl:l2capEvents}
|
||||
@ -50,9 +50,9 @@ L2CAP event paramaters, with size in bits:
|
||||
- *event (8), len(8), channel(16)*
|
||||
- L2CAP_EVENT_INCOMING_CONNECTION:
|
||||
- *event(8), len(8), address(48), handle(16), psm (16), local_cid(16), remote_cid (16)*
|
||||
- L2CAP_EVENT_CREDITS:
|
||||
- DAEMON_EVENT_L2CAP_CREDITS:
|
||||
- *event(8), len(8), local_cid(16), credits(8)*
|
||||
- L2CAP_EVENT_SERVICE_REGISTERED:
|
||||
- DAEMON_EVENT_L2CAP_SERVICE_REGISTERED:
|
||||
- *event(8), len(8), status(8), psm(16)*
|
||||
|
||||
## RFCOMM Events
|
||||
@ -74,11 +74,11 @@ by RFCOMM:
|
||||
establishment is done. Status not equal zero indicates an error.
|
||||
Possible errors: an L2CAP error, out of memory.
|
||||
|
||||
- RFCOMM_EVENT_CREDITS - The application can resume sending when
|
||||
- DAEMON_EVENT_RFCOMM_CREDITS - The application can resume sending when
|
||||
this even is received. See Section on [RFCOMM credit-based flow-control](../protocols/#sec:flowControlProtocols)
|
||||
for more.
|
||||
|
||||
- RFCOMM_EVENT_SERVICE_REGISTERED - Status not equal zero indicates
|
||||
- DAEMON_EVENT_RFCOMM_SERVICE_REGISTERED - Status not equal zero indicates
|
||||
an error. Possible errors:
|
||||
|
||||
- service is already registered;
|
||||
@ -90,8 +90,8 @@ Event | Event Code
|
||||
RFCOMM_EVENT_CHANNEL_OPENED | 0x80
|
||||
RFCOMM_EVENT_CHANNEL_CLOSED | 0x81
|
||||
RFCOMM_EVENT_INCOMING_CONNECTION | 0x82
|
||||
RFCOMM_EVENT_CREDITS | 0x84
|
||||
RFCOMM_EVENT_SERVICE_REGISTERED | 0x85
|
||||
DAEMON_EVENT_RFCOMM_CREDITS | 0x84
|
||||
DAEMON_EVENT_RFCOMM_SERVICE_REGISTERED | 0x85
|
||||
|
||||
Table: RFCOMM Events. {#tbl:rfcommEvents}
|
||||
|
||||
@ -104,9 +104,9 @@ RFCOMM event paramaters, with size in bits:
|
||||
- *event(8), len(8), rfcomm_cid(16)*
|
||||
- RFCOMM_EVENT_INCOMING_CONNECTION:
|
||||
- *event(8), len(8), address(48), channel (8), rfcomm_cid(16)*
|
||||
- RFCOMM_EVENT_CREDITS:
|
||||
- DAEMON_EVENT_RFCOMM_CREDITS:
|
||||
- *event(8), len(8), rfcomm_cid(16), credits(8)*
|
||||
- RFCOMM_EVENT_SERVICE_REGISTERED:
|
||||
- DAEMON_EVENT_RFCOMM_SERVICE_REGISTERED:
|
||||
- *event(8), len(8), status(8), rfcomm server channel_id(8)*
|
||||
|
||||
## Errors {#sec:errorsAppendix}
|
||||
|
@ -93,10 +93,10 @@ void packet_handler(uint8_t packet_type, uint16_t channel, uint8_t *packet, uint
|
||||
}
|
||||
break;
|
||||
|
||||
case L2CAP_EVENT_SERVICE_REGISTERED:
|
||||
case DAEMON_EVENT_L2CAP_SERVICE_REGISTERED:
|
||||
status = packet[2];
|
||||
psm = little_endian_read_16(packet, 3);
|
||||
printf("L2CAP_EVENT_SERVICE_REGISTERED psm: 0x%02x, status: 0x%02x\n", psm, status);
|
||||
printf("DAEMON_EVENT_L2CAP_SERVICE_REGISTERED psm: 0x%02x, status: 0x%02x\n", psm, status);
|
||||
if (status) {
|
||||
l2cap_reg_fail = 1;
|
||||
} else {
|
||||
|
@ -174,7 +174,7 @@ void packet_handler(uint8_t packet_type, uint16_t channel, uint8_t *packet, uint
|
||||
printf("Basebank connection closed\n");
|
||||
break;
|
||||
|
||||
case L2CAP_EVENT_CREDITS:
|
||||
case DAEMON_EVENT_L2CAP_CREDITS:
|
||||
if (!serverMode) {
|
||||
// can send! (assuming single credits are handet out)
|
||||
update_packet();
|
||||
|
@ -93,14 +93,14 @@ void packet_handler(uint8_t packet_type, uint16_t channel, uint8_t *packet, uint
|
||||
}
|
||||
break;
|
||||
|
||||
case RFCOMM_EVENT_PERSISTENT_CHANNEL:
|
||||
case DAEMON_EVENT_RFCOMM_SERVICE_REGISTERED:
|
||||
rfcomm_channel_nr = packet[3];
|
||||
printf("RFCOMM channel %u was assigned by BTdaemon\n", rfcomm_channel_nr);
|
||||
bt_send_cmd(&rfcomm_register_service_cmd, rfcomm_channel_nr, 0xffff); // reserved channel, mtu limited by l2cap
|
||||
break;
|
||||
|
||||
case RFCOMM_EVENT_SERVICE_REGISTERED:
|
||||
printf("RFCOMM_EVENT_SERVICE_REGISTERED channel: %u, status: 0x%02x\n", packet[3], packet[2]);
|
||||
case DAEMON_EVENT_RFCOMM_SERVICE_REGISTERED:
|
||||
printf("DAEMON_EVENT_RFCOMM_SERVICE_REGISTERED channel: %u, status: 0x%02x\n", packet[3], packet[2]);
|
||||
// register SDP for our SPP
|
||||
spp_create_sdp_record((uint8_t*)service_buffer, 0x10001, rfcomm_channel_nr, "SPP ECHO");
|
||||
bt_send_cmd(&sdp_register_service_record_cmd, service_buffer);
|
||||
|
@ -108,14 +108,14 @@ void packet_handler(uint8_t packet_type, uint16_t channel, uint8_t *packet, uint
|
||||
}
|
||||
break;
|
||||
|
||||
case RFCOMM_EVENT_PERSISTENT_CHANNEL:
|
||||
case DAEMON_EVENT_RFCOMM_SERVICE_REGISTERED:
|
||||
rfcomm_channel_nr = packet[3];
|
||||
printf("RFCOMM channel %u was assigned by BTdaemon\n", rfcomm_channel_nr);
|
||||
bt_send_cmd(&rfcomm_register_service_cmd, rfcomm_channel_nr, 0xffff); // reserved channel, mtu limited by l2cap
|
||||
break;
|
||||
|
||||
case RFCOMM_EVENT_SERVICE_REGISTERED:
|
||||
printf("RFCOMM_EVENT_SERVICE_REGISTERED\n");
|
||||
case DAEMON_EVENT_RFCOMM_SERVICE_REGISTERED:
|
||||
printf("DAEMON_EVENT_RFCOMM_SERVICE_REGISTERED\n");
|
||||
rfcomm_channel_nr = packet[3];
|
||||
// register SDP for our SPP
|
||||
spp_create_sdp_record((uint8_t*) spp_service_buffer, 0x10001, rfcomm_channel_nr, "RFCOMM Test");
|
||||
@ -123,7 +123,7 @@ void packet_handler(uint8_t packet_type, uint16_t channel, uint8_t *packet, uint
|
||||
bt_send_cmd(&btstack_set_discoverable, 1);
|
||||
break;
|
||||
|
||||
case RFCOMM_EVENT_CREDITS:
|
||||
case DAEMON_EVENT_RFCOMM_CREDITS:
|
||||
sprintf((char*)test_data, "\n\r\n\r-> %09u <- ", counter++);
|
||||
bt_send_rfcomm(rfcomm_channel_id, test_data, mtu);
|
||||
break;
|
||||
|
@ -218,10 +218,10 @@ static int loggingEnabled;
|
||||
#if 0
|
||||
static void l2cap_emit_credits(l2cap_channel_t *channel, uint8_t credits) {
|
||||
|
||||
log_info("L2CAP_EVENT_CREDITS local_cid 0x%x credits %u", channel->local_cid, credits);
|
||||
log_info("DAEMON_EVENT_L2CAP_CREDITS local_cid 0x%x credits %u", channel->local_cid, credits);
|
||||
|
||||
uint8_t event[5];
|
||||
event[0] = L2CAP_EVENT_CREDITS;
|
||||
event[0] = DAEMON_EVENT_L2CAP_CREDITS;
|
||||
event[1] = sizeof(event) - 2;
|
||||
little_endian_store_16(event, 2, channel->local_cid);
|
||||
event[4] = credits;
|
||||
@ -240,9 +240,9 @@ static void l2cap_hand_out_credits(void){
|
||||
}
|
||||
}
|
||||
static void rfcomm_emit_credits(rfcomm_channel_t * channel, uint8_t credits) {
|
||||
log_info("RFCOMM_EVENT_CREDITS cid 0x%02x credits %u", channel->rfcomm_cid, credits);
|
||||
log_info("DAEMON_EVENT_RFCOMM_CREDITS cid 0x%02x credits %u", channel->rfcomm_cid, credits);
|
||||
uint8_t event[5];
|
||||
event[0] = RFCOMM_EVENT_CREDITS;
|
||||
event[0] = DAEMON_EVENT_RFCOMM_CREDITS;
|
||||
event[1] = sizeof(event) - 2;
|
||||
little_endian_store_16(event, 2, channel->rfcomm_cid);
|
||||
event[4] = credits;
|
||||
@ -254,15 +254,15 @@ static void rfcomm_hand_out_credits(void){
|
||||
for (it = (btstack_linked_item_t *) rfcomm_channels; it ; it = it->next){
|
||||
rfcomm_channel_t * channel = (rfcomm_channel_t *) it;
|
||||
if (channel->state != RFCOMM_CHANNEL_OPEN) {
|
||||
// log_info("RFCOMM_EVENT_CREDITS: multiplexer not open");
|
||||
// log_info("DAEMON_EVENT_RFCOMM_CREDITS: multiplexer not open");
|
||||
continue;
|
||||
}
|
||||
if (!channel->credits_outgoing) {
|
||||
// log_info("RFCOMM_EVENT_CREDITS: no outgoing credits");
|
||||
// log_info("DAEMON_EVENT_RFCOMM_CREDITS: no outgoing credits");
|
||||
continue;
|
||||
}
|
||||
// channel open, multiplexer has l2cap credits and we didn't hand out credit before -> go!
|
||||
// log_info("RFCOMM_EVENT_CREDITS: 1");
|
||||
// log_info("DAEMON_EVENT_RFCOMM_CREDITS: 1");
|
||||
rfcomm_emit_credits(channel, 1);
|
||||
}
|
||||
}
|
||||
@ -724,7 +724,7 @@ static void send_l2cap_connection_open_failed(connection_t * connection, bd_addr
|
||||
|
||||
static void l2cap_emit_service_registered(void *connection, uint8_t status, uint16_t psm){
|
||||
uint8_t event[5];
|
||||
event[0] = L2CAP_EVENT_SERVICE_REGISTERED;
|
||||
event[0] = DAEMON_EVENT_L2CAP_SERVICE_REGISTERED;
|
||||
event[1] = sizeof(event) - 2;
|
||||
event[2] = status;
|
||||
little_endian_store_16(event, 3, psm);
|
||||
@ -734,7 +734,7 @@ static void l2cap_emit_service_registered(void *connection, uint8_t status, uint
|
||||
|
||||
static void rfcomm_emit_service_registered(void *connection, uint8_t status, uint8_t channel){
|
||||
uint8_t event[4];
|
||||
event[0] = RFCOMM_EVENT_SERVICE_REGISTERED;
|
||||
event[0] = DAEMON_EVENT_RFCOMM_SERVICE_REGISTERED;
|
||||
event[1] = sizeof(event) - 2;
|
||||
event[2] = status;
|
||||
event[3] = channel;
|
||||
@ -762,7 +762,7 @@ static void send_rfcomm_create_channel_failed(void * connection, bd_addr_t addr,
|
||||
// data: event(8), len(8), status(8), service_record_handle(32)
|
||||
static void sdp_emit_service_registered(void *connection, uint32_t handle, uint8_t status) {
|
||||
uint8_t event[7];
|
||||
event[0] = SDP_EVENT_SERVICE_REGISTERED;
|
||||
event[0] = DAEMON_EVENT_SDP_SERVICE_REGISTERED;
|
||||
event[1] = sizeof(event) - 2;
|
||||
event[2] = status;
|
||||
little_endian_store_32(event, 3, handle);
|
||||
@ -1076,9 +1076,9 @@ static int btstack_command_handler(connection_t *connection, uint8_t *packet, ui
|
||||
// enforce \0
|
||||
packet[3+248] = 0;
|
||||
rfcomm_channel = rfcomm_service_db_channel_for_service((char*)&packet[3]);
|
||||
log_info("RFCOMM_EVENT_PERSISTENT_CHANNEL %u", rfcomm_channel);
|
||||
log_info("DAEMON_EVENT_RFCOMM_SERVICE_REGISTERED %u", rfcomm_channel);
|
||||
uint8_t event[4];
|
||||
event[0] = RFCOMM_EVENT_PERSISTENT_CHANNEL;
|
||||
event[0] = DAEMON_EVENT_RFCOMM_SERVICE_REGISTERED;
|
||||
event[1] = sizeof(event) - 2;
|
||||
event[2] = 0;
|
||||
event[3] = rfcomm_channel;
|
||||
@ -1549,7 +1549,7 @@ static void daemon_packet_handler(void * connection, uint8_t packet_type, uint16
|
||||
return;
|
||||
}
|
||||
|
||||
case RFCOMM_EVENT_CREDITS:
|
||||
case DAEMON_EVENT_RFCOMM_CREDITS:
|
||||
// RFCOMM CREDITS received...
|
||||
daemon_retry_parked();
|
||||
break;
|
||||
@ -1570,7 +1570,7 @@ static void daemon_packet_handler(void * connection, uint8_t packet_type, uint16
|
||||
if (!connection) break;
|
||||
daemon_remove_client_rfcomm_channel(connection, cid);
|
||||
break;
|
||||
case RFCOMM_EVENT_SERVICE_REGISTERED:
|
||||
case DAEMON_EVENT_RFCOMM_SERVICE_REGISTERED:
|
||||
if (packet[2]) break;
|
||||
daemon_add_client_rfcomm_service(connection, packet[3]);
|
||||
break;
|
||||
|
@ -146,7 +146,9 @@ typedef uint8_t sm_key_t[16];
|
||||
#define BNEP_CHANNEL_NOT_CONNECTED 0xA1
|
||||
#define BNEP_DATA_LEN_EXCEEDS_MTU 0xA2
|
||||
|
||||
// COMMANDS
|
||||
|
||||
|
||||
// DAEMON COMMANDS
|
||||
|
||||
#define OGF_BTSTACK 0x3d
|
||||
|
||||
@ -252,6 +254,7 @@ typedef uint8_t sm_key_t[16];
|
||||
#define GATT_GET_MTU 0x82
|
||||
|
||||
|
||||
|
||||
// EVENTS
|
||||
|
||||
/**
|
||||
@ -301,14 +304,50 @@ typedef uint8_t sm_key_t[16];
|
||||
*/
|
||||
#define DAEMON_EVENT_REMOTE_NAME_CACHED 0x65
|
||||
|
||||
// internal daemon events
|
||||
|
||||
// data: event(8)
|
||||
// internal - data: event(8)
|
||||
#define DAEMON_EVENT_CONNECTION_OPENED 0x67
|
||||
|
||||
// data: event(8)
|
||||
// internal - data: event(8)
|
||||
#define DAEMON_EVENT_CONNECTION_CLOSED 0x68
|
||||
|
||||
// data: event(8), len(8), local_cid(16), credits(8)
|
||||
#define DAEMON_EVENT_L2CAP_CREDITS 0x74
|
||||
|
||||
/**
|
||||
* @format 12
|
||||
* @param status
|
||||
* @param psm
|
||||
*/
|
||||
#define DAEMON_EVENT_L2CAP_SERVICE_REGISTERED 0x75
|
||||
|
||||
/**
|
||||
* @format 21
|
||||
* @param rfcomm_cid
|
||||
* @param credits
|
||||
*/
|
||||
#define DAEMON_EVENT_RFCOMM_CREDITS 0x84
|
||||
|
||||
/**
|
||||
* @format 11
|
||||
* @param status
|
||||
* @param channel_id
|
||||
*/
|
||||
#define DEAMON_EVENT_RFCOMM_SERVICE_REGISTERED 0x85
|
||||
/**
|
||||
* @format 11
|
||||
* @param status
|
||||
* @param server_channel_id
|
||||
*/
|
||||
#define DAEMON_EVENT_RFCOMM_PERSISTENT_CHANNEL 0x86
|
||||
|
||||
/**
|
||||
* @format 14
|
||||
* @param status
|
||||
* @param service_record_handle
|
||||
*/
|
||||
#define DAEMON_EVENT_SDP_SERVICE_REGISTERED 0x90
|
||||
|
||||
|
||||
|
||||
// additional HCI events
|
||||
|
||||
@ -323,6 +362,7 @@ typedef uint8_t sm_key_t[16];
|
||||
*/
|
||||
#define HCI_EVENT_SCO_CAN_SEND_NOW 0x6F
|
||||
|
||||
|
||||
// L2CAP EVENTS
|
||||
|
||||
/**
|
||||
@ -360,17 +400,6 @@ typedef uint8_t sm_key_t[16];
|
||||
// data: event(8), len(8), handle(16)
|
||||
#define L2CAP_EVENT_TIMEOUT_CHECK 0x73
|
||||
|
||||
// ??
|
||||
// data: event(8), len(8), local_cid(16), credits(8)
|
||||
#define L2CAP_EVENT_CREDITS 0x74
|
||||
|
||||
/**
|
||||
* @format 12
|
||||
* @param status
|
||||
* @param psm
|
||||
*/
|
||||
#define L2CAP_EVENT_SERVICE_REGISTERED 0x75
|
||||
|
||||
/**
|
||||
* @format H2222
|
||||
* @param handle
|
||||
@ -406,7 +435,7 @@ typedef uint8_t sm_key_t[16];
|
||||
* @param rfcomm_cid
|
||||
* @param max_frame_size
|
||||
*/
|
||||
#define RFCOMM_EVENT_CHANNEL_OPENED 0x80
|
||||
#define RFCOMM_EVENT_CHANNEL_OPENED 0x80
|
||||
|
||||
/**
|
||||
* @format 2
|
||||
@ -428,28 +457,7 @@ typedef uint8_t sm_key_t[16];
|
||||
* @param line_status
|
||||
*/
|
||||
#define RFCOMM_EVENT_REMOTE_LINE_STATUS 0x83
|
||||
|
||||
/**
|
||||
* @format 21
|
||||
* @param rfcomm_cid
|
||||
* @param credits
|
||||
*/
|
||||
#define RFCOMM_EVENT_CREDITS 0x84
|
||||
|
||||
/**
|
||||
* @format 11
|
||||
* @param status
|
||||
* @param channel_id
|
||||
*/
|
||||
#define RFCOMM_EVENT_SERVICE_REGISTERED 0x85
|
||||
|
||||
/**
|
||||
* @format 11
|
||||
* @param status
|
||||
* @param server_channel_id
|
||||
*/
|
||||
#define RFCOMM_EVENT_PERSISTENT_CHANNEL 0x86
|
||||
|
||||
|
||||
/**
|
||||
* @format 21
|
||||
* @param rfcomm_cid
|
||||
@ -471,13 +479,6 @@ typedef uint8_t sm_key_t[16];
|
||||
#define RFCOMM_EVENT_CAN_SEND_NOW 0x89
|
||||
|
||||
|
||||
/**
|
||||
* @format 14
|
||||
* @param status
|
||||
* @param service_record_handle
|
||||
*/
|
||||
#define SDP_EVENT_SERVICE_REGISTERED 0x90
|
||||
|
||||
/**
|
||||
* @format 1
|
||||
* @param status
|
||||
|
@ -1034,25 +1034,6 @@ static inline uint16_t l2cap_event_incoming_connection_get_remote_cid(const uint
|
||||
return little_endian_read_16(event, 15);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Get field status from event l2cap_event_service_registered
|
||||
* @param event packet
|
||||
* @return status
|
||||
* @note: btstack_type 1
|
||||
*/
|
||||
static inline uint8_t l2cap_event_service_registered_get_status(const uint8_t * event){
|
||||
return event[2];
|
||||
}
|
||||
/**
|
||||
* @brief Get field psm from event l2cap_event_service_registered
|
||||
* @param event packet
|
||||
* @return psm
|
||||
* @note: btstack_type 2
|
||||
*/
|
||||
static inline uint16_t l2cap_event_service_registered_get_psm(const uint8_t * event){
|
||||
return little_endian_read_16(event, 3);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Get field handle from event l2cap_event_connection_parameter_update_request
|
||||
* @param event packet
|
||||
@ -1231,63 +1212,6 @@ static inline uint8_t rfcomm_event_remote_line_status_get_line_status(const uint
|
||||
return event[4];
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Get field rfcomm_cid from event rfcomm_event_credits
|
||||
* @param event packet
|
||||
* @return rfcomm_cid
|
||||
* @note: btstack_type 2
|
||||
*/
|
||||
static inline uint16_t rfcomm_event_credits_get_rfcomm_cid(const uint8_t * event){
|
||||
return little_endian_read_16(event, 2);
|
||||
}
|
||||
/**
|
||||
* @brief Get field credits from event rfcomm_event_credits
|
||||
* @param event packet
|
||||
* @return credits
|
||||
* @note: btstack_type 1
|
||||
*/
|
||||
static inline uint8_t rfcomm_event_credits_get_credits(const uint8_t * event){
|
||||
return event[4];
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Get field status from event rfcomm_event_service_registered
|
||||
* @param event packet
|
||||
* @return status
|
||||
* @note: btstack_type 1
|
||||
*/
|
||||
static inline uint8_t rfcomm_event_service_registered_get_status(const uint8_t * event){
|
||||
return event[2];
|
||||
}
|
||||
/**
|
||||
* @brief Get field channel_id from event rfcomm_event_service_registered
|
||||
* @param event packet
|
||||
* @return channel_id
|
||||
* @note: btstack_type 1
|
||||
*/
|
||||
static inline uint8_t rfcomm_event_service_registered_get_channel_id(const uint8_t * event){
|
||||
return event[3];
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Get field status from event rfcomm_event_persistent_channel
|
||||
* @param event packet
|
||||
* @return status
|
||||
* @note: btstack_type 1
|
||||
*/
|
||||
static inline uint8_t rfcomm_event_persistent_channel_get_status(const uint8_t * event){
|
||||
return event[2];
|
||||
}
|
||||
/**
|
||||
* @brief Get field server_channel_id from event rfcomm_event_persistent_channel
|
||||
* @param event packet
|
||||
* @return server_channel_id
|
||||
* @note: btstack_type 1
|
||||
*/
|
||||
static inline uint8_t rfcomm_event_persistent_channel_get_server_channel_id(const uint8_t * event){
|
||||
return event[3];
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Get field rfcomm_cid from event rfcomm_event_remote_modem_status
|
||||
* @param event packet
|
||||
@ -1317,25 +1241,6 @@ static inline uint16_t rfcomm_event_can_send_now_get_rfcomm_cid(const uint8_t *
|
||||
return little_endian_read_16(event, 2);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Get field status from event sdp_event_service_registered
|
||||
* @param event packet
|
||||
* @return status
|
||||
* @note: btstack_type 1
|
||||
*/
|
||||
static inline uint8_t sdp_event_service_registered_get_status(const uint8_t * event){
|
||||
return event[2];
|
||||
}
|
||||
/**
|
||||
* @brief Get field service_record_handle from event sdp_event_service_registered
|
||||
* @param event packet
|
||||
* @return service_record_handle
|
||||
* @note: btstack_type 4
|
||||
*/
|
||||
static inline uint32_t sdp_event_service_registered_get_service_record_handle(const uint8_t * event){
|
||||
return little_endian_read_32(event, 3);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Get field status from event sdp_event_query_complete
|
||||
* @param event packet
|
||||
|
Loading…
x
Reference in New Issue
Block a user