Декодирование MPDU
[ приходит в себя cfgMAC,payload,status] = wlanMPDUDecode(mpdu,phyFormat)payload, один или несколько блоков данных службы MAC (MSDU) путем декодирования блока данных протокола MAC (MPDU) mpdu. Функция декодирует MPDU, используя параметры, соответствующие указанному формату PHY.
Функция также возвращает status, результат декодирования MPDU, и cfgMAC, a wlanMACFrameConfig объект конфигурации.
[ указывает параметры, использующие один или несколько аргументов пары имя-значение, а также любую комбинацию входных аргументов из предыдущих синтаксисов.cfgMAC,payload,status] = wlanMPDUDecode(___,Name,Value)
Создайте объект конфигурации кадров MAC WLAN для MPDU в высокоэффективном однопользовательском формате (HE SU), а затем создайте MPDU.
phyFormat = 'HE-SU'; cfgMAC = wlanMACFrameConfig('FrameFormat',phyFormat); payload = randi([0 255],1,40); mpdu = wlanMACFrame(payload,cfgMAC,'OutputFormat','bits');
Возвращает MSDU путем декодирования MPDU для указанной конфигурации формата PHY.
[rxCfgMAC,payload,status] = wlanMPDUDecode(mpdu,phyFormat);
Подтвердите успешное декодирование путем отображения состояния.
disp(status)
Success
Создайте объект конфигурации кадров MAC WLAN для кадра данных QoS, а затем создайте MPDU.
cfgMAC = wlanMACFrameConfig('FrameType','QoS Data'); payload = randi([0 255],1,40); mpdu = wlanMACFrame(payload,cfgMAC,'OutputFormat','bits');
Создайте объект конфигурации формата, отличного от формата HT, с параметрами по умолчанию.
cfgPHY = wlanNonHTConfig;
Возвращает MSDU путем декодирования MPDU для указанной конфигурации формата PHY.
[cfgMAC,payload,status] = wlanMPDUDecode(mpdu,cfgPHY);
Подтвердите успешное декодирование путем отображения состояния.
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
mpdu - декодируемый MPDUДекодируемый MPDU, указанный как одно из этих значений.
Двоично-значный вектор, представляющий MPDU в битовом виде
Вектор целых чисел в интервале [0, 255], представляющий октеты в десятичном формате
Строковый скаляр, представляющий MPDU как октеты в шестнадцатеричном формате
Вектор символов, представляющий 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' - Высокоэффективный однопользовательский формат (HE SU)
'HE-EXT-SU' - Формат SU расширенного диапазона HE (HE ER SU)
'HE-MU' - многопользовательский формат HE (HE MU)
'HE-TB' - формат на основе триггера HE (HE TB)
'VHT' - Очень высокопроизводительный формат (VHT)
'HT' - Высокопроизводительный формат (HT)
Типы данных: char | string
cfgPHY - формат PHY и параметры передачиwlanHESUConfig объект | wlanHEMUConfig объект | wlanHETBConfig объект | wlanHERecoveryConfig объект | wlanVHTConfig объект | wlanHTConfig объект | wlanNonHTConfig объектФормат PHY и параметры передачи, указанные как один из этих объектов.
wlanHESUConfig - Формат HE SU или HE ER SU
wlanHEMUConfig - Формат MU HE
wlanHETBConfig - формат HE TB
wlanHERecoveryConfig - Восстановлена передача HE в формате HE SU, HE ER SU или HE MU
wlanVHTConfig - Формат VHT
wlanHTConfig - формат HT
wlanNonHTConfig - Формат без высокой пропускной способности (не HT)
Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.
'DataFormat','octets''DataFormat' - Формат входного MPDU'bits' (по умолчанию) | 'octets'Формат входного MPDU, определяемый как разделенная запятыми пара, состоящая из 'DataFormat' и одно из этих значений.
'bits' - Укажите mpdu ввод в битовом формате
'octets' - Укажите mpdu ввод в формате октета
Типы данных: char | string
'SuppressWarnings' - Подавление предупреждающих сообщенийfalse или 0 (по умолчанию) | true или 1Подавление предупреждающих сообщений, указанных как разделенная запятыми пара, состоящая из 'SuppressWarnings' и одно из этих значений.
false или 0 - Разрешить предупреждающие сообщения.
true или 1 - Подавление предупреждающих сообщений.
Типы данных: logical
cfgMAC - конфигурация кадра MACwlanMACFrameConfig объектКонфигурация кадра MAC, возвращенная как wlanMACFrameConfig объект.
payload - Один или несколько MSDUОдин или несколько MSDU, возвращаемых в виде массива ячеек символьных массивов. Функция возвращает символьный массив для каждого MSDU. В этих символьных массивах каждая строка является шестнадцатеричным представлением октета. Для каждого MAC-кадра, не содержащего данных, функция возвращает payload в виде пустого массива ячеек.
Типы данных: cell
status - Состояние декодирования MPDUСостояние декодирования MPDU, возвращаемое как целое число в интервале [-31, 0]. Каждое значение status соответствует члену wlanMACDecodeStatus класс перечисления, который указывает состояние декодирования кадра MAC в соответствии с этой таблицей.
| Значение перечисления | Член класса перечисления | Состояние декодирования |
0 | Success | Кадр MAC успешно декодирован |
-1 | FCSFailed | Сбой последовательности проверки кадров (FCS) |
-2 | InvalidProtocolVersion | Недопустимая версия протокола |
-3 | UnsupportedFrameType | Неподдерживаемый тип кадра |
-4 | UnsupportedFrameSubtype | Неподдерживаемый подтип кадра |
-5 | NotEnoughData | Недостаточно данных для декодирования кадра |
-6 | UnsupportedBAVariant | Неподдерживаемый вариант кадра подтверждения блокировки |
-7 | UnknownBitmapSize | Неизвестный размер растрового изображения |
-8 | UnknownAddressExtMode | Режим расширения неизвестного адреса |
-9 | MalformedAMSDULength | Неверно сформированный агрегатный блок данных службы MAC (A-MSDU) с недопустимой длиной |
-10 | MalformedSSID | Неправильный информационный элемент (IE) идентификатора набора служб (SSID) |
-11 | MalformedSupportedRatesIE | Неправильно сформированные поддерживаемые скорости IE |
-12 | MalformedIELength | Неправильно сформированное поле длины IE |
-13 | MissingMandatoryIEs | Отсутствуют обязательные IE |
-14 | NoMPDUFound | Не найден MPDU в A-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 поля 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 означает, что сбой декодирования MPDU. Если декодирование завершается неуспешно, cfgMAC вывод не отображает свойств, и функция возвращает payload вывод в виде пустого массива ячеек.
Типы данных: int16
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.