bt_gatt_client_connect()

bt_gatt_client_connect()

Description

Connects to Bluetooth device.

Syntax

bt_gatt_client_connect(connection_id, addr_type, peer_addr[]);

Parameters

Variable

Input

Variable

Input

connection_id

Custom user configurable connection ID for conveniently referencing in other functions. Input could be either 0 or 1

addr_type

Possible MAC address types of peer device:

BT_ADDR_PUBLIC

BT_ADDR_RANDOM

peer_addr[]

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.