在向外围设备编写特性时,是否有保证的顺序?

时间:2019-04-03 00:14:29

标签: ios swift bluetooth-lowenergy core-bluetooth

我试图了解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变高。

0 个答案:

没有答案