bleLLControlPDUConfig

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

Скачать Обязательно: Чтобы использовать bleLLControlPduconfig, сначала загрузите библиотеку Communications Toolbox™ для Bluetooth® Протокол. Для получения дополнительной информации см. раздел «Получение и управление дополнениями». Другой способ см. в разделе Библиотека Communications Toolbox для обмена файлами протокола Bluetooth.

Описание

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

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

  • '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 управления LL BLE, который не распознан или не поддерживается.

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

Номер версии спецификации ядра Bluetooth, указанный как '4.0', '4.1', '4.2' или '5.0'. Это свойство указывает номер версии спецификации ядра Bluetooth.

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

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

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

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

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

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

расширить все

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

Примеры

свернуть все

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

Создайте объект строения канала данных 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
    CRCInitialization: '012345'
        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 канала данных 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]

Сгенерируйте блок управления 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 Technology. Bluetooth Technology Website | Официальный сайт Bluetooth Technology. Доступ к 22 ноября 2019 года. https://www.bluetooth.com/.

[2] Группа специальных интересов Bluetooth (SIG). Bluetooth Core Спецификации. Версия 5.1. https://www.bluetooth.com/.

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

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

.
Введенный в R2019b