exponenta event banner

bleGAPDataBlockDecode

Декодирование блока данных BLE GAP

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

Описание

пример

[status,cfgGAP] = bleGAPDataBlockDecode(dataBlock) декодирует блок данных профиля общего доступа (GAP) Bluetooth с низким энергопотреблением (BLE), dataBlockтипа рекламных данных (AD) или данных откликов сканирования (SRD), возвращающих статус декодирования, statusи объект конфигурации блока данных BLE GAP, cfgGAP.

Примеры

свернуть все

Декодирование двух уникальных блоков BLE GAP AD: один с типами AD 'Flags' и 'Tx power level' и другой с типами AD 'Advertising interval' и 'Local name'.

Создайте объект конфигурации для блока BLE GAP AD. Укажите типы AD как 'Flags' и 'Tx power level'. Установите значения обнаруживаемости LE как 'Limited' и уровень мощности Tx до 45. Просмотр свойств объекта конфигурации 'cfgGAP'.

cfgGAP = bleGAPDataBlockConfig;
cfgGAP.AdvertisingDataTypes = {'Flags'; 'Tx power level'};
cfgGAP.LEDiscoverability = 'Limited';
cfgGAP.TxPowerLevel = 45
cfgGAP = 
  bleGAPDataBlockConfig with properties:

    AdvertisingDataTypes: {2x1 cell}
       LEDiscoverability: 'Limited'
                   BREDR: 0
            TxPowerLevel: 45

Создайте блок BLE GAP AD из соответствующего объекта конфигурации.

dataBlock = bleGAPDataBlock(cfgGAP);

Декодировать сформированный блок BLE GAP AD. Возвращенное состояние указывает на успешное декодирование. Просмотр выходных данных 'status' и 'cfgGAP'.

[status, cfgGAP] = bleGAPDataBlockDecode(dataBlock)
status = 
Success
cfgGAP = 
  bleGAPDataBlockConfig with properties:

    AdvertisingDataTypes: {2x1 cell}
       LEDiscoverability: 'Limited'
                   BREDR: 0
            TxPowerLevel: 45

Создание другого объекта конфигурации блока BLE GAP AD, на этот раз указывающего типы AD 'Advertising interval' и 'Local name'. Установите значения рекламного интервала как 48, локальное имя как 'MathWorks'и укорочение локального имени как true. Просмотр свойств объекта конфигурации 'cfgGAP'.

cfgGAP = bleGAPDataBlockConfig('AdvertisingDataTypes', ...
    {'Advertising interval','Local name'});
cfgGAP.AdvertisingInterval = 48;
cfgGAP.LocalName = 'MathWorks';
cfgGAP.LocalNameShortening = true
cfgGAP = 
  bleGAPDataBlockConfig with properties:

    AdvertisingDataTypes: {2x1 cell}
               LocalName: 'MathWorks'
     LocalNameShortening: 1
     AdvertisingInterval: 48

Создайте блок BLE GAP AD из соответствующего объекта конфигурации.

dataBlock = bleGAPDataBlock(cfgGAP);

Декодировать сформированный блок BLE GAP AD. Возвращенное состояние указывает на успешное декодирование. Просмотр выходных данных 'status' и 'cfgGAP'.

[status, cfgGAP] = bleGAPDataBlockDecode(dataBlock)
status = 
Success
cfgGAP = 
  bleGAPDataBlockConfig with properties:

    AdvertisingDataTypes: {2x1 cell}
               LocalName: 'MathWorks'
     LocalNameShortening: 1
     AdvertisingInterval: 48

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

dataBlock = ['010106010202']; % Sample BLE GAP AD block with corrupted data values

Декодирование указанного блока BLE GAP AD. Возвращенное состояние указывает, что декодирование не выполнено из-за поврежденного входного блока BLE GAP AD. В этом случае при сбое декодирования объект конфигурации блока BLE GAP AD, 'cfgGAP', не отображает свойств.

[status, cfgGAP] = bleGAPDataBlockDecode(dataBlock)
status = 
MismatchGAPADLength
cfgGAP = 
  bleGAPDataBlockConfig with properties:

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

свернуть все

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

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

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

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

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

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

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

свернуть все

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

Значение перечисленияЧлен класса перечисленияСостояние декодирования
0SuccessДекодирование пакетов выполнено успешно
-201 InvalidGAPADLengthНедопустимая длина GAP AD
–202MismatchGAPADLengthПолученная длина AD не соответствует фактической длине
–203UnsupportedGAPADTypeТип данных рекламы недопустим или не поддерживается
–204InvalidGAPAdvertisingIntervalНедопустимый интервал рекламы
–205InvalidGAPConnectionIntervalRangeНедопустимый интервал подключения
–206InvalidGAPConnectionIntervalMinimumМинимальный недопустимый интервал
–207InvalidGAPConnectionIntervalMaximumНедопустимый максимальный интервал

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

Объект конфигурации блока данных BLE GAP, возвращаемый как bleGAPDataBlockConfig объект. Это значение определяет тип блока данных BLE GAP и его применимые свойства.

Ссылки

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

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

[3] Группа специальных интересов Bluetooth (SIG). «Дополнение к спецификации ядра Bluetooth». CSS версии 7 (2016).

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

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

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