我试图了解BLE数据包如何从使用CoreBluetooth的iOS设备发送到已连接的外围设备的任何顺序。
我有两个连接到iOS设备的外围设备,并且能够在两个外围设备上成功写入特征。此特性具有使外围设备接收信号高或低的作用。
我以有序方式(从A到B)打开“特征”,然后以相同的顺序将其关闭。
toggleState(peripheral: primary, stateChar: g1StateChar, state: true)
toggleState(peripheral: secondary, stateChar: g2StateChar, state: true)
sleep(1)
toggleState(peripheral: primary, stateChar: g1StateChar, state: false)
toggleState(peripheral: secondary, stateChar: g2StateChar, state: false)
func toggleState(peripheral: CBPeripheral, stateChar: CBCharacteristic, state: Bool) {
var devState = "S"
//S for Stop, A for Active
if(state){
devState = "S"
} else {
devState = "A"
}
let newState = Data(devState.utf8)
//Transmit new State of System
peripheral.writeValue(newState, for: stateChar, type: CBCharacteristicWriteType.withResponse)
}
我希望看到与A相关的信号变高,然后与B相关的信号相隔约7.5ms,因为外围设备被编程为使用7.5ms的连接间隔。
实际观察到的很多情况是上述情况,但是在另一些情况下,信号B首先变高,然后信号22变高。