Symbian
Symbian Developer Library

SYMBIAN OS V9.4

Feedback

[Index] [Previous] [Next]


Bluetooth Stack overview

The Symbian OS Bluetooth Protocol Stack provides a software API that is used to configure and initialise the drivers, allowing the device to communicate with other devices over a Bluetooth® connection.

[Top]


Purpose

The Bluetooth protocol stack includes several protocol layers, as is shown in Bluetooth Stack PRT. As Bluetooth is a set of communication protocols that allow two or more devices to communicate over the air there must be a similar protocol stack on each device participating in the network. The Symbian OS Bluetooth stack provides APIs that enable the stack to be loaded when needed, to listen for an incoming connection request or to look for other Bluetooth devices. The Bluetooth stack is a simple concept that ensures any device wishing to establish a connection over the Bluetooth baseband is able to communicate with suitable devices.

Intended audience

This document is intended to be read by all developers although it references some APIs that are only available to licensee developers.

[Top]


Required background

The Bluetooth stack is defined by the Bluetooth SIG in the "Draft Bluetooth Core Specification v2.1 + EDR 2" Part E "Host Controller Interface Functional Specification" section 1.1 "Lower Layers of the Bluetooth Software Stack", available from the Bluetooth specification documents page and other places.

Additionally, Symbian has produced several guides that may be useful for hardware implementers including:

[Top]


Key concepts/terms

The following terms are introduced here and will be used throughout the Bluetooth stack documentation.

Layer

The various protocols work in such a way that they can be seen as a stack of protocols. Although some protocols exist on the same level in the stack, there are several levels that make up the stack. When talking about a layer we are talking about a level of this stack.

Protocol

A mechanism for handling data.

Device driver

Software that provides instructions to make a piece of hardware perform its intended function.

[Top]


Architectural relationships

The Bluetooth stack is the most fundamental of all Symbian OS Bluetooth components. The stack configures the software and hardware so data can be managed and communicated as appropriate for the Bluetooth profile being used. The standard socket server framework is used to load the Bluetooth stack.

Note: that when using the Remote control framework the stack setup is handled in the background.

[Top]


Bluetooth stack summary

The Symbian OS Bluetooth subsystem is automatically configured from the settings given through the client server framework. You create a standard client server framework and configure it in such a way that when it is started the appropriate pieces are loaded. In a nut shell, you need to load the appropriate device drivers (See the Symbian OS device driver model for more) and the protocols using the standard client server framework to Load the Bluetooth stack.

Loading the Bluetooth stack

There are three things that need to be configured to load the Bluetooth stack, they are the:

Individually each of these things represents a discrete aspect of the Bluetooth stack. Collectively they allow you to load the Bluetooth stack in the most appropriate way for your needs at the time. You will see by the end of this overview that there are many potential configurations for the Bluetooth stack and you will also know how to go about creating the configuration you need. We will have a closer look at each of the three parts here:


Physical device loader

The physical device driver represents the transport layer of the stack.

Physical device options

The physical device loader is provided by:

Related APIs

Logical device loader

The logical device driver handles packaging the data coming from the protocol and sending it in an appropriate format to the physical device for transmission to the remote device.

Logical device options

The Logical device loader is provided by:

Related APIs

Protocol loader

The following protocols can be loaded:

Protocol options

The protocol loader is provided by:

Related APIs

[Top]


Typical uses

There are only two tasks for the Bluetooth stack component; they are loading and unloading the stack.

Bluetooth Stack Users

Users of the Bluetooth stack component include:

Please refer to the tutorials for more information.

[Top]


See also

The following tutorials are provided: