bleLLAdvertisingChannelPDUConfig

Объект Configuration для BLE LL, рекламируя PDU канала

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

Описание

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

Создание

Описание

пример

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

пример

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

Свойства

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

Примечание

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

BLE LL рекламируя PDU канала вводит в виде вектора символов или строкового скаляра, чтобы описать тип BLE LL, рекламируя PDU канала. Можно задать '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- 2 символьных массива — Каждая строка представляют октет в шестнадцатеричном формате.

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

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

Отсканируйте данные об ответе в виде одного из этих значений:

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

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

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

  • n- 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 является меньшими из 3 200 и ConnectionInterval. Это свойство указывает на смещение окна, после которого запускается окно передачи. Каждый модуль взят в качестве 1,25 мс так, чтобы результирующее окно возмещало (WindowOffset×1.25), находится в области значений 0 мс к (ConnectionInterval×1.25) мс.

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

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

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

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

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

Тайм-аут контроля связью в виде положительного целого числа в области значений [Макт, 3200], где Макт является большими из 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' использование пар "имя-значение".

Создайте BLE LL, рекламируя объект настройки PDU канала, '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]

Создайте другой BLE LL, рекламируя объект настройки PDU канала, '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'

Создайте BLE LL, рекламируя объект настройки PDU канала, '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'

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

pdu = bleLLAdvertisingChannelPDU(cfgTx);

Декодируйте сгенерированный BLE LL, рекламируя PDU канала. Возвращенное состояние указывает, что декодирование успешно. Просмотрите вывод '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 | официальный сайт Технологии Bluetooth”. Полученный доступ 22 ноября 2019. https://www.bluetooth.com/.

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

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

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

Введенный в R2019b