Я работаю над разработкой приложения BLE с использованием канала, ориентированного на соединение. Я использую Nordic Semiconductor NRF52 в качестве периферийного устройства и iPhone 6 в качестве центрального менеджера. < /p>
Я использовал предварительно определенное значение PSM, предоставленное Bluetooth Sig, которое составляет 0x0025.
I Blable, чтобы успешно подключиться к периферическому и открытому каналу L2CAP. < /p>
Я получаю ниже ошибку: < /p>
** [corebluetooth] Предупреждение: неизвестная ошибка: 436 < /p>
2018-06-08 10: 03: 17,532709-0400. ** Нет известного сопоставления каналов с PSM 37 **** < /p>
Можно сообщить мне, как продолжить и что означает код ошибки 436 < /p>
Ниже мой код: < /p>
ниже: < /p>
func centralManager(_ central: CBCentralManager, didDiscover peripheral: CBPeripheral, advertisementData: [String : Any], rssi RSSI: NSNumber) {
//handling callback when a peripheral is discover
print("Central Manager PowerOn State Check:\(central.state.rawValue)")
if (peripheral.name?.contains("Nordic_OTSX") == true)
{
print(peripheral.name ?? "no name")
print("advertisement Data : \(advertisementData) ")
central.connect(peripheral, options: nil )
myPeripheral = peripheral
}
}
func centralManager(_ central: CBCentralManager, didConnect peripheral: CBPeripheral)
{
print("didConnect\(myPeripheral.debugDescription)")
myPeripheral.delegate = self
myPeripheral.discoverServices(nil)
}
//if error while making connection
func centralManager(_ central: CBCentralManager, didFailToConnect peripheral: CBPeripheral, error: Error?)
{
print("error:\(error.debugDescription)")
}
//after opening L2CAP Channel
func peripheral(_ peripheral: CBPeripheral, didOpen channel: CBL2CAPChannel?, error: Error?)
{
print("didOpen")
print(error.customMirror)
print(channel!.outputStream.debugDescription)
print(channel!.inputStream.debugDescription)
print(channel?.outputStream.hasSpaceAvailable)
}
func peripheral(_ peripheral: CBPeripheral, didDiscoverServices error: Error?)
{
print("*******************************************************")
if ((error) != nil) {
print("Error discovering services: \(error!.localizedDescription)")
return
}
guard let services = peripheral.services else {
return
}
//We need to discover the all characteristic
for service in services {
peripheral.discoverCharacteristics(nil, for: service)
// bleService = service
}
print("Discovered Services: \(services)")
}
func peripheral(_ peripheral: CBPeripheral, didDiscoverCharacteristicsFor service: CBService, error: Error?)
{
print("*******************************************************")
if let charcterstics = service.characteristics
{
print("characteristics :")
for char in charcterstics
{
/* if char.uuid == buttonCharacteristicUUID
{
buttonCharacteristic = char
enableButtonNotifications(buttonCharacteristic!)
readButtonValue()
}*/
print(char.uuid.uuidString)
}
}
peripheral.openL2CAPChannel(0x0025)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
Подробнее здесь: https://stackoverflow.com/questions/508 ... a-transfer
Передача данных канала L2CAP ⇐ IOS
Программируем под IOS
1752484955
Anonymous
Я работаю над разработкой приложения BLE с использованием канала, ориентированного на соединение. Я использую Nordic Semiconductor NRF52 в качестве периферийного устройства и iPhone 6 в качестве центрального менеджера. < /p>
Я использовал предварительно определенное значение PSM, предоставленное Bluetooth Sig, которое составляет 0x0025.
I Blable, чтобы успешно подключиться к периферическому и открытому каналу L2CAP. < /p>
Я получаю ниже ошибку: < /p>
** [corebluetooth] Предупреждение: неизвестная ошибка: 436 < /p>
2018-06-08 10: 03: 17,532709-0400. ** Нет известного сопоставления каналов с PSM 37 **** < /p>
Можно сообщить мне, как продолжить и что означает код ошибки 436 < /p>
Ниже мой код: < /p>
ниже: < /p>
func centralManager(_ central: CBCentralManager, didDiscover peripheral: CBPeripheral, advertisementData: [String : Any], rssi RSSI: NSNumber) {
//handling callback when a peripheral is discover
print("Central Manager PowerOn State Check:\(central.state.rawValue)")
if (peripheral.name?.contains("Nordic_OTSX") == true)
{
print(peripheral.name ?? "no name")
print("advertisement Data : \(advertisementData) ")
central.connect(peripheral, options: nil )
myPeripheral = peripheral
}
}
func centralManager(_ central: CBCentralManager, didConnect peripheral: CBPeripheral)
{
print("didConnect\(myPeripheral.debugDescription)")
myPeripheral.delegate = self
myPeripheral.discoverServices(nil)
}
//if error while making connection
func centralManager(_ central: CBCentralManager, didFailToConnect peripheral: CBPeripheral, error: Error?)
{
print("error:\(error.debugDescription)")
}
//after opening L2CAP Channel
func peripheral(_ peripheral: CBPeripheral, didOpen channel: CBL2CAPChannel?, error: Error?)
{
print("didOpen")
print(error.customMirror)
print(channel!.outputStream.debugDescription)
print(channel!.inputStream.debugDescription)
print(channel?.outputStream.hasSpaceAvailable)
}
func peripheral(_ peripheral: CBPeripheral, didDiscoverServices error: Error?)
{
print("*******************************************************")
if ((error) != nil) {
print("Error discovering services: \(error!.localizedDescription)")
return
}
guard let services = peripheral.services else {
return
}
//We need to discover the all characteristic
for service in services {
peripheral.discoverCharacteristics(nil, for: service)
// bleService = service
}
print("Discovered Services: \(services)")
}
func peripheral(_ peripheral: CBPeripheral, didDiscoverCharacteristicsFor service: CBService, error: Error?)
{
print("*******************************************************")
if let charcterstics = service.characteristics
{
print("characteristics :")
for char in charcterstics
{
/* if char.uuid == buttonCharacteristicUUID
{
buttonCharacteristic = char
enableButtonNotifications(buttonCharacteristic!)
readButtonValue()
}*/
print(char.uuid.uuidString)
}
}
peripheral.openL2CAPChannel(0x0025)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/50840365/l2cap-channel-data-transfer[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия