🤖
LinkIt 7697 BlocklyDuino 使用指南
  • LinkIt 7697 BlocklyDuino 使用指南
    • 認識 LinkIt 7697
    • 認識 BlocklyDuino
    • BlocklyDuino v2 & v3 比較
    • 安裝開發環境 (v2)
      • 安裝 Arduino 編輯器
      • 安裝驅動並連接開發板
      • 安裝 BlocklyDuino 編輯器
      • 連結兩個編輯器並上傳程式
    • 安裝開發環境 (v3)
    • BlocklyDuino 基礎操作
    • 實作範例教學
      • A01. 內建 LED 閃爍
      • A02. 外接 LED 閃爍
      • A03. 外接 LED 呼吸燈
      • A04. RGB LED 顏色變化
      • A05. 外部按鈕控制開關
      • A06. 蜂鳴器播放聲音
      • A07 .可變電阻控制電壓輸出
      • A08. 伺服馬達控制
      • A21. DHT: 溫濕度感應器
      • A22. HTU21D: 溫溼度感應器
      • A23. PMSX003: PM2.5 感測器
      • A24. HC-SR04P: 超音波測距
      • A25. ADXL345: 加速規(動態)
      • A26. ADXL345: 加速規(手勢)
      • A27. 1602/2004: 液晶顯示模組
      • A28. WS2812: RGB 彩色燈條
      • A29. MFRC522: RFID
      • B00. Grove 相關基礎知識
      • B01. Grove 光感應器
      • B02. Grove 超音波測距感應器
      • B03. Grove 溫溼度感應器
      • B04. Grove 繼電器
      • B05. Grove LED 燈條
      • B06. Grove OLED 顯示器
      • C01. 雲端控制 LED 開關
      • C02. 上傳溫溼度到雲端
      • D01. 手機透過 BLE 讀寫裝置資料
      • E01. 遙控器: 按鈕控制 LED
    • 資源鏈結
  • LinkIt 7697 - Arduino IDE 開發指南
    • 環境設定
      • 設定 Arduino IDE
      • 將 LinkIt 7697 連接到電腦
        • 在 Windows 上安裝 CP2102N 驅動程式
        • 在 macOS 上安裝 CP2102N 驅動程式
      • 執行第一個程式
    • 開發指南
      • GPIO
      • UART
      • ADC
      • EINT (外部中斷 / External Interrupt)
      • I2C
      • SPI
      • EEPROM
      • Timer
      • Flash (索引式儲存空間)
      • RTC (Real-Time Clock)
      • Software Serial
      • 使用 Wi-Fi 函式庫
      • 使用 MCS 函式庫
        • 連接到 MCS
        • 連接到 MCSLite
          • 建立可透過 MCS Lite 控制的 Beacon
        • MCS 函式庫 API 使用手冊
          • MCSDevice
          • MCSLiteDeviceMCSLiteDevice
          • MCSDataChannel 相關類別
      • 使用 BLE 低功耗藍牙
        • 藍牙信標
        • 主控裝置
        • 周邊裝置
        • 已知限制
        • LBLE API 指南
          • LBLE
          • LBLECentral
          • LBLEPeripheral
          • LBLEAdvertisementData
          • LBLEService
          • LBLECharacteristic
          • LBLEAddress
          • LBLEUuid
          • LBLEClient
      • 使用 LinkIt Remote
        • LRemote API
        • LRemote 控制元件 API
      • LinkIt 7697 腳位的初始狀態
      • LinkIt 7697 供電說明
      • 更新 Bootloader 與韌體
      • Flash 燒錄工具
      • FOTA 更新
      • LinkIt 7697 的功能限制
      • 自行編譯 Arduino Package
      • 回報問題
    • 週邊元件連接教學
      • SMD 按鈕
      • RGB 三色 LED
      • 可變電阻
      • 九軸感應器 (MPU-9250)
      • 溫度與濕度感應器 (AM2302)
      • 超音波距離感應器
      • 光感應器 (LM358)
      • 0.96 吋 OLED 顯示模組 (SSD1308Z)
      • 長條型 LED 顯示模組 (MY9221)
      • 繼電器
      • 伺服馬達 (EMAX 9g ES08A Servo)
      • 使用 74HC595 驅動七段顯示器
      • 使用 MAX7219 驅動七段顯示器
      • 使用 MAX7219 驅動 8x8 矩陣式顯示器
      • 使用 OLED 模組 (如 SH1106 / SSD1306... 等模組)
      • 使用 PCF8574 / PCF8574A 驅動 1602 LCD
    • 開發套件與擴充板
      • Grove Starter Kit
      • Robot Shield
        • OTTO97
    • 下載
    • 資源連結
    • BSP 版本更新資訊
  • LinkIt 7697 - Development Guide for Arduino IDE
    • Environment Setup
      • Setup Arduino IDE
      • Connecting LinkIt 7697 to Computer
        • Install CP2102N Driver on Windows
        • Install CP2102N Driver on macOS
      • Run Your First Sketch
    • Developer Guide
      • GPIO
      • UART
      • ADC
      • External Interrupt
      • I2C
      • SPI
      • EEPROM
      • Timer
      • Flash (Key-Pair Storage)
      • RTC (Real-Time Clock)
      • Software Serial
      • Using the Wi-Fi Library
      • Using MCS Library
        • Connecting to MCS
        • Connecting to MCSLite
          • Build a Beacon controlled by MCS Lite
        • MCS Library API Reference
          • MCSDevice
          • MCSLiteDevice
          • MCSDataChannel Classes
      • Using Bluetooth
        • Beacons
        • Central Devices
        • Peripheral Devices
        • Limitations of LBLE library
        • LBLE Library API Guide
          • LBLE
          • LBLECentral
          • LBLEPeripheral
          • LBLEAdvertisementData
          • LBLEService
          • LBLECharacteristic
          • LBLEAddress
          • LBLEUuid
          • LBLEClient
      • Using LinkIt Remote
        • LRemote
        • LRemote Control Classes
      • Initial Pin State of LinkIt 7697
      • Powering the LinkIt 7697
      • Update Bootloader and Firmware
      • Flash Uploading Tool
      • FOTA Update
      • Limitations of LinkIt 7697
      • Source Code of Arduino Package
      • Issue Report
    • Tutorial
      • SMD Buttons
      • RGB LED
      • Potentiometer
      • IMU 9DOF v2.0 (MPU-9250)
      • Temperature and Humidity Sensor Pro (AM2302)
      • Grove Ultrasonic Ranger
      • Light Sensor (LM358)
      • Grove OLED Display 0.96" (SSD1308Z)
      • LED Bar v2.0 (MY9221)
      • Relay
      • Mini Servo (EMAX 9g ES08A Servo)
      • Driving 7-segment Displays with 74HC595
      • Driving 7-segment Displays with MAX7219
      • Driving 8x8 Dot Matrices with MAX7219
      • Using OLED module (SH1106 / SSD1306... etc.)
      • Driving 1602 LCD with PCF8574 / PCF8574A
    • Kits and Shields
      • Grove Starter Kit
      • Robot Shield
        • OTTO97
    • Download
    • Resources
    • BSP Release Notes
Powered by GitBook
On this page
  • Constructors
  • Connection Methods
  • Service Methods
  • Characteristic Methods
  1. LinkIt 7697 - Development Guide for Arduino IDE
  2. Developer Guide
  3. Using Bluetooth
  4. LBLE Library API Guide

LBLEClient

This class allows users to create connections to remote peripheral devices.

To access device attributes, create LBLEClient object and call LBLEClient::connect to connect to the device in address:

// assume LBLECentral::scan has already performed.
// connect to the 1st device scanned.
LBLEClient client;
LBLEAddress serverAddress = LBLECentral.getBLEAddress(0);
client.connect(serverAddress);
while(!client.connected()){
    delay(100); 
}
// now we are connnected.

Upon successful connection, connected() returns true.

The user can then query if certain GATT services exist on the remote device with getServiceCount(), getServiceUuid() and hasService(uuid).

Once the user confirmed that a service is available, the user may use APIs to read or write characteristics.

There are 2 sets of APIs:

  • Read or write characteristics based on their UUIDs. This is convenient if you already knew the UUID of the desired characteristics. However, there are many cases that the same UUID may appear on different services on the same BLE device. In these cases, you may end up read or write the characteristics that is not intended.

  • Read or write characteristics based on service index, and the index of the characteristics in the service, queried by getCharacteristicCount. This set of API allows you to specify a characteristic in a specific service, thus this covers a more general case. However, you need to use getCharacteristicCount and getCharacteristicUuid to ensure the index of the characteristics you want to read or write.

Note that there is no extra "type" checking, so it is up to the user to make sure the value types are matched between read/write APIs and the remote device.

Constructors

LBLEClient

Creates a LBLEClient instance that can be used to connect to peripheral devices.

Syntax

Parameters

none

Returns

LBLEClient instance

Connection Methods

connect()

connected()

disconnect()

Start connecting to a remote peripheral device.

You can use LBLECentral singleton object to scan nearby devices and get their addresses.

Call connected() to check if the connection has been successfully established.

Note: this function also implicitly enumerates all the services and characteristics on the remote device, so it may take a while for this function to return.

Syntax

Parameters

none

Returns

true if the connection attempt starts successfully. Note that this does not mean the connection has been established.

false if fail to start connection.

Check if the connection to remote device has been established.

Syntax

Parameters

none

Returns

true if the connection has been established. false otherwise.

Disconnect from the remote device.

Syntax

Parameters

none

Returns

none

Service Methods

hasService()

getServiceCount()

getServiceName()

getServiceUuid()

getCharacteristicCount()

Check if a service, identified with an UUID, is available on the remote connected device.

Syntax

Parameters

serviceUUID

128-bit or 16-bit UUID to identify the service.

Returns

true if the service is available on the remote device; false otherwise.

Get the number of services available on the connected remote device.

Syntax

Parameters

none

Returns

Number of services available on the connected device.

Helper function that returns name of the service if it is known.

Syntax

Parameters

serviceIndex

ranges from 0 to (getServiceCount() - 1).

Returns

Service name

Get service UUID by index.

Syntax

Parameters

serviceIndex

ranges from 0 to (getServiceCount() - 1).

Returns

UUID of the service

Get the number of characteristics in the service.

Syntax

Parameters

serviceIndex

ranges from 0 to (getServiceCount() - 1).

Returns

Number of characteristics in the service.

Characteristic Methods

getCharacteristicUuid()

readCharacteristicString()

readCharacteristicInt()

writeCharacteristicFloat()

writeCharacteristicString()

writeCharacteristicInt()

writeCharacteristicFloat()

Get the UUID of a characteristic in the service by its index

Syntax

Parameters

serviceIndex
ranges from 0 to (getServiceCount() - 1).

characteristicIndex

ranges from 0 to (getCharacteristicCount(serviceIndex) - 1).

Returns

Number of characteristics in the service.

Read string value from a characteristic on remote device.

Syntax

Parameters

serviceIndex

ranges from 0 to (getServiceCount() - 1).

characteristicIndex

ranges from 0 to (getCharacteristicCount(serviceIndex) - 1).

Returns

String value of the characteristic. Empty string is returned if fails to read the characteristic.

Read integer value from a characteristic on remote device.

Syntax

Parameters

serviceIndex

ranges from 0 to (getServiceCount() - 1).

characteristicIndex

ranges from 0 to (getCharacteristicCount(serviceIndex) - 1).

Returns

Integral value of the characteristic. 0 is returned if fails to read the characteristic.

Read float value from a characteristic on remote device.

Syntax

Parameters

serviceIndex

ranges from 0 to (getServiceCount() - 1).

characteristicIndex

ranges from 0 to (getCharacteristicCount(serviceIndex) - 1).

Returns

Float value of the characteristic. 0.0f is returned if fails to read the characteristic.

Hepler API that write a characteristic on the remote device as a string.

Syntax

Parameters

uuid
The UUID of the characteristic to read from.

string_to_write

The string value to write.

serviceIndex

ranges from 0 to (getServiceCount() - 1).

characteristicIndex

ranges from 0 to (getCharacteristicCount(serviceIndex) - 1).

Returns

>0 if written successfully.

0 if failed to write.

Hepler API that write a characteristic on the remote device as an integer.

Syntax

Parameters

uuid
The UUID of the characteristic to read from.

int_value

The int value to write.

serviceIndex

ranges from 0 to (getServiceCount() - 1).

characteristicIndex

ranges from 0 to (getCharacteristicCount(serviceIndex) - 1).

Returns

>0 if written successfully.

0 if failed to write.

Hepler API that write a characteristic on the remote device as a float.

Syntax

Parameters

uuid
The UUID of the characteristic to read from.

float_value

The float value to write.

serviceIndex

ranges from 0 to (getServiceCount() - 1).

characteristicIndex

ranges from 0 to (getCharacteristicCount(serviceIndex) - 1).

Returns

>0 if written successfully.

0 if failed to write.

PreviousLBLEUuidNextUsing LinkIt Remote

Last updated 3 years ago