bt_gatt_client_connect()
Description
Connects to Bluetooth device.
Syntax
bt_gatt_client_connect(connection_id, addr_type, peer_addr[]);
Parameters
Variable | Input |
|---|---|
| Custom user configurable connection ID for conveniently referencing in other functions. Input could be either 0 or 1 |
| Possible MAC address types of peer device: BT_ADDR_PUBLIC BT_ADDR_RANDOM |
| Array of peer device MAC address. |
Returns
Return value | Return explanation |
SCRIPT_OPERATION_SUCCESS | Connection successful. |
SCRIPT_OPERATION_FAILED | Failed to connect. |
SCRIPT_PARAM_INVALID | Given address array size is smaller than it should be. |
SCRIPT_NO_ACCESS | Bluetooth GATT client is not initialized. |
Function call example
#include <io>
#include <read>
#include <float>
#include <string>
#include <core>
#include <write>
#include <define>
#include <socket>
#include <bluetooth>
#define FIRST_CONNECTION 0
#define SECOND_CONNECTION 1
new peer_mac_address[] = [0xFF, 0x48, 0x80, 0x33, 0xE3, 0xA8];
main()
{
bt_init();
bt_gatt_client_init();
while (bt_gatt_client_connect(FIRST_CONNECTION, BT_ADDR_RANDOM, peer_mac_address) != SCRIPT_OPERATION_SUCCESS)
{
Delay(100);
}
for(;;)
{
Delay(100);
}
}
Debug example
This example initializes BLE, then initializes GATT Client module and connects to peer device. Example uses debug_print function to print information log to Initialized peripheral.
#include <io>
#include <read>
#include <float>
#include <string>
#include <core>
#include <write>
#include <define>
#include <socket>
#include <bluetooth>
#include <debug>
#define RS232_SPEED 115200
#define WORD_LENGTH WORDLENGTH_8
#define STOP_BITS STOPBITS_1
#define PARITY PARITY_NONE
#define FIRST_CONNECTION 0
#define SECOND_CONNECTION 1
new peer_mac_address[] = [0xFF, 0x48, 0x80, 0x33, 0xE3, 0xA8];
new return_code = SCRIPT_OPERATION_SUCCESS;
main()
{
Init(RS232, RS232_SPEED, WORD_LENGTH, STOP_BITS, PARITY);
debug_init(RS232);
return_code = bt_init();
if (return_code != SCRIPT_OPERATION_SUCCESS)
{
// Handle failed bt_init here
debug_print("bt_init failed\r\n");
}
else
{
debug_print("bt_init succeeded\r\n");
}
return_code = bt_gatt_client_init();
if (return_code != SCRIPT_OPERATION_SUCCESS)
{
// Handle failed bt_gatt_client_init here
debug_print("bt_gatt_client_init failed\r\n");
}
else
{
debug_print("bt_gatt_client_init succeeded\r\n");
}
debug_print("Connecting to a device with this MAC address: %X:%X:%X:%X:%X:%X\r\n", peer_mac_address[0],
peer_mac_address[1], peer_mac_address[2], peer_mac_address[3], peer_mac_address[4], peer_mac_address[5]);
while (bt_gatt_client_connect(FIRST_CONNECTION, BT_ADDR_RANDOM, peer_mac_address) != SCRIPT_OPERATION_SUCCESS)
{
debug_print("bt_gatt_client_connect time-out\r\n");
Delay(100);
}
debug_print("Connected successfully\r\n");
for(;;)
{
Delay(1000);
}
}
Notes and Warnings
It is essential to know correct mac address type in order to connect to your peer device.
At the moment only one connection is supported.
To use same connection id, you’d need to disconnect first in order to free up used connection ID slot.