bleLLControlPDUConfig

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

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

Описание

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

Создание

Описание

пример

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

пример

cfgControl = bleLLControlPDUConfig(Name,Value)устанавливает свойства с помощью одной или нескольких пар "имя-значение". Заключите каждое имя свойства в кавычки. Например, bleLLControlPDUConfig('Opcode','Version indication') конфигурирует cfgControl с кодом операции как 'Version indication'

Свойства

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

Примечание

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

Код операции настройки полезной нагрузки PDU управления BLE LL, заданный как одно из значений в этом списке. Каждое допустимое значение описывает код операции PDU управления BLE LL.

  • 'Connection update indication'

  • 'Channel map indication'

  • 'Terminate indication'

  • 'Unknown response'

  • 'Version indication'

  • 'Reject indication'

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

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

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

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

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

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

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

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

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

Момент события Connection, заданный как целое число в области значений [0, 65535]. Это свойство указывает на количество события, в котором определенное действие должно произойти, например, с помощью обновленных параметров связи.

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

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

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

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

  • 'Success'

  • 'Unknown connection identifier'

  • 'Hardware failure'

  • 'Memory capacity exceeded'

  • 'Connection timeout'

  • 'Connection limit exceeded'

  • 'Connection already exists'

  • 'Command disallowed'

  • 'Connection accept timeout exceeded'

  • 'Connection rejected due to limited resources'

  • 'Invalid LL parameters'

  • 'Connection rejected due to unacceptable BD_ADDR'

  • 'Unspecified error'

  • 'Unsupported LL parameter value'

  • 'Role change not allowed'

  • 'LL response timeout'

  • 'LL procedure collision'

  • 'Instant passed'

  • 'Channel classification not supported'

  • 'Extended inquiry response too large'

  • 'Connection rejected due to no suitable channel found'

  • 'Advertising timeout'

  • 'Controller busy'

  • 'Unacceptable connection parameters'

  • 'Connection failed to be established'

  • 'Unknown advertising identifier'

  • 'Limit reached'

  • 'Operation cancelled by host'

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

Код нераспознанной или недопустимой операции, заданный как разделенная запятой пара, состоящая из 'UnknownOpcode' и двухэлементный вектор символов или скаляр строки обозначение шестнадцатеричного значения с одним октетом. Это свойство указывает на тип PDU управления BLE LL, который не распознан или поддержан.

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

Номер версии спецификации Bluetooth, заданной как скаляр строки обозначение шестнадцатеричного значения с одним октетом. Можно задать 'VersionNumber' как '4.0', '4.1', '4.2' или '4.3'. Это свойство указывает на номер версии спецификации ядра Bluetooth.

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

ID производителя контроллера Bluetooth, заданного как четырехэлементный вектор символов или скаляр строки обозначение 2D октета шестнадцатеричное значение. Это свойство указывает на уникальный идентификатор, присвоенный вашей организации Специальной группой (SIG) Bluetooth [2].

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

Количество subversion контроллера Bluetooth, заданного как четырехэлементный вектор символов или скаляр строки обозначение 2D октета шестнадцатеричное значение. Это свойство указывает на уникальное значение для каждой реализации или версии контроллера Bluetooth реализация.

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

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

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

bleLLDataChannelPDUСгенерируйте PDU канала данных BLE LL
bleLLDataChannelPDUDecodeДекодируйте PDU канала данных BLE LL
bleLLDataChannelPDUConfigСоздайте объект настройки для PDU канала данных BLE LL

Примеры

свернуть все

Создайте объект настройки PDU управления BLE LL, 'cfgControl', использование настроек по умолчанию. Просмотрите соответствующие применимые свойства.

cfgControl = bleLLControlPDUConfig
cfgControl = 
  bleLLControlPDUConfig with properties:

                Opcode: 'Connection update indication'
            WindowSize: 1
          WindowOffset: 0
    ConnectionInterval: 6
          SlaveLatency: 0
     ConnectionTimeout: 10
               Instant: 0

Измените значение интервала связи к 64. Просмотрите сконфигурированные свойства.

cfgControl.ConnectionInterval = 64
cfgControl = 
  bleLLControlPDUConfig with properties:

                Opcode: 'Connection update indication'
            WindowSize: 1
          WindowOffset: 0
    ConnectionInterval: 64
          SlaveLatency: 0
     ConnectionTimeout: 10
               Instant: 0

Создайте два уникальных объекта настройки PDU управления BLE LL с помощью пар "имя-значение": сначала один из типа 'Terminate indication' и код ошибки 'Connection timeout' и второй типа 'Channel map indication' с используемым набором каналов данных.

Создайте объект настройки PDU управления BLE LL, 'cfgControl', путем определения кода операции как 'Terminate indication' и код ошибки как 'Connection timeout'. Просмотрите применимые свойства, соответствующие заданному коду операции.

cfgControl = bleLLControlPDUConfig('Opcode','Terminate indication', ...
    'ErrorCode','Connection Timeout')
cfgControl = 
  bleLLControlPDUConfig with properties:

       Opcode: 'Terminate indication'
    ErrorCode: 'Connection timeout'

Создайте другой объект настройки полезной нагрузки PDU управления BLE LL, 'cfgControl', на этот раз путем устанавливания значения кода операции как 'Channel map indication'. Задайте список используемых каналов данных. Просмотрите сконфигурированные свойства, соответствующие заданному коду операции.

cfgControl = bleLLControlPDUConfig('Opcode','Channel map indication');
cfgControl.UsedChannels = [0 3 12 16 18 24]
cfgControl = 
  bleLLControlPDUConfig with properties:

          Opcode: 'Channel map indication'
         Instant: 0
    UsedChannels: [0 3 12 16 18 24]

Создайте объект настройки канала данных BLE LL, 'cfgLLData', путем определения значений 'LLID' как 'Control' и 'ControlConfig' как 'cfgControl'. Просмотрите свойства объекта 'cfgLLData' настройки.

cfgLLData = bleLLDataChannelPDUConfig('LLID','Control');
cfgLLData.ControlConfig = cfgControl
cfgLLData = 
  bleLLDataChannelPDUConfig with properties:

              LLID: 'Control'
              NESN: 0
    SequenceNumber: 0
          MoreData: 0
     ControlConfig: [1x1 bleLLControlPDUConfig]

Создайте объект настройки PDU канала данных BLE LL для PDU управления при помощи настройки по умолчанию. Просмотрите соответствующие свойства по умолчанию.

cfgControl = bleLLControlPDUConfig
cfgControl = 
  bleLLControlPDUConfig with properties:

                Opcode: 'Connection update indication'
            WindowSize: 1
          WindowOffset: 0
    ConnectionInterval: 6
          SlaveLatency: 0
     ConnectionTimeout: 10
               Instant: 0

Сгенерируйте PDU канала данных BLE LL с помощью 'cfgTx' путем определения значения идентификатора слоя ссылки, 'LLID', как 'Control' и 'ControlConfig' как 'cfgControl'. Задайте значение контроля циклическим избыточным кодом (CRC) для объекта 'cfgTx' настройки. Просмотрите свойства 'cfgTx'.

cfgTx = bleLLDataChannelPDUConfig('LLID', 'Control', ...
    'ControlConfig',cfgControl);
cfgTx.CRCInitialization = 'E23456'
cfgTx = 
  bleLLDataChannelPDUConfig with properties:

              LLID: 'Control'
              NESN: 0
    SequenceNumber: 0
          MoreData: 0
     ControlConfig: [1x1 bleLLControlPDUConfig]

Сгенерируйте PDU управления BLE LL от 'cfgTx'.

pdu = bleLLDataChannelPDU(cfgTx);

Декодируйте сгенерированный PDU управления BLE LL путем инициализации значения CRC. Возвращенное состояние указывает, что декодирование успешно. Просмотрите значения 'status', 'cfgRx' и 'llPayload'.

crcInit = 'E23456'; % Received during associaton
[status, cfgRx, llPayload] = bleLLDataChannelPDUDecode(pdu, crcInit)
status = 
Success
cfgRx = 
  bleLLDataChannelPDUConfig with properties:

              LLID: 'Control'
              NESN: 0
    SequenceNumber: 0
          MoreData: 0
     ControlConfig: [1x1 bleLLControlPDUConfig]

llPayload =

  1x0 empty char array

Ссылки

[1] Домашняя страница Bluetooth. https://www.bluetooth.com/.

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

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

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

Введенный в R2019b