exponenta event banner

bleLLAdvertisingChannelPDUConfig

Объект конфигурации для рекламного канала BLE LL PDU

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

Описание

bleLLAdvertisingChannelPDUConfig создает объект конфигурации для блока протокольных данных (PDU) канального уровня (LL) с низкой энергией Bluetooth, используя значения по умолчанию и заданные значения. Можно настроить PDU рекламного канала BLE LL, используя применимые свойства bleLLAdvertisingChannelPDUConfig.

Создание

Описание

пример

cfgLLAdv = bleLLAdvertisingChannelPDUConfig создает объект конфигурации, cfgLLAdv, для рекламного канала BLE LL PDU со значениями по умолчанию.

пример

cfgLLAdv = bleLLAdvertisingChannelPDUConfig(Name,Value) создает объект конфигурации PDU рекламного канала BLE путем задания свойств с использованием одной или нескольких пар имя-значение. Заключите каждое имя свойства в кавычки. Например, bleLLAdvertisingChannelPDUConfig('PDUType','Scan response') настраивает cfgLLAdv с типом рекламного канала BLE LL PDU как 'Scan response'.

Свойства

развернуть все

Примечание

Для получения дополнительной информации о свойствах PDU рекламного канала BLE LL и их соответствующих значениях см. том 6, часть B, раздел 2,3 спецификации ядра Bluetooth [2].

Тип PDU рекламного канала BLE LL, заданный как вектор символов или строковый скаляр для описания типа PDU рекламного канала BLE LL. Можно указать 'PDUType' как одно из следующих значений:

  • 'Advertising indication'

  • 'Advertising direct indication'

  • 'Advertising non connectable indication'

  • 'Scan request'

  • 'Scan response'

  • 'Connection indication'

  • 'Advertising scannable indication'

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

Алгоритм выбора канала, указанный как 'Algorithm1' или 'Algorithm2' для указания типа алгоритма, используемого для переключения между каналами.

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

Тип адреса устройства рекламодателя, указанный как 'Random' или 'Public' для указания типа адреса рекламодателя в пакете.

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

Адрес устройства рекламодателя, заданный как 12-элементный символьный вектор или строковый скаляр, обозначающий шеститетовое шестнадцатеричное значение для указания адреса устройства рекламодателя.

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

Тип адреса целевого устройства, указанный как 'Random' или 'Public' для указания типа адреса целевого устройства при передаче направленного рекламного пакета.

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

Адрес целевого устройства, заданный как 12-элементный символьный вектор или строковый скаляр, обозначающий шеститетовое шестнадцатеричное значение для указания адреса целевого устройства при передаче направленного рекламного пакета.

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

Тип адреса устройства сканера, указанный как 'Random' или 'Public' для указания типа адреса устройства сканирования при передаче пакета запроса сканирования.

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

Адрес устройства сканера, заданный как 12-элементный символьный вектор или строковый скаляр, обозначающий шеститетовое шестнадцатеричное значение для указания адреса устройства сканера при передаче пакета запроса сканирования.

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

Тип адреса устройства-инициатора, указанный как 'Random' или 'Public' для указания типа адреса устройства-инициатора при передаче пакета индикации соединения.

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

Адрес устройства-инициатора, заданный как 12-элементный символьный вектор или строковый скаляр, обозначающий шеститетовое шестнадцатеричное значение для указания адреса устройства-инициатора при передаче пакета индикации соединения.

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

Рекламные данные, указанные как одно из следующих значений:

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

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

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

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

Это свойство указывает рекламные данные, которые устройство отправляет в пакете рекламы.

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

Сканировать данные ответа, указанные как одно из следующих значений:

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

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

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

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

Это свойство указывает данные ответа на сканирование, которые устройство отправляет в пакете ответа на сканирование (при получении запроса на сканирование).

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

Уникальный адрес соединения, указанный как восьмиэлементный символьный вектор или строковый скаляр. Это свойство указывает уникальный 32-битный адрес, генерируемый LL для нового соединения или для периодической рекламы между двумя устройствами.

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

Значение инициализации CRC, указанное как шестиэлементный символьный вектор или строковый скаляр, обозначающий трехоктетное шестнадцатеричное значение. Это свойство используется в качестве значения инициализации для вычисления CRC.

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

Размер окна передачи, заданный как неотрицательное целое число в диапазоне [1, Mws], где Mws - меньшее из 8 и ConnectionInterval-1. Это свойство указывает размер окна, в пределах которого ведущее устройство передает пакет данных, а подчиненное устройство прослушивает пакет данных после установления соединения. Каждый блок принимается равным 1,25 мс, чтобы размер окна (WindowSize× 1,25) находится в диапазоне от 1,25 мс до минимума (10 мс, ((ConnectionInterval× 1,25) - 1,25) мс).

Типы данных: double

Смещение окна передачи, указанное как неотрицательное целое число в диапазоне [0, Mwo], где Mwo меньше 3200 и ConnectionInterval. Это свойство указывает смещение окна, после которого начинается окно передачи. Каждая единица измерения принимается равной 1,25 мс, чтобы результирующее смещение окна (WindowOffset× 1,25) находится в диапазоне от 0 мс до (ConnectionInterval× 1,25) мс.

Типы данных: double

Интервал подключения, заданный как положительное целое число в диапазоне [6, 3200]. Это свойство указывает интервал между началом двух последовательных событий подключения. Каждый блок принимается равным 1,25 мс, так что результирующий интервал соединения (ConnectionInterval× 1,25) находится в диапазоне от 7,5 мс до 4,0 с.

Типы данных: double

Задержка подчиненного устройства, заданная как неотрицательное целое число в диапазоне [0, Msl], где Msl меньше 499 и ((ConnectionInterval×10) / ((ConnectionInterval×1.25) ×2))-1. Это свойство указывает количество событий подключения, которые подчиненный узел может пропустить при прослушивании пакетов от ведущего.

Типы данных: double

Время ожидания контроля соединения, указанное как положительное целое число в диапазоне [Mct, 3200], где Mct больше 10 и (1 +SlaveLatency)×(ConnectionInterval×1.25) ×2)/10. Это свойство указывает тайм-аут для соединения, если в течение этого времени не получен действительный пакет. Каждый блок принимается равным 10 мс, так что результирующий тайм-аут соединения (ConnectionInterval× 10) находится в диапазоне от 100 мс до 32,0 с.

Типы данных: double

Список используемых каналов данных, указанный как целочисленный вектор со значениями элементов в диапазоне [0, 36]. Длина вектора должна быть больше 1. По крайней мере два канала должны быть установлены в качестве используемых (хороших) каналов. Это свойство указывает набор хороших каналов, классифицированных ведущим.

Типы данных: double

Число приращения прыжков, указанное как целое число в диапазоне [5, 16]. Это свойство указывает счетчик приращения прыжков, который должен использоваться для скачкообразной перестройки между каналами данных.

Типы данных: double

Точность главных часов сна, заданная как вектор символов или строковый скаляр, указывающий худшую точность главных часов сна. Можно указать SleepClockAccuracy как одно из следующих значений:

  • '251 to 500 ppm'

  • '151 to 250 ppm'

  • '101 to 150 ppm'

  • '76 to 100 ppm'

  • '51 to 75 ppm'

  • '31 to 50 ppm'

  • '21 to 30 ppm'

  • '0 to 20 ppm'

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

Функции объекта

развернуть все

bleLLAdvertisingChannelPDUСоздание рекламного канала BLE LL PDU
bleLLAdvertisingChannelPDUDecodeДекодирование рекламного канала BLE LL PDU

Примеры

свернуть все

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

cfgLLAdv = bleLLAdvertisingChannelPDUConfig
cfgLLAdv = 
  bleLLAdvertisingChannelPDUConfig with properties:

                  PDUType: 'Advertising indication'
         ChannelSelection: 'Algorithm1'
    AdvertiserAddressType: 'Random'
        AdvertiserAddress: '0123456789AB'
          AdvertisingData: [3x2 char]

Создание двух уникальных объектов конфигурации рекламных каналов BLE LL 'Scan response' и 'Connection indication' используя пары имя-значение.

Создайте объект конфигурации PDU рекламного канала BLE LL, 'cfgLLAdv', путем установки значений типа PDU как 'Scan response', адрес рекламодателя как '1234567890AB'и сканировать данные ответа как '020106020AD3' используя пары имя-значение. Просмотрите соответствующие свойства.

cfgLLAdv = bleLLAdvertisingChannelPDUConfig(...
    'PDUType','Scan response', ...
    'AdvertiserAddress','1234567890AB', ...
    'ScanResponseData','020106020AD3')
cfgLLAdv = 
  bleLLAdvertisingChannelPDUConfig with properties:

                  PDUType: 'Scan response'
         ChannelSelection: 'Algorithm1'
    AdvertiserAddressType: 'Random'
        AdvertiserAddress: '1234567890AB'
         ScanResponseData: [6x2 char]

Создайте другой объект конфигурации PDU рекламного канала BLE LL, 'cfgLLAdv'и измените тип PDU на 'Connection indication'. Установите значения интервала подключения как 64 и набор каналов данных как [0 4 12 16 18 24 25]. Просмотрите соответствующие свойства.

cfgLLAdv = bleLLAdvertisingChannelPDUConfig('PDUType', ...
    'Connection indication');
cfgLLAdv.ConnectionInterval = 64;
cfgLLAdv.UsedChannels       = [0 4 12 16 18 24 25]
cfgLLAdv = 
  bleLLAdvertisingChannelPDUConfig with properties:

                  PDUType: 'Connection indication'
         ChannelSelection: 'Algorithm1'
    AdvertiserAddressType: 'Random'
        AdvertiserAddress: '0123456789AB'
     InitiatorAddressType: 'Random'
         InitiatorAddress: '0123456789CD'
            AccessAddress: '01234567'
        CRCInitialization: '012345'
               WindowSize: 1
             WindowOffset: 0
       ConnectionInterval: 64
             SlaveLatency: 0
        ConnectionTimeout: 10
             UsedChannels: [0 4 12 16 18 24 25]
             HopIncrement: 5
       SleepClockAccuracy: '251 to 500 ppm'

Создайте объект конфигурации PDU рекламного канала BLE LL, 'cfgTx'. Установите значения типа PDU как 'Connection indication', интервал подключения как 8и набор каналов данных как [0 4 12 16 18 24 25].

cfgTx = bleLLAdvertisingChannelPDUConfig('PDUType', ...
    'Connection indication');
cfgTx.ConnectionInterval = 8;
cfgTx.UsedChannels       = [0 4 12 16 18 24 25]
cfgTx = 
  bleLLAdvertisingChannelPDUConfig with properties:

                  PDUType: 'Connection indication'
         ChannelSelection: 'Algorithm1'
    AdvertiserAddressType: 'Random'
        AdvertiserAddress: '0123456789AB'
     InitiatorAddressType: 'Random'
         InitiatorAddress: '0123456789CD'
            AccessAddress: '01234567'
        CRCInitialization: '012345'
               WindowSize: 1
             WindowOffset: 0
       ConnectionInterval: 8
             SlaveLatency: 0
        ConnectionTimeout: 10
             UsedChannels: [0 4 12 16 18 24 25]
             HopIncrement: 5
       SleepClockAccuracy: '251 to 500 ppm'

Создайте PDU рекламного канала LL BLE, используя соответствующий объект конфигурации.

pdu = bleLLAdvertisingChannelPDU(cfgTx);

Декодировать сформированный PDU рекламного канала LLE LL. Возвращенное состояние указывает на успешное декодирование. Просмотр выходных данных 'status' и 'cfgRx'.

[status, cfgRx] = bleLLAdvertisingChannelPDUDecode(pdu)
status = 
Success
cfgRx = 
  bleLLAdvertisingChannelPDUConfig with properties:

                  PDUType: 'Connection indication'
         ChannelSelection: 'Algorithm1'
    AdvertiserAddressType: 'Random'
        AdvertiserAddress: '0123456789AB'
     InitiatorAddressType: 'Random'
         InitiatorAddress: '0123456789CD'
            AccessAddress: '01234567'
        CRCInitialization: '012345'
               WindowSize: 1
             WindowOffset: 0
       ConnectionInterval: 8
             SlaveLatency: 0
        ConnectionTimeout: 10
             UsedChannels: [0 4 12 16 18 24 25]
             HopIncrement: 5
       SleepClockAccuracy: '251 to 500 ppm'

Ссылки

[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