Deaggregate A-MPDU и извлечение MPDUs
[
восстанавливает mpduList
,failCRC
,status
] = wlanAMPDUDeaggregate(ampdu
,phyFormat
)mpduList
, список модулей данных о протоколе среднего управления доступом (MAC) (MPDUs), deaggregating ampdu
, агрегат MPDU (A-MPDU). Функция deaggregates A-MPDU при помощи параметров, подходящих для phyFormat
, физический уровень (PHY) формат.
Функция также возвращает failCRC
, состояние контроля циклическим избыточным кодом (CRC) разделителя для подкадров найдено в ampdu
, и status
, состояние A-MPDU deaggregation.
[
задает опции с помощью одного или нескольких аргументов пары "имя-значение" в дополнение к любой комбинации входных аргументов от предыдущих синтаксисов.mpduList
,failCRC
,status
] = wlanAMPDUDeaggregate(___,Name,Value
)
Создайте объект настройки системы координат ВЛАНА МАКА, задав тип системы координат, структурируйте формат и агрегацию MPDU.
cfgMAC = wlanMACFrameConfig('FrameType','QoS Data', ... 'FrameFormat','HT-Mixed','MPDUAggregation',1);
Создайте объект настройки HT, задав агрегацию MPDU.
cfgPHY = wlanHTConfig('AggregatedMPDU',1);
Создайте случайную полезную нагрузку восьми MSDUs, и затем используйте ее, генерируют A-MPDU в битной форме.
payload = repmat({randi([0 255],1,40)},1,8); ampdu = wlanMACFrame(payload,cfgMAC,cfgPHY,'OutputFormat','bits');
Возвратите список MPDUs deaggregating A-MPDU.
phyFormat = 'HT';
[mpduList,failCRC,status] = wlanAMPDUDeaggregate(ampdu,phyFormat);
Подтвердите успешный deaggregation путем отображения результата CRC разделителя и состояния декодирования.
disp(failCRC)
0 0 0 0 0 0 0 0
disp(status)
Success
Создайте объект настройки системы координат ВЛАНА МАКА, задав тип системы координат и структурируйте формат.
cfgMAC = wlanMACFrameConfig('FrameType','QoS Data','FrameFormat','VHT');
Создайте объект настройки VHT с настройками по умолчанию.
cfgPHY = wlanVHTConfig;
Создайте случайную полезную нагрузку восьми MSDUs, и затем используйте ее, чтобы сгенерировать A-MPDU в битной форме.
payload = repmat({randi([0 255],1,40)},1,8); ampdu = wlanMACFrame(payload,cfgMAC,cfgPHY,'Outputformat','bits');
Deaggregate A-MPDU.
[mpduList,failCRC,status] = wlanAMPDUDeaggregate(ampdu,cfgPHY);
Подтвердите успешный deaggregation путем отображения результата CRC разделителя и состояния декодирования.
disp(failCRC)
0 0 0 0 0 0 0 0
disp(status)
Success
Deaggregate VHT A-MPDU и декодируют извлеченный MPDUs.
Создайте объект настройки системы координат ВЛАНА МАКА для VHT A-MPDU.
txCfgMAC = wlanMACFrameConfig('FrameType','QoS Data', ... 'FrameFormat','VHT');
Создайте объект настройки VHT-формата с настройками по умолчанию.
cfgPHY = wlanVHTConfig;
Сгенерируйте случайную полезную нагрузку восьми MSDUs.
txPayload = repmat({randi([0 255],1,40)},1,8);
Сгенерируйте A-MPDU, содержащий восемь MPDUs для заданного MAC и настроек PHY.
ampdu = wlanMACFrame(txPayload,txCfgMAC,cfgPHY);
Извлеките список MPDUs deaggregating A-MPDU. Отобразите состояние deaggregation и CRC разделителя.
[mpduList,failCRC,status] = wlanAMPDUDeaggregate(ampdu,cfgPHY, ... 'DataFormat','octets'); disp(status)
Success
disp(failCRC)
0 0 0 0 0 0 0 0
Декодируйте все MPDUs в извлеченном. Подтвердите успешное декодирование путем отображения состояния.
if strcmp(status,'Success') for i = 1:numel(mpduList) if ~failCRC(i) [cfgMAC,payload,status(i)] = ... wlanMPDUDecode(mpduList{i},cfgPHY, ... 'DataFormat','octets'); end end end disp(status)
Columns 1 through 7 Success Success Success Success Success Success Success Column 8 Success
ampdu
— A-MPDU, чтобы быть deaggregatedA-MPDU, чтобы быть deaggregated в виде одного из этих значений.
Вектор с бинарным знаком, представляющий A-MPDU в битном формате
Вектор из целых чисел в интервале [0, 255] представление октетов в десятичном формате
Строковый скаляр, представляющий A-MPDU как октеты в шестнадцатеричном формате
Вектор символов, представляющий A-MPDU как октеты в шестнадцатеричном формате
Символьный массив, где каждая строка представляет октет в шестнадцатеричном формате
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| char
| string
phyFormat
— Формат PHY'HE-SU'
| 'HE-EXT-SU'
| 'HE-MU
| 'HE-TB'
| 'VHT'
| 'HT'
Формат PHY в виде одного из этих значений.
'HE-SU'
— Однопользовательская высокая эффективность (SU HE) формат
'HE-EXT-SU'
— SU расширенной области значений HE (HE SU ER) формат
'HE-MU'
— Многопользовательский HE (HE МУ) формат
'HE-TB'
— Основанный на триггере HE (Тбайт HE) формат
'VHT'
— Формат очень высокопроизводительного (VHT)
'HT'
— Высокопроизводительный (HT) формат
Типы данных: char |
string
cfgPHY
— Формат PHY и параметры передачиwlanHESUConfig
возразите | wlanHEMUConfig
возразите | wlanHETBConfig
возразите | wlanHERecoveryConfig
возразите | wlanVHTConfig
возразите | wlanHTConfig
объектФормат PHY и параметры передачи в виде одного из этих объектов.
wlanHESUConfig
— SU HE или HE формат SU ER
wlanHEMUConfig
— HE формат МУ
wlanHETBConfig
— Формат Тбайта HE
wlanHERecoveryConfig
— Восстановленная передача HE в SU HE, HE SU ER или HE формат МУ
wlanVHTConfig
— Формат VHT
wlanHTConfig
— Формат HT
Задайте дополнительные разделенные запятой пары Name,Value
аргументы. Name
имя аргумента и Value
соответствующее значение. Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN
.
'DataFormat','octets'
DataFormat
— Формат входа A-MPDU'bits'
(значение по умолчанию) | 'octets'
Формат входа A-MPDU в виде разделенной запятой пары, состоящей из 'DataFormat'
и одно из этих значений.
'bits'
— Задайте ampdu
введите в битном формате
'octets'
— Задайте ampdu
введите в формате октета
Типы данных: char |
string
SuppressWarnings
— Подавите предупреждающие сообщенияfalse
или 0
(значение по умолчанию) | true
или 1
Подавите предупреждающие сообщения в виде разделенной запятой пары, состоящей из 'SuppressWarnings'
и одно из этих значений.
false
или 0
— Позвольте предупреждающие сообщения.
true
или 1
— Подавите предупреждающие сообщения.
Типы данных: логический
mpduList
— Список MPDUsСписок MPDUs, возвращенного как массив ячеек символьных массивов, где каждый символьный массив соответствует одному MPDU. В этих символьных массивах каждая строка является шестнадцатеричным представлением октета.
Если никакой разделитель MPDU не найден во входе A-MPDU, функция возвращает mpduList
как массив пустой ячейки.
Типы данных: cell
failCRC
— Индикатор отказа CRC разделителяИндикатор отказа CRC разделителя, возвращенный как вектор-строка из логических значений. Каждый элемент этого вектора указывает на состояние отказа CRC разделителя для подкадра A-MPDU.
Значение 1
для k th элемент этого вектора указывает, что CRC разделителя перестал работать для k th A-MPDU подкадр. В этом случае, k th элемент mpduList
содержит MPDU, который может быть недопустимым.
Значение 0
для k th элемент этого вектора указывает, что CRC разделителя передал для k th подкадр. В этом случае, k th элемент mpduList
содержит допустимый MPDU.
Типы данных: логический
status
— Состояние A-MPDU deaggregationСостояние A-MPDU deaggregation, возвращенного как неположительное целое число в интервале [–20, 0]. Каждая перечислимая величина status
соответствует члену wlanMACDecodeStatus
класс перечисления, который указывает на состояние парсинга системы координат MAC согласно этой таблице.
Перечислимая величина | Член класса перечисления | Декодирование состояния |
0
| Success | Система координат MAC успешно декодируется |
-1
| FCSFailed | Последовательность проверки системы координат (FCS) перестала работать |
-2
| InvalidProtocolVersion | Недопустимая версия протокола |
-3
| UnsupportedFrameType | Неподдерживаемый тип системы координат |
-4
| UnsupportedFrameSubtype | Неподдерживаемый подтип системы координат |
-5
| NotEnoughData | Недостаточные данные, чтобы декодировать систему координат |
-6
| UnsupportedBAVariant | Вариант Unsupported Блока система координат Ack |
-7
| UnknownBitmapSize | Неизвестный растровый размер |
-8
| UnknownAddressExtMode | Неизвестный режим расширения адреса |
-9
| MalformedAMSDULength | Уродливый совокупный модуль эксплуатационных данных MAC (A-MSDU) с недопустимой длиной |
-10
| MalformedSSID | Уродливый сервис установил идентификатор (SSID) информационный элемент (IE) |
-11
| MalformedSupportedRatesIE | Уродливый поддерживаемый IE уровней |
-12
| MalformedIELength | Уродливое поле длины IE |
-13
| MissingMandatoryIEs | Обязательные пропавшие без вести IES |
-14
| NoMPDUFound | Никакой MPDU не найден в A-MPDU |
-15
| CorruptedAMPDU | Все разделители в принятом А-МПДУ привели контроль циклическим избыточным кодом (CRC) к сбою |
-16
| InvalidDelimiterLength | Недопустимое поле длины в разделителе MPDU |
-17
| MaxAMSDULenthExceeded | A-MSDU превышает максимальный предел длины |
-18
| MaxMPDULengthExceeded | MPDU превышает максимальный предел длины |
-19
| MaxMMPDULengthExceeded | Система координат управления MAC превышает максимальный предел длины |
-20
| MaxMSDULengthExceeded | MSDU превышает максимальный предел длины |
-21
| UnexpectedProtectedFrame | Недопустимое значение защищенного бита для этого типа системы координат |
-22
| UnsupportedTriggerType | Неподдерживаемый триггер структурирует тип |
-23
| UnknownHELTFTypeAndGI | Неизвестный защитный интервал (GI) и высокая эффективность длинное учебное поле (HE-LTF) тип |
-24
| UnknownAPTxPower | Неизвестное значение для AP подполе Степени Tx поля Common Info |
-25
| UnknownAID12Value | Неизвестное значение для подполя AID12 поля User Info |
-26
| UnknownRUAllocation | Неизвестное значение для B7-B1 в подполе Выделения RU поля User Info |
-27
| UnknownULMCS | Неизвестное значение для подполя MCS UL поля User Info |
-28
| UnknownTargetRSSI | Неизвестное значение для Цели UL подполе RSSI поля User Info |
-29
| UnsupportedBARType | Неподдерживаемое значение для подполя Типа ПАНЕЛИ Поля элемента управления ПАНЕЛИ |
-30
| MissingUserInfo | Принятый триггерный кадр содержит поле Info недействительного пользователя |
-31
| InvalidLSIGLength | Недопустимое значение для подполя Длины UL поля Common Info, соответствуя длине устаревшего поля (L-SIG) сигнала. |
Перечислимая величина кроме 0
средние значения, что A-MPDU deaggregation, остановленный, потому что вход A-MPDU поврежден или уродлив.
Типы данных: int16
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.