bleL2CAPFrameDecode

Декодируйте систему координат BLE L2CAP

Загрузите Необходимый: Чтобы использовать bleL2CAPFrameDecode, сначала загрузите Библиотеку Communications Toolbox™ для Протокола Bluetooth®. Для получения дополнительной информации смотрите, Получают и Управляют Дополнениями. В качестве альтернативы смотрите Библиотеку Communications Toolbox для Обмена файлами Протокола Bluetooth.

Описание

пример

[status,cfgL2CAP,SDU] = bleL2CAPFrameDecode(L2CAPFrame) декодирует заданную систему координат протокола (L2CAP) управления и адаптации логической ссылки Bluetooth низкой энергии (BLE), L2CAPFrame. Функция возвращает состояние декодирования, status, соответствующий объект настройки BLE L2CAP, cfgL2CAP, и модуль эксплуатационных данных (SDU) полезной нагрузки верхнего уровня, SDU.

Примеры

свернуть все

Создайте объект настройки BLE L2CAP, 'cfgL2CAP', со свойствами по умолчанию и представлением применимые свойства. Измените значение идентификатора канала к '0004'.

cfgL2CAP = bleL2CAPFrameConfig
cfgL2CAP = 
  bleL2CAPFrameConfig with properties:

          ChannelIdentifier: '0005'
                CommandType: 'Credit based connection request'
           SignalIdentifier: '01'
    SourceChannelIdentifier: '0040'
                      LEPSM: '001F'
        MaxTransmissionUnit: 23
          MaxPDUPayloadSize: 23
                    Credits: 1

cfgL2CAP.ChannelIdentifier = '0004'; % Channel identifier for ATT

Сгенерируйте систему координат данных BLE L2CAP от 'cfgL2CAP', определение SDU полезной нагрузки верхнего уровня из протокола атрибута слой (ATT) как '0A0100'.

L2CAPFrame = bleL2CAPFrame(cfgL2CAP, "0A0100");

Декодируйте сгенерированную систему координат данных BLE L2CAP. Возвращенное состояние указывает, что декодирование было успешно. Просмотрите вывод 'status', 'cfgL2CAP' и 'SDU'.

[status, cfgL2CAP, SDU] = bleL2CAPFrameDecode(L2CAPFrame)
status = 
Success
cfgL2CAP = 
  bleL2CAPFrameConfig with properties:

    ChannelIdentifier: '0004'

SDU = 3x2 char array
    '0A'
    '01'
    '00'

Задайте систему координат BLE L2CAP, содержащую поврежденные значения данных.

l2capFrame = ['090005000107040060005000']; % Sample frame

Декодируйте заданную систему координат BLE L2CAP. Возвращенное состояние указывает, что декодирование перестало работать из-за поврежденной системы координат входа L2CAP. В этом случае, при декодировании сбоев, выход отображает причину отказа и объекта настройки системы координат BLE L2CAP, 'cfgL2CAP', отображения никакие свойства.

[status, cfgL2CAP, SDU] = bleL2CAPFrameDecode(l2capFrame)
status = 
MismatchL2CAPHeaderLength
cfgL2CAP = 
  bleL2CAPFrameConfig with properties:

SDU =

  1x0 empty char array

Входные параметры

свернуть все

Система координат BLE L2CAP в виде одного из этих значений:

  • Вектор символов — Этот вектор представляет октеты в шестнадцатеричном формате.

  • Строковый скаляр — Этот скаляр представляет октеты в шестнадцатеричном формате.

  • Числовой вектор из элементов в области значений [0, 255] — Этот вектор представляет октеты в десятичном формате.

  • n-by-2 символьный массив — Каждая строка представляет октет в шестнадцатеричном формате.

Типы данных: char | double | string

Выходные аргументы

свернуть все

Пакетное состояние декодирования, возвращенное как неположительное целое число типа blePacketDecodeStatus. Это значение представляет результат декодирования системы координат BLE L2CAP. Каждое значение status соответствует члену blePacketDecodeStatus класс перечисления, который указывает на пакетное состояние декодирования согласно этой таблице.

Перечислимая величинаЧлен класса перечисленияДекодирование состояния
0SuccessЗа пакетным декодированием следуют
–301InvalidL2CAPConnectionIntervalRangeНедопустимые интервалы связи
–302InvalidL2CAPSlaveLatencyНедопустимая ведомая задержка
–303InvalidLECreditsНедопустимые кредиты низкой энергии (LE)
–304L2CAPSegmentationUnsupportedСегментация не поддерживается
–305MismatchL2CAPHeaderLengthДлина не сочетается с фактической длиной
–306 IncompleteL2CAPDataFrameСистема координат данных L2CAP не достаточна, чтобы декодировать
–307InvalidL2CAPChannelIdentifierНедопустимый идентификатор канала L2CAP
–308InvalidL2CAPCommandНедопустимый код команды L2CAP
–309InvalidL2CAPCommandRejectReasonНедопустимое отклонение команды обосновывает код
–310InvalidL2CAPParameterUpdateResultНедопустимые параметры обновляют результат
-311InvalidL2CAPConnectionResultНедопустимый код результата связи
-312IllegalL2CAPSignalIdentifierНедопустимый идентификатор сигнала в L2CAP
-313InvalidL2CAPConnectionIntervalMinimumНедопустимый минимум интервала
-314InvalidL2CAPConnectionIntervalMaximumНедопустимый максимум интервала
-315InvalidL2CAPConnectionTimeoutНедопустимый тайм-аут связи
-316 InvalidLEPSMНедопустимый мультиплексор протокола/сервиса LE
-317InvalidL2CAPChannelMTUНедопустимый максимальный модуль передачи
-318InvalidL2CAPChannelMPSНедопустимый максимальный размер полезной нагрузки PDU
-319InvalidL2CAPSDULengthНедопустимая длина SDU
-320MismatchL2CAPSignalFrameLengthДлина не сочетается с фактической длиной
-321IncompleteL2CAPSignalFrameСистема координат сигнала L2CAP не допустима или не достаточна

Перечислимая величина кроме 0 средние значения, которые привело к сбою декодирование PDU ATT BLE. Если декодирование перестало работать, объект cfgATT не отображает вывода.

Объект настройки системы координат BLE L2CAP, возвращенный как bleL2CAPFrameConfig объект. Это значение обозначает декодируемую настройку системы координат BLE L2CAP.

Полезная нагрузка верхнего уровня, возвращенная как символьный массив. Каждая строка представляет октет в шестнадцатеричном формате.

Типы данных: char | string

Ссылки

[1] Технологический Веб-сайт Bluetooth. “Технологический Веб-сайт Bluetooth | официальный сайт Технологии Bluetooth”. Полученный доступ 22 ноября 2019. https://www.bluetooth.com/.

[2] Специальная группа (SIG) Bluetooth. "Спецификация Ядра Bluetooth". Версия 5.1. https://www.bluetooth.com/.

Расширенные возможности

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

Введенный в R2019b