Я пытаюсь открыть два канала L2CAP между iPhone и приложением, работающим на MacOS.
Приложение MacOS опубликовало два канала: PSM=193
и PSM=194
.
Я открываю эти каналыв приложении для iOS:
peripheral.openL2CAPChannel(CBL2CAPPSM(193))
peripheral.openL2CAPChannel(CBL2CAPPSM(194))
И затем я получаю успешные обратные вызовы делегатов:
public func peripheral(_ peripheral: CBPeripheral,
didOpen channel: CBL2CAPChannel?,
error: Error?) {
print("Opened channel PSM is: \(channel.psm)")
// Keep strong reference to opened channel
openedChannels.append(channel)
}
Что интересно, так это вывод ...:
Opened channel PSM is: 193
Opened channel PSM is: 193 // !?!
Делегатобратный вызов вызывается с другим экземпляром канала, но с тем же PSM.В приложении MacOS я получаю обратный вызов, хотя канал 194
был открыт.Однако когда я записываю некоторые данные в канал 194
, они фактически отправляются на первый канал 193
, который я открыл.Я что-то не так делаю или это ошибка CoreBluetooth?