LBLECentral

這個類別可讓 LinkIt 7697 作為一個 BLE 主控裝置。透過它,可以掃描鄰近的 BLE 周邊裝置,檢查其廣播內容,並且取得其裝置地址。

LBLECentral 類別並不提供連線到周邊裝置的服務。開發者應該透過 LBLEClient 類別來連線到特定的裝置地址,以存取周邊裝置上面的資料特性。

LBLECentral 實際上是一個單件(singleton),開發者不需要創建物件,只需要直接呼叫 LBLECentral.scan(),然後就可以用 LBLECentral.getPeripheralCount() 來取得掃描到的裝置數量。接著就可以使用比如 getName()getAddress() 等方法來取得裝置資訊。如下:

// 開始掃描
LBLECentral.scan();
// 等待五秒鐘
for(int i = 0; i < 5; ++i)
{
  delay(1000);
  Serial.print(".");
}
// 印出掃描到的裝置的名字
const int found = LBLECentral.getPeripheralCount();
for (int i = 0; i < found; ++i) {
    Serial.println(LBLECentral.getName(i));
}

跟掃描相關的 API

> scan()

> stopScan()

> getPeripheralCount ()

開始掃描鄰近的周邊裝置。此 API 會讓系統進入掃描狀態,並且在背景持續掃描周邊的 BLE 裝置。

當掃描到新的周邊裝置之後,系統會自動更新內部的資料,開發者可呼叫 getPeripheralCount() 來取得當前掃描到的裝置數量,然後根據裝置的索引號(從 0 開始),用 getPeripheralName 或是 isBeacon 等 API 來取得每個裝置的資訊。

Syntax

Parameters

n/a

Returns

n/a

周邊裝置資訊相關 API

當取得周邊裝置的數量之後,可根據周邊裝置的索引號(從 0 開始,到「周邊裝置的數量 - 1」),透過下列的 API 來取得周邊裝置的相關資訊。要注意的是,因為 BLE 廣播資訊可以高度自訂,不是所有的周邊裝置都會提供同樣的資訊。比如說,有的裝置可能不會提供自己的裝置名稱。在這種情況下,將會得到空白的結果。

getAddress()

getBLEAddress()

getManufacturer()

getName()

getRSSI()

getTxPower()

getServiceUuid()

根據索引號取得裝置的字串形式位址。

Syntax

String addressString = LBLECentral.getAddress(index);

Parameters

index 從 0 到 (getRemotePeripheralCount() - 1) 之間的索引號。相同的索引號代表相同的裝置。

Returns

該周邊裝置的裝置地址,以字串形式呈現。

取得掃描時的 RSSI 信號強度。

Syntax

Parameters

index 從 0 到 (getRemotePeripheralCount() - 1) 之間的索引號。相同的索引號代表相同的裝置。

Returns

RSSI 信號強度,以 dbm 為單位。

Last updated