Я пытаюсь понять, есть ли какой-либо порядок отправки пакетов BLE с устройства iOS с помощью CoreBluetooth на подключенные периферийные устройства.
У меня есть две периферийные устройства, подключенные к устройству 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)
}
То, что я ожидаю увидеть, это сигнал, связанный с повышением А, за которым следует сигнал, связанный с В, разделенный примерно на 7,5 мс, поскольку периферийные устройства запрограммированы на использование интервала соединения 7,5 мс.
То, что на самом деле наблюдается, - это много раз вышеописанное, но в других сначала сигнал B поднимается высоко, а затем 22 A поднимается высоко.