exponenta event banner

bleLLControlPDUConfig

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

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

Описание

bleLLControlPDUConfig создает объект конфигурации для конфигурации полезной нагрузки блока управляющих протокольных данных (PDU) канального уровня (LL) Bluetooth с низким энергопотреблением (BLE), используя значения по умолчанию и указанные значения. Можно сконфигурировать конфигурацию полезной нагрузки PDU управления BLE с использованием применимых свойств 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 спецификации ядра Bluetooth [2].

Код операции конфигурирования полезной нагрузки 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, Msl], где Msl меньше 499 и ((ConnectionTimeout×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, 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, указанный как '4.0', '4.1', '4.2' или '5.0'. Это свойство указывает номер версии спецификации ядра Bluetooth.

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

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

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

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

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

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

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

bleLLDataChannelPDUФормирование PDU канала данных LL BLE
bleLLDataChannelPDUDecodeДекодирование PDU канала данных LL BLE
bleLLDataChannelPDUConfigОбъект конфигурации для PDU канала данных BLE LL

Примеры

свернуть все

Создание объекта конфигурации PDU управления BLE, '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, 'cfgControl', путем указания opcode как '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', на этот раз путем установки значения opcode как '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]

Создание объекта конфигурации канала данных LL BLE '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
    CRCInitialization: '012345'
        ControlConfig: [1x1 bleLLControlPDUConfig]

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

cfgControl = bleLLControlPDUConfig
cfgControl = 
  bleLLControlPDUConfig with properties:

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

Создание PDU канала данных LL BLE с использованием '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
    CRCInitialization: 'E23456'
        ControlConfig: [1x1 bleLLControlPDUConfig]

Создание PDU управления BLE LL из 'cfgTx'.

pdu = bleLLDataChannelPDU(cfgTx);

Декодируйте сформированный PDU управления LL BLE, инициализируя значение 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
    CRCInitialization: '012345'
        ControlConfig: [1x1 bleLLControlPDUConfig]

llPayload =

  1x0 empty char array

Ссылки

[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