|
1 | 1 | # HCI abstraction architecture
|
2 | 2 |
|
3 | 3 | The HCI driver is split into two interfaces:
|
4 |
| -* `CordioHCIDriver`: It is the driver for a BLE controller. It contains |
5 |
| -the primitive necessary to start and initialize the controller. |
6 |
| -* `CordioHCITransport`: It is the transport interface which is used by the HCI |
| 4 | +* `CordioHCIDriver`: It is the driver for a BLE controller. It contains |
| 5 | +the primitive necessary to start and initialize the controller. |
| 6 | +* `CordioHCITransport`: It is the transport interface which is used by the HCI |
7 | 7 | driver to communicate with the controller.
|
8 | 8 |
|
9 |
| -A `CordioHCITransport` is injected into a `CordioHCIDriver` at construction |
| 9 | +A `CordioHCITransport` is injected into a `CordioHCIDriver` at construction |
10 | 10 | time. A `CordioHCIDriver` is also injected at construction time of a `BLECordio`
|
11 |
| -instance. |
| 11 | +instance. |
12 | 12 |
|
13 |
| -This can be summarized in the following diagram: |
| 13 | +This can be summarized in the following diagram: |
14 | 14 |
|
15 | 15 | 
|
16 | 16 |
|
17 | 17 | ## CordioHCITransportDriver
|
18 | 18 |
|
19 |
| -The single responsabilities of this a driver is to handle the communication with |
20 |
| -the Bluetooth module. Basically, sending and reading bytes. |
| 19 | +The single responsibility of this driver is to handle the communication with |
| 20 | +the Bluetooth module. Basically, sending and reading bytes. |
21 | 21 |
|
22 |
| -Given that the Bluetooth specification define standard transport interface, an |
23 |
| -implementation of the H4 interface is bundled in this port. It might be extended |
24 |
| -in the future with an implementation of the H5 interface. However there is no |
| 22 | +Given that the Bluetooth specification defines standard transport interface, an |
| 23 | +implementation of the H4 interface is bundled in this port. It might be extended |
| 24 | +in the future with an implementation of the H5 interface. However, there is no |
25 | 25 | plan to provide the SDIO implementation at the moment.
|
26 | 26 |
|
27 |
| -This interface is defined in the header file |
| 27 | +This interface is defined in the header file |
28 | 28 | [CordioHCITransportDriver.h](../driver/CordioHCITransportDriver.h)
|
29 | 29 |
|
30 | 30 | ## CordioHCIDriver
|
31 | 31 |
|
32 |
| -The responsibilities of this driver are: |
33 |
| -* Provide the memory which will used by the Bluetooth stack. |
34 |
| -* Initialize the bluetooth controller. |
35 |
| -* Handle the reset/startup sequence of the bluetooth controller. |
| 32 | +The responsibilities of this driver are: |
| 33 | +* Provide the memory which will used by the Bluetooth stack. |
| 34 | +* Initialize the Bluetooth controller. |
| 35 | +* Handle the reset/startup sequence of the Bluetooth controller. |
36 | 36 |
|
37 |
| -This interface is defined in the header file |
| 37 | +This interface is defined in the header file |
38 | 38 | [CordioHCIDriver.h](../driver/CordioHCIDriver.h)
|
39 | 39 |
|
40 |
| -A partial implementation is present in the file |
41 |
| -[CordioHCIDriver.cpp](../driver/CordioHCIDriver.cpp). It defines the function |
42 |
| -delivering memory to the stack and a complete reset sequence. However it does |
43 |
| -not define any initialization for the Bluetooth controller, this part being |
44 |
| -specific to the controller used. |
| 40 | +A partial implementation is present in the file |
| 41 | +[CordioHCIDriver.cpp](../driver/CordioHCIDriver.cpp). It defines the function |
| 42 | +delivering memory to the stack and a complete reset sequence. However, it does |
| 43 | +not define any initialization for the Bluetooth controller, this part being |
| 44 | +specific to the controller used. |
0 commit comments