bleGAPDataBlockDecode

Декодируйте блок данных GAP BLE

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

Описание

пример

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

Примеры

свернуть все

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

Создайте объект настройки для блока BLE GAP AD. Задайте AD типы как 'Flags' и 'Tx power level'. Установите значения LE discoverability как '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:

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

свернуть все

Блок данных GAP BLE в виде одного из этих значений:

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

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

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

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

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

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

свернуть все

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

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

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

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

Ссылки

[1] Технологический Веб-сайт Bluetooth. “Технологический Веб-сайт Bluetooth | официальный сайт Технологии Bluetooth”. Полученный доступ 22 ноября 2019. https://www.bluetooth.com/.

[2] Специальная группа (SIG) Bluetooth. "Спецификация Ядра Bluetooth". Версия 5.1. https://www.bluetooth.com/.

[3] Специальная группа (SIG) Bluetooth. "Добавьтесь к спецификации ядра Bluetooth". CSS версия 7 (2016).

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

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

Введенный в R2019b