bleATTPDUDecode

Декодируйте PDU ATT BLE

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

Описание

пример

[status,cfgATT] = bleATTPDUDecode(attPDU) декодирует заданный модуль данных о протоколе атрибута Bluetooth низкой энергии (BLE) (PDU ATT), возвращая соответствующий объект настройки PDU ATT BLE, cfgATT, и состояние декодирования, status.

Примеры

свернуть все

Декодируйте два уникальных ATT BLE PDUs типа 'Read by type request' и 'Error response'.

Создайте объект настройки PDU ATT BLE с настройками по умолчанию.

cfgATT = bleATTPDUConfig;

Измените код операции PDU ATT BLE как 'Read by type request'. Просмотрите применимые свойства кода операции 'Read by type request'.

cfgATT.Opcode = 'Read by type request'
cfgATT = 
  bleATTPDUConfig with properties:

           Opcode: 'Read by type request'
      StartHandle: '0001'
        EndHandle: 'FFFF'
    AttributeType: '2800'

Сгенерируйте PDU ATT BLE с помощью соответствующего объекта настройки.

attPDU = bleATTPDU(cfgATT)
attPDU = 7x2 char array
    '08'
    '01'
    '00'
    'FF'
    'FF'
    '00'
    '28'

Декодируйте сгенерированный PDU ATT BLE. Возвращенное состояние указывает, что декодирование успешно. Просмотрите применимые свойства кода операции 'Read by type request'.

[status, cfg] = bleATTPDUDecode(attPDU)
status = 
Success
cfg = 
  bleATTPDUConfig with properties:

           Opcode: 'Read by type request'
      StartHandle: '0001'
        EndHandle: 'FFFF'
    AttributeType: '2800'

Создайте другой объект настройки PDU ATT BLE, на этот раз с помощью пар "имя-значение". Измените код операции PDU ATT BLE как 'Error response'. Просмотрите применимые свойства кода операции 'Error response'.

cfgATT = bleATTPDUConfig('Opcode','Error response')
cfgATT = 
  bleATTPDUConfig with properties:

             Opcode: 'Error response'
    RequestedOpcode: 'Read request'
    AttributeHandle: '0001'
       ErrorMessage: 'Invalid handle'

Сгенерируйте PDU ATT BLE с помощью соответствующего объекта настройки.

attPDU = bleATTPDU(cfgATT)
attPDU = 5x2 char array
    '01'
    '0A'
    '01'
    '00'
    '01'

Декодируйте сгенерированный PDU ATT BLE. Возвращенное состояние указывает, что декодирование успешно. Просмотрите применимые свойства кода операции 'Error response'.

[status, cfg] = bleATTPDUDecode(attPDU)
status = 
Success
cfg = 
  bleATTPDUConfig with properties:

             Opcode: 'Error response'
    RequestedOpcode: 'Read request'
    AttributeHandle: '0001'
       ErrorMessage: 'Invalid handle'

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

attPDU = ['09'; '03'; '01'; '00'; '18'; '0D']; % Sample corrupted BLE ATT PDU

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

[status, cfgATT] = bleATTPDUDecode(attPDU)
status = 
MismatchAttributeDataLength
cfgATT = 
  bleATTPDUConfig with properties:

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

свернуть все

PDU ATT BLE в виде одного из этих значений:

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

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

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

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

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

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

свернуть все

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

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

Перечислимая величинаЧлен класса перечисленияДекодирование состояния
0SuccessЗа пакетным декодированием следуют
–401UnsupportedATTOpcodeНедопустимый код операции ATT
–402IncompleteATTPDUНеполный PDU ATT
–403InvalidATTReqOpcodeInErrorRespНедопустимый требуемый код операции в "Ошибочном Ответе" PDUs
–404InvalidATTErrorCodeНедопустимый код ошибки
–405InvalidATTRxMTUНедопустимый полученный MTU
–406 InvalidAttributeHandleRangeНедопустимая область значений указателя атрибута
–407InvalidAttributeTypeНедопустимый флаг типа атрибута
–408InvalidATTExecuteWriteFlagНедопустимый выполняют флаг записи
–409MismatchAttributeDataLengthДлина не сочетается с фактической длиной
–410InvalidATTDataFormat

Недопустимый формат данных

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

Ссылки

[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