bleATTPDUDecode

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

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

Описание

пример

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

Примеры

свернуть все

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

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

cfgATT = bleATTPDUConfig;

Измените opcode BLE ATT PDU следующим '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'

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

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

Декодируйте сгенерированный BLE ATT PDU. Возвращенное состояние указывает, что декодирование успешно. Просмотрите применимые свойства опкодов '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'

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

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

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

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

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

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

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

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

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

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

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

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

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

свернуть все

BLE ATT PDU, заданный как одно из следующих значений:

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

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

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

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

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

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

свернуть все

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

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

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

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

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

Ссылки

[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