Деагрегируйте A-MPDU и извлеките MPDU
[
восстанавливает mpduList
,failCRC
,status
] = wlanAMPDUDeaggregate(ampdu
,phyFormat
)mpduList
, список модулей данных протокола управления доступом к среде (MAC) (MPDU) путем деагрегирования ampdu
, совокупный MPDU (A-MPDU). Функция деагрегирует A-MPDU с помощью параметров, соответствующих phyFormat
, формат физического слоя (PHY).
Функция также возвращается failCRC
, состояние циклической проверки избыточности (CRC) разделителя для подкадров, найденных в ampdu
, и status
, состояние деагрегации A-MPDU.
[
задает опции, использующие один или несколько аргументы пары "имя-значение" в дополнение к любой комбинации входных аргументов из предыдущих синтаксисов.mpduList
,failCRC
,status
] = wlanAMPDUDeaggregate(___,Name,Value
)
Создайте MAC- системы координат WLAN строения объекта, задав тип системы координат, формат системы координат и агрегацию MPDU.
cfgMAC = wlanMACFrameConfig('FrameType','QoS Data', ... 'FrameFormat','HT-Mixed','MPDUAggregation',1);
Создайте объект строения HT, задающий агрегацию MPDU.
cfgPHY = wlanHTConfig('AggregatedMPDU',1);
Создайте случайную полезную нагрузку из восьми MSDU, а затем используйте ее, сгенерируйте A-MPDU в битовой форме.
payload = repmat({randi([0 255],1,40)},1,8); ampdu = wlanMACFrame(payload,cfgMAC,cfgPHY,'OutputFormat','bits');
Возвращает список MPDU путем деагрегирования A-MPDU.
phyFormat = 'HT';
[mpduList,failCRC,status] = wlanAMPDUDeaggregate(ampdu,phyFormat);
Подтвердите успешную деагрегацию, отобразив результат CRC разделителя и состояние декодирования.
disp(failCRC)
0 0 0 0 0 0 0 0
disp(status)
Success
Создайте MAC- системы координат WLAN строения объекта, задав тип системы координат и формат системы координат.
cfgMAC = wlanMACFrameConfig('FrameType','QoS Data','FrameFormat','VHT');
Создайте объект строения VHT с настройками по умолчанию.
cfgPHY = wlanVHTConfig;
Создайте случайную полезную нагрузку из восьми MSDU, а затем используйте ее, чтобы сгенерировать A-MPDU в битовой форме.
payload = repmat({randi([0 255],1,40)},1,8); ampdu = wlanMACFrame(payload,cfgMAC,cfgPHY,'Outputformat','bits');
Деагрегируйте A-MPDU.
[mpduList,failCRC,status] = wlanAMPDUDeaggregate(ampdu,cfgPHY);
Подтвердите успешную деагрегацию, отобразив результат CRC разделителя и состояние декодирования.
disp(failCRC)
0 0 0 0 0 0 0 0
disp(status)
Success
Деагрегируйте VHT A-MPDU и декодируйте извлеченные MPDU.
Создайте объект MAC системы координат строения WLAN для VHT A-MPDU.
txCfgMAC = wlanMACFrameConfig('FrameType','QoS Data', ... 'FrameFormat','VHT');
Создайте объект строения VHT-формата с настройками по умолчанию.
cfgPHY = wlanVHTConfig;
Сгенерируйте случайную полезную нагрузку из восьми MSDU.
txPayload = repmat({randi([0 255],1,40)},1,8);
Сгенерируйте A-MPDU, содержащий восемь MPDU для заданных строений MAC и PHY.
ampdu = wlanMACFrame(txPayload,txCfgMAC,cfgPHY);
Извлеките список MPDU путем деагрегирования A-MPDU. Отображение статуса деагрегирования и CRC разделителя.
[mpduList,failCRC,status] = wlanAMPDUDeaggregate(ampdu,cfgPHY, ... 'DataFormat','octets'); disp(status)
Success
disp(failCRC)
0 0 0 0 0 0 0 0
Декодируйте все MPDU в извлеченных. Подтвердите успешное декодирование путем отображения состояния.
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, подлежащий деагрегированиюA-MPDU, подлежащий деагрегированию, задается в качестве одного из следующих значений.
Двоичный вектор, представляющий A-MPDU в битовом формате
Вектор из целых чисел в интервале [0, 255], представляющий октеты в десятичном формате
Строковый скаляр, представляющий A-MPDU как октеты в шестнадцатеричном формате
Вектор символов, представляющий A-MPDU как октеты в шестнадцатеричном формате
A символьного массива, где каждая строка представляет октет в шестнадцатеричном формате
Типы данных: 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'
- Высокоэффективный однопользовательский (HE SU) формат
'HE-EXT-SU'
- HE расширенный формат SU (HE ER SU)
'HE-MU'
- многопользовательский (HE MU) формат
'HE-TB'
- Формат на основе триггеров (HE TB)
'VHT'
- Очень высокопроизводительный (VHT) формат
'HT'
- Высокопроизводительный (HT) формат
Типы данных: char
| string
cfgPHY
- формат PHY и параметры передачиwlanHESUConfig
| объекта wlanHEMUConfig
| объекта wlanHETBConfig
| объекта wlanHERecoveryConfig
| объекта wlanVHTConfig
| объекта wlanHTConfig
объектФормат PHY и параметры передачи, заданные как один из следующих объектов.
wlanHESUConfig
- HE SU или HE ER SU формат
wlanHEMUConfig
- Формат HE MU
wlanHETBConfig
- Формат HE TB
wlanHERecoveryConfig
- Восстановленная передача HE в формате HE SU, HE ER SU или HE MU
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
- Подавить предупреждающие сообщения.
Типы данных: logical
mpduList
- Список MPDUСписок MPDU, возвращаемый как массив ячеек из символьных массивов, где каждый массив символов соответствует одному MPDU. В этих символьных массивах каждая строка является шестнадцатеричным представлением октета.
Если в входном A-MPDU не найден разделитель MPDU, функция возвращается mpduList
как пустой массив ячеек.
Типы данных: cell
failCRC
- Индикатор отказа CRC разделителяИндикатор отказа CRC разделителя, возвращаемый как вектор-строка логических значений. Каждый элемент этого вектора указывает состояние отказа CRC разделителя для подрамника A-MPDU.
Значение 1
для k-го элемента этого вектора указывает, что ошибка CRC разделителя для k-го субкадра A-MPDU. В этом случае k-й элемент mpduList
содержит недопустимый MPDU.
Значение 0
для k-го элемента этого вектора указывает, что CRC разделителя прошел для k-го субкадра. В этом случае k-й элемент mpduList
содержит допустимый MPDU.
Типы данных: logical
status
- Состояние деагрегации A-MPDUСостояние деагрегирования A-MPDU, возвращаемое как непозитивное целое число в интервале [-20, 0]. Каждое значение перечисления status
соответствует представителю wlanMACDecodeStatus
класс перечисления, который указывает состояние анализа MAC системы координат согласно этой таблице.
Значение перечисления | Представитель класса перечисления | Состояние декодирования |
0 | Success | MAC- системой координат успешно декодирован |
-1 | FCSFailed | Не удалось выполнить последовательность проверки системы координат (FCS) |
-2 | InvalidProtocolVersion | Недопустимая версия протокола |
-3 | UnsupportedFrameType | Неподдерживаемый тип системы координат |
-4 | UnsupportedFrameSubtype | Неподдерживаемый подтип системы координат |
-5 | NotEnoughData | Недостаточно данных для декодирования системы координат |
-6 | UnsupportedBAVariant | Неподдерживаемый вариант системы координат Block Ack |
-7 | UnknownBitmapSize | Неизвестный размер растрового изображения |
-8 | UnknownAddressExtMode | Неизвестный режим расширения адреса |
-9 | MalformedAMSDULength | Неверно сформированный агрегатный модуль данных MAC-услуг (A-MSDU) с недопустимой длиной |
-10 | MalformedSSID | Неверно сформированный информационный элемент (IE) идентификатора набора услуг (SSID) |
-11 | MalformedSupportedRatesIE | Неправильные поддерживаемые скорости IE |
-12 | MalformedIELength | Неверно сформированное поле длины IE |
-13 | MissingMandatoryIEs | Отсутствуют обязательные IE |
-14 | NoMPDUFound | В A-MPDU не найдено MPDU |
-15 | CorruptedAMPDU | Все разделители в полученном A-MPDU не прошли циклическую проверку на избыточность (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 Power поля Common Info |
-25 | UnknownAID12Value | Неизвестное значение для AID12 поля User Info |
-26 | UnknownRUAllocation | Неизвестное значение для B7-B1 в подполе Распределение RU поля Информация о пользователе |
-27 | UnknownULMCS | Неизвестное значение для подполя UL MCS поля User Info |
-28 | UnknownTargetRSSI | Неизвестное значение для подполя UL Target RSSI поля User Info |
-29 | UnsupportedBARType | Неподдерживаемое значение для подполя BAR Type поля BAR Control |
-30 | MissingUserInfo | Полученная триггерная система координат содержит недопустимое поле User Info |
-31 | InvalidLSIGLength | Недопустимое значение для подполя UL Length поля Common Info, соответствующее длине поля устаревшего сигнала (L-SIG). |
Значение перечисления, отличное от 0
означает, что деагрегация A-MPDU остановлена, поскольку входной A-MPDU поврежден или неправильно сформирован.
Типы данных: int16
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.