bleGAPDataBlockDecode

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

Требуется загрузка: Чтобы использовать bleGAPDataBlockDecode, сначала загрузите библиотеку Communications Toolbox™ для Bluetooth® Протокол. Для получения дополнительной информации см. раздел «Получение и управление дополнениями». Другой способ см. в разделе Библиотека Communications Toolbox для обмена файлами протокола 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 Technology. Bluetooth Technology Website | Официальный сайт Bluetooth Technology. Доступ к 22 ноября 2019 года. https://www.bluetooth.com/.

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

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

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

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

.
Введенный в R2019b
Для просмотра документации необходимо авторизоваться на сайте