bleL2CAPFrameDecode

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

Требуется загрузка: Чтобы использовать bleL2CAPFrameDecode, сначала загрузите Communications Toolbox™ Library для Bluetooth® Протокол. Для получения дополнительной информации см. раздел «Получение и управление дополнениями». Другой способ см. в разделе Библиотека Communications Toolbox для обмена файлами протокола Bluetooth.

Описание

пример

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

Примеры

свернуть все

Создайте объект строения L2CAP BLE, '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'

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

l2capFrame = ['090005000107040060005000']; % Sample frame

Декодируйте указанный L2CAP систему координат BLE. Возвращенное состояние указывает, что декодирование не выполнено из-за поврежденного входного L2CAP системы координат. В этом случае, когда декодирование прекращается, выход отображает причину отказа и объект строения L2CAP системы координат BLE, '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. Это значение представляет результат декодирования L2CAP системы координат BLE. Каждое значение status соответствует представителю blePacketDecodeStatus класс перечисления, который указывает состояние декодирования пакета согласно этой таблице.

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

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

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

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

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

Ссылки

[1] Веб-сайт Bluetooth Technology. Bluetooth Technology Website | Официальный сайт Bluetooth Technology. Доступ к 22 ноября 2019 года. https://www.bluetooth.com/.

[2] Группа специальных интересов Bluetooth (SIG). Bluetooth Core Спецификации. Версия 5.1. https://www.bluetooth.com/.

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

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

.
Введенный в R2019b