bleLLAdvertisingChannelPDUConfig

Создайте объект настройки для BLE LL, рекламируя PDU канала

Загрузите Необходимый: Чтобы использовать bleLLAdvertisingChannelPDUConfig, сначала загрузите Библиотеку Communications Toolbox™ для Протокола Bluetooth®. Для получения дополнительной информации смотрите, Получают и Управляют Дополнениями (MATLAB). В качестве альтернативы смотрите Библиотеку 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-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 является меньшими из 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. https://www.bluetooth.com/.

[2] Специальная группа (SIG) Bluetooth. "Спецификация ядра Bluetooth". Версия 5.0.

Введенный в R2019b

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