manual: added references to figures

This commit is contained in:
Milanka Ringwald 2015-06-18 12:44:40 +02:00
parent 522eb16b98
commit b51d662ece
5 changed files with 20 additions and 21 deletions

View File

@ -17,7 +17,7 @@ the architecture follows these fundamental design guidelines:
- *Statically bounded memory (optionally)* - The number of maximum
connections/channels/services can be configured.
Figure [below](#fig:BTstackArchitecture) shows the general architecture of a
Figure {@fig:BTstackArchitecture} shows the general architecture of a
BTstack-based single-threaded application that includes the BTstack run loop.
The Main Application contains the application logic, e.g., reading a sensor value and
providing it via the Communication Logic as a SPP Server. The
@ -28,7 +28,7 @@ for providing timers and processing incoming data.
<a name="fig:BTstackArchitecture"></a>
![Architecture of a BTstack-based application.](picts/btstack-architecture.png)
![Architecture of a BTstack-based application.](picts/btstack-architecture.png) {#fig:BTstackArchitecture}
## Single threaded design

View File

@ -91,7 +91,7 @@ before its event handler callback is executed. If you need a periodic
timer, you can re-register the same timer source in the callback
function, as shown in Listing [PeriodicTimerHandler]. Note that BTstack
expects to get called periodically to keep its time, see Section
[section:timeAbstraction] for more on the tick hardware abstraction.
[on time abstraction](#section:test) for more on the tick hardware abstraction.
The run loop is set up by calling *run_loop_init* function for
embedded systems:
@ -111,7 +111,7 @@ communication over the UART.
<a nam="sec:btstack_initialization"></a>
## BTstack initialization
## BTstack initialization {#section:test}
To initialize BTstack you need to [initialize the memory](#section:memory_configuration)
and [the run loop](#section:run_loop) respectively, then setup HCI and all needed higher

View File

@ -17,11 +17,10 @@ Communication Logic for its Bluetooth communication.
In a single-threaded environment, all application components run on the
same (single) thread and use direct function calls as shown in Figure [below](#fig:BTstackSingle).
same (single) thread and use direct function calls as shown in
Figure {@fig:BTstackSingle}.
<a name="fig:BTstackSingle"></a>
![BTstack in single-threaded environment](picts/singlethreading-btstack.png)
![BTstack in single-threaded environment.](picts/singlethreading-btstack.png) {#fig:BTstackSingle}
BTstack provides a basic run loop that supports the concept of data
sources and timers, which can be registered centrally. This works well
@ -57,16 +56,17 @@ common options:
- The Communication Logic is implemented on a dedicated BTstack
thread, and the Main Application communicates with the BTstack
thread via application-specific messages over an Interprocess
Communication (IPC). This option results in less code and quick
adaption.
Communication (IPC) as depicted in Figure {@fig:MTMonolithic}.
This option results in less code and quick adaption.
![](picts/multithreading-monolithic.png)
![BTstack in multi-threaded environment - monolithic solution.](picts/multithreading-monolithic.png) {#fig:MTMonolithic}
- BTstack must be extended to run standalone, i.e, as a Daemon, on a
dedicated thread and the Main Application controls this daemon via
BTstack extended HCI command over IPC - this is used for the
non-embedded version of BTstack e.g., on the iPhone.
This option requires more code but provides more flexibility.
non-embedded version of BTstack e.g., on the iPhone and it is depicted
in Figure {@fig:MTDaemon}. This option requires more code but provides
more flexibility.
![](picts/multithreading-btdaemon.png)
![BTstack in multi-threaded environment - solution with daemon.](picts/multithreading-btdaemon.png) {#fig:MTDaemon}

View File

@ -1,7 +1,7 @@
In this section, we highlight the BTstack components that need to be
adjusted for different hardware platforms.
<a name="sec:timeAbstraction"></a>
<a name="section:timeAbstraction"></a>
## Time Abstraction Layer
@ -11,9 +11,8 @@ system clock with millisecond resolution. BTstacks timing requirements
are quite low as only Bluetooth timeouts in the second range need to be
handled.
<a name="sec:tickAbstraction"></a>
### Tick Hardware Abstraction
### Tick Hardware Abstraction ### {#section:tickAbstraction}
If your platform doesnt require a system clock or if you already have a

View File

@ -34,12 +34,12 @@ between a peripheral and iOS device, the iAP1 and iAP2 protocols of the
Made for iPhone program can be used instead of GATT. Please contact us
directly for information on BTstack and MFi.
Figure {@fig:BTstackProtocolArchitecture} depicts Bluetooth protocols
and profiles that are currently implemented by BTstack.
In the following, we first explain how the various Bluetooth protocols
are used in BTstack. In the next chapter, we go over the profiles.
are used in BTstack. In the next chapter, we go over the profiles.
<a name="fig:BTstackProtocolArchitecture"></a>
![Architecture of a BTstack-based application.](picts/btstack-protocols.png)
![Architecture of a BTstack-based application.](picts/btstack-protocols.png) {#fig:BTstackProtocolArchitecture}
## HCI - Host Controller Interface