Существует ли гарантированный порядок записи характеристик периферийным устройствам? - PullRequest
1 голос
/ 03 апреля 2019

Я пытаюсь понять, есть ли какой-либо порядок отправки пакетов 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 поднимается высоко.

...