exponenta event banner

bleATTPDUDecode

Декодирование BLE ATT PDU

Для использования bleATTPDUDecode сначала загрузите библиотеку Communications Toolbox™ Library для протокола Bluetooth ®. Дополнительные сведения см. в разделе Получение надстроек и управление ими. Кроме того, см. библиотеку Communications Toolbox Library для обмена файлами по протоколу Bluetooth.

Описание

пример

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

Примеры

свернуть все

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

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

cfgATT = bleATTPDUConfig;

Измените код операции 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. Возвращенное состояние указывает на успешное декодирование. Просмотр применимых свойств кода операции '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, на этот раз используя пары имя-значение. Измените код операции 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. Возвращенное состояние указывает на успешное декодирование. Просмотр применимых свойств кода операции 'Error response'.

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

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

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

attPDU = ['09'; '03'; '01'; '00'; '18'; '0D']; % Sample corrupted BLE ATT 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 «» Ответ на ошибку
–404InvalidATTErrorCodeНедопустимый код ошибки
–405InvalidATTRxMTUНедопустимый полученный MTU
–406 InvalidAttributeHandleRangeНедопустимый диапазон дескрипторов атрибутов
–407InvalidAttributeTypeНедопустимый флаг типа атрибута
–408InvalidATTExecuteWriteFlagНедопустимый флаг выполнения записи
–409MismatchAttributeDataLengthНесоответствие длины фактической длине
–410InvalidATTDataFormat

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

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

Ссылки

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

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

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

Создание кода C/C + +
Создайте код C и C++ с помощью MATLAB ® Coder™

.
Представлен в R2019b