Select one of the symbols to view example projects that use it.
 
Outline
#define HCI_TRANSPORT_H
#include "btstack_config.h"
#include "btstack_defines.h"
#include <stdint.h>
hci_transport_t
hci_transport_config_type_t
hci_transport_config_t
hci_transport_config_uart_t
Files
loading...
SourceVuRaspberry Pi Pico SDK and ExamplesBluetooth LE Stacksrc/hci_transport.h
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
/* * Copyright (C) 2014 BlueKitchen GmbH * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. Neither the name of the copyright holders nor the names of * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * 4. Any redistribution, use, or modification is done solely for * personal benefit and not for any commercial purpose or for * monetary gain. * * THIS SOFTWARE IS PROVIDED BY BLUEKITCHEN GMBH AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BLUEKITCHEN * GMBH OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF * THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * * Please inquire about commercial licensing options at * contact@bluekitchen-gmbh.com * *//* ... */ /** * @title HCI Transport * * The API allows BTstack to use different transport interfaces. * *//* ... */ #ifndef HCI_TRANSPORT_H #define HCI_TRANSPORT_H #include "btstack_config.h" #include "btstack_defines.h" #include <stdint.h> #if defined __cplusplus extern "C" { #endif /* API_START */ /* HCI packet types */ typedef struct { /** * transport name *//* ... */ const char * name; /** * init transport * @param transport_config *//* ... */ void (*init) (const void *transport_config); /** * open transport connection *//* ... */ int (*open)(void); /** * close transport connection *//* ... */ int (*close)(void); /** * register packet handler for HCI packets: ACL, SCO, and Events *//* ... */ void (*register_packet_handler)(void (*handler)(uint8_t packet_type, uint8_t *packet, uint16_t size)); /** * support async transport layers, e.g. IRQ driven without buffers *//* ... */ int (*can_send_packet_now)(uint8_t packet_type); /** * send packet *//* ... */ int (*send_packet)(uint8_t packet_type, uint8_t *packet, int size); /** * extension for UART transport implementations *//* ... */ int (*set_baudrate)(uint32_t baudrate); /** * extension for UART H5 on CSR: reset BCSP/H5 Link *//* ... */ void (*reset_link)(void); /** * extension for USB transport implementations: config SCO connections *//* ... */ void (*set_sco_config)(uint16_t voice_setting, int num_connections); ...} hci_transport_t; typedef enum { HCI_TRANSPORT_CONFIG_UART, HCI_TRANSPORT_CONFIG_USB ...} hci_transport_config_type_t; typedef struct { hci_transport_config_type_t type; ...} hci_transport_config_t; typedef struct { hci_transport_config_type_t type; // == HCI_TRANSPORT_CONFIG_UART uint32_t baudrate_init; // initial baud rate uint32_t baudrate_main; // = 0: same as initial baudrate int flowcontrol; // const char *device_name; int parity; // see btstack_uart.h BTSTACK_UART_PARITY ...} hci_transport_config_uart_t; /* API_END */ #if defined __cplusplus }extern "C" { ... } #endif /* ... */ #endif // HCI_TRANSPORT_H
Details