General considerations

This section will describe the Bluetooth module API. The functions which manage Bluetooth module belong to the class WaspBT_Pro, and the object created to use them is defined as BT_Pro. All of them are described below including some examples of use.

Waspmote libraries

Waspmote Bluetooth files

WaspBT_Pro.h, WaspBT_Pro.cpp.

*Note: If you are planning to detect a big amount of Bluetooth devices, it is highly recommended to increase RX buffer of Waspmote UART. To do that, go to file wiring_serial.c and change value of RX_BUFFER_SIZE to 1024. More information can be obtained in the Libelium forum.*

Constructor

To start using Waspmote Bluetooth library, an object from class WaspBT must be created. This object, called BT_Pro, is created inside Waspmote Bluetooth library and it is public to all libraries. It is used through this guide to show how Waspmote Bluetooth library works.

When creating this constructor, all the variables are defined with an initial value by default.

API functions

Next tables show all functions and variables contained in class "BT_Pro", including a brief description. In the next section, main functions are described in deep. However, not relevant ones will be ignored.

In the Waspmote Development section you can find complete examples about using this module: http://www.libelium.com/development/waspmote/examples

Public functions:

ON()

Turns on Bluetooth module

OFF()

Turns off Bluetooth module

checkActiveConnections()

Checks if there are active connections

createConnection()

Creates a transparent connection with other Bluetooth module using serial port profile

enterCommandMode()

Enters command mode of Bluetooth module

getNodeID()

Reads Bluetooth Node Identifier

GetOwnMac()

Gets Bluetooth module MAC address

getOwnName()

Gets public name of Bluetooth device

getRSSI()

Returns the Receiver Signal Strength Indication of a link

getTemp()

Reads internal temperature sensor of Bluetooth module

init()

Initializes some parameters of the module

printInquiry();

Prints last inquiry results. Use only for debugging purposes

removeConnection()

Removes a transparent connection

reset()

Resets the module

returnToDataMode()

Switches from command mode to data mode

scanNetwok (time , power)

Normal scan

scanNetwokLimited (Max_DEVICES, power)

Time limited scan

scanDevice (MAC, maxtime, power)

Scans for specific device

scanNetworkName ( time, power)

Scans showing also friendly name

sendData()

Sends data trough a transparent connection with other Bluetooth module using serial port profile

setNodeID(ID)

Saves Bluetooth Node identifier into the EEPROM

setOwnName(publicName)

Sets public name on Bluetooth device module. Maximum length is 20 chars.

sleep()

Turns Bluetooth module into Sleep mode

wakeUp()

Wakes up Bluetooth module from Sleep mode

Private functions:

changeInquiryPower()

Changes Inquiry TX power

createSDFiles()

Creates required files by Bluetooth module into SD card

eraseSDFiles()

Erases files created by Bluetooth module on SD card

getSetDateID()

Reads nodeID and date and stores it

lookForAnswer()

Searches a string in a text

parseBlock()

Parses received data from module

parseNames()

Looks for friendly names and stores them

ReadCommandAnswer()

Reads command answer and saves it

ScanNetworkCancel()

Cancels currently inquiry

sendCommand()

Sends command to Bluetooth module

setInquiryTime()

Sets time to be waiting for inquiry answer

waitInquiryAnswer()

Reads UART while inquiry is being answered

waitScanDeviceAnswer()

Reads UART while inquiry is being answered

Variables

Public variables are described below. Private variables are not relevant.

uint16_t numberOfDevices

Stores number of discovered devices in last inquiry

char temperature

Stores module temperature

uint32_t numLinesBefore

Stores number of lines of devices file before inquiry

uint32_t numLinesAfter

Stores number of lines of devices file after inquiry

uint8_t commandMode

Variable to know if module is in data or command mode

uint8_t activeConnections

Variable to store number of active connections

Waspmote reboot

When Waspmote is rebooted or it comes up from a hibernate state (battery is disconnected), the application code will start again, creating all the variables and objects from the beginning.

Constants predefined

There are some constants predefined in the Bluetooth library. Internal parameters like module baudrate, file names or transmission powers are defined here.

BLOCK_MAC_SIZE

Block size used to store MAC address

BLOCK_SIZE

Block size used to parse data

BT_BLUEGIGA_RATE

Default Baudrate of Bluetooth module

BT_NODE_ID_ADDR

EPROM address where node ID is stored.

BT_PW_1

Bluetooth power pin when UART1 is used.

BT_PW_0

Bluetooth power pin when UART0 is used.

COMMAND_SIZE

Reserved bytes for Bluetooth module commands.

DEFAULT_MAX_INQUIRY_RESULTS

Maximum inquiry results defined by internal firmware

ENABLE_DATE_AND_TIME

Uncomment to enable date and time in each device

ENABLE_FRIENDLY_NAME

Uncomment to enable friendly name features

ENDSTRING

File definition. By default “---”

ERRORSD1, ERRORSD2, ERRORSD2

SD card error codes for debugging.

INQFILE

File name where inquiry is stored

INQFILEHEAD

"Discovered devices". Format of inquiry file.

RX_BUFFER

Buffer for received data

TOTAL

File definition. By default “total:”

TX_POWER_0....6

TX power values accepted by module in dBm. 0 is minimum.

TX_POWER_DEFAULT_WT12

By default module is at this TX power

TX_POWER_MAX_WT12

Max TX power. Is equal to TX_POWER_6

Last updated