mirror of
https://github.com/bluekitchen/btstack.git
synced 2025-03-23 10:21:12 +00:00
added btstack_get_version
This commit is contained in:
parent
19b25e5f75
commit
1b0e3922ba
@ -103,6 +103,9 @@
|
||||
// data: none
|
||||
#define BTSTACK_EVENT_POWERON_FAILED 0x62
|
||||
|
||||
// data: majot (8), minor (8), revision(16)
|
||||
#define BTSTACK_EVENT_VERSION 0x63
|
||||
|
||||
// data: event (8), len(8), status (8), address(48), handle (16), psm (16), source_cid(16), dest_cid (16)
|
||||
#define L2CAP_EVENT_CHANNEL_OPENED 0x70
|
||||
|
||||
@ -191,6 +194,8 @@ extern hci_cmd_t hci_write_simple_pairing_mode;
|
||||
extern hci_cmd_t btstack_get_state;
|
||||
extern hci_cmd_t btstack_set_power_mode;
|
||||
extern hci_cmd_t btstack_set_acl_capture_mode;
|
||||
extern hci_cmd_t btstack_get_version;
|
||||
|
||||
// L2CAP client/server commands - see l2cap.c for info on parameters
|
||||
extern hci_cmd_t l2cap_create_channel;
|
||||
extern hci_cmd_t l2cap_disconnect;
|
||||
|
@ -115,6 +115,9 @@ static int btstack_command_handler(connection_t *connection, uint8_t *packet, ui
|
||||
l2cap_set_capture_connection(NULL);
|
||||
}
|
||||
break;
|
||||
case BTSTACK_GET_VERSION:
|
||||
hci_emit_btstack_version();
|
||||
break;
|
||||
case L2CAP_CREATE_CHANNEL:
|
||||
bt_flip_addr(addr, &packet[3]);
|
||||
psm = READ_BT_16(packet, 9);
|
||||
|
26
src/hci.c
26
src/hci.c
@ -43,6 +43,8 @@
|
||||
#include "hci.h"
|
||||
#include "hci_dump.h"
|
||||
|
||||
#include <btstack/version.h>
|
||||
|
||||
// temp
|
||||
#include "l2cap.h"
|
||||
|
||||
@ -434,7 +436,7 @@ void hci_emit_state(){
|
||||
uint8_t len = 3;
|
||||
uint8_t event[len];
|
||||
event[0] = BTSTACK_EVENT_STATE;
|
||||
event[1] = 1;
|
||||
event[1] = len - 3;
|
||||
event[2] = hci_stack.state;
|
||||
hci_dump_packet( HCI_EVENT_PACKET, 0, event, len);
|
||||
hci_stack.event_packet_handler(event, len);
|
||||
@ -444,6 +446,7 @@ void hci_emit_connection_complete(hci_connection_t *conn){
|
||||
uint8_t len = 13;
|
||||
uint8_t event[len];
|
||||
event[0] = HCI_EVENT_CONNECTION_COMPLETE;
|
||||
event[1] = len - 3;
|
||||
event[2] = 0; // status = OK
|
||||
bt_store_16(event, 3, conn->con_handle);
|
||||
bt_flip_addr(&event[5], conn->address);
|
||||
@ -457,7 +460,7 @@ void hci_emit_l2cap_check_timeout(hci_connection_t *conn){
|
||||
uint8_t len = 4;
|
||||
uint8_t event[len];
|
||||
event[0] = L2CAP_EVENT_TIMEOUT_CHECK;
|
||||
event[1] = 2;
|
||||
event[1] = len - 2;
|
||||
bt_store_16(event, 2, conn->con_handle);
|
||||
hci_dump_packet( HCI_EVENT_PACKET, 0, event, len);
|
||||
hci_stack.event_packet_handler(event, len);
|
||||
@ -467,16 +470,31 @@ void hci_emit_nr_connections_changed(){
|
||||
uint8_t len = 3;
|
||||
uint8_t event[len];
|
||||
event[0] = BTSTACK_EVENT_NR_CONNECTIONS_CHANGED;
|
||||
event[1] = 1;
|
||||
event[1] = len - 2;
|
||||
event[2] = nr_hci_connections();
|
||||
hci_dump_packet( HCI_EVENT_PACKET, 0, event, len);
|
||||
hci_stack.event_packet_handler(event, len);
|
||||
}
|
||||
|
||||
void hci_emit_hci_open_failed(){
|
||||
uint8_t len = 1;
|
||||
uint8_t len = 2;
|
||||
uint8_t event[len];
|
||||
event[0] = BTSTACK_EVENT_POWERON_FAILED;
|
||||
event[1] = len - 2;
|
||||
hci_dump_packet( HCI_EVENT_PACKET, 0, event, len);
|
||||
hci_stack.event_packet_handler(event, len);
|
||||
}
|
||||
|
||||
|
||||
void hci_emit_btstack_version() {
|
||||
uint8_t len = 6;
|
||||
uint8_t event[len];
|
||||
event[0] = BTSTACK_EVENT_VERSION;
|
||||
event[1] = len - 2;
|
||||
event[len++] = BTSTACK_MAJOR;
|
||||
event[len++] = BTSTACK_MINOR;
|
||||
bt_store_16(event, len, BTSTACK_REVISION);
|
||||
hci_dump_packet( HCI_EVENT_PACKET, 0, event, len);
|
||||
hci_stack.event_packet_handler(event, len);
|
||||
}
|
||||
|
||||
|
@ -70,6 +70,9 @@
|
||||
// set capture mode: @param on
|
||||
#define BTSTACK_SET_ACL_CAPTURE_MODE 0x03
|
||||
|
||||
// get BTstack version
|
||||
#define BTSTACK_GET_VERSION 0x04
|
||||
|
||||
// create l2cap channel: @param bd_addr(48), psm (16)
|
||||
#define L2CAP_CREATE_CHANNEL 0x20
|
||||
|
||||
@ -197,3 +200,5 @@ void hci_emit_connection_complete(hci_connection_t *conn);
|
||||
void hci_emit_l2cap_check_timeout(hci_connection_t *conn);
|
||||
void hci_emit_nr_connections_changed();
|
||||
void hci_emit_hci_open_failed();
|
||||
void hci_emit_btstack_version();
|
||||
|
||||
|
@ -267,6 +267,10 @@ OPCODE(OGF_BTSTACK, BTSTACK_SET_ACL_CAPTURE_MODE), "1"
|
||||
// mode: 0 = off, 1 = on
|
||||
};
|
||||
|
||||
hci_cmd_t btstack_get_version = {
|
||||
OPCODE(OGF_BTSTACK, BTSTACK_GET_VERSION), ""
|
||||
};
|
||||
|
||||
hci_cmd_t l2cap_create_channel = {
|
||||
OPCODE(OGF_BTSTACK, L2CAP_CREATE_CHANNEL), "B2"
|
||||
// @param bd_addr(48), psm (16)
|
||||
|
Loading…
x
Reference in New Issue
Block a user