掃描
開始掃描
do {
try FarmLandBikeKit.sleipnir.startScan()
} catch {
// 如果行動裝置的藍牙為未開啟狀態,則拋出錯誤。
}停止掃描
FarmLandBikeKit.sleipnir.stopScan()掃描狀態
FarmLandBikeKit.sleipnir.scanningPublisher
.sink(receiveValue: { isScanning in
// 是否正在掃描中。
})
.store(in: &self.subscriptions)透過對 scanningPublisher 的監聽,可以觀察掃描狀態的即時變化。
掃描結果
FarmLandBikeKit.sleipnir.foundDevicesPublisher
.sink(receiveValue: { foundDevices in
// 取得掃描到的電控。
})
.store(in: &self.subscriptions)透過對 foundDevicesPublisher 的監聽,可以觀察到掃描的即時裝置陣列。資料結構如下:
public struct BluetoothPeripheral {
public let device: CBPeripheral
public var rssi: Float?
public var deviceName: String?
public var localName: String?
public var uuid: String?
public var manufacturerInfo: String?
public var address: String
}與電控連線時,必須使用
BluetoothPeripheral的實例。所以在 UI 介面中,選擇欲連線的電控時,應將其暫存起來。