Декодируйте MPDU
[cfgMAC,payload,status] = wlanMPDUDecode(mpdu,cfgPHY)[cfgMAC,payload,status] = wlanMPDUDecode(___,'DataFormat',format)[ возвращает модули эксплуатационных данных MAC (MSDUs), cfgMAC,payload,status] = wlanMPDUDecode(mpdu,cfgPHY)payload, путем декодирования входа MAC protocol data unit (MPDU), mpdu, для данного физического уровня (PHY) объект cfgPHY настройки формата. Функция также возвращает status, который указывает на результат декодирования MPDU, и cfgMAC, объект настройки wlanMACFrameConfig.
Создайте объект настройки кадра ВЛАНА МАКА для кадра данных QoS, и затем сгенерируйте данные QoS MPDU в форме октета.
txCfgMAC = wlanMACFrameConfig('FrameType','QoS Data'); mpduOctets = wlanMACFrame(randi([0 255],1,40),txCfgMAC);
Преобразуйте MPDU в битную форму.
mpdu = reshape(de2bi(hex2dec(mpduOctets), 8)',[],1);
Создайте не высокий формат пропускной способности (non-HT-format) объект настройки с настройками по умолчанию.
cfgPHY = wlanNonHTConfig;
Возвратите MSDUs путем декодирования MPDU для заданной настройки формата PHY.
[rxCfgMAC,payload,status] = wlanMPDUDecode(mpdu,cfgPHY);
Создайте объект настройки кадра ВЛАНА МАКА для кадра данных QoS, затем сгенерируйте данные QoS MPDU в форме октета.
txCfgMAC = wlanMACFrameConfig('FrameType','QoS Data'); mpdu = wlanMACFrame(randi([0 255],1,40),txCfgMAC);
Создайте non-HT-format объект настройки с настройками по умолчанию.
cfgPHY = wlanNonHTConfig;
Возвратите MSDUs путем декодирования MPDU для заданной настройки формата PHY.
[rxCfgMAC,payload,status] = wlanMPDUDecode(mpdu,cfgPHY,'DataFormat','octets');
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, delimiterCRCFail, status] = ... wlanAMPDUDeaggregate(ampdu,cfgPHY,'DataFormat','octets'); disp(status)
Success
disp(delimiterCRCFail)
0 0 0 0 0 0 0 0
Декодируйте весь MPDUs в извлеченном списке.
if strcmp(status,'Success') for i = 1:numel(mpduList) if ~delimiterCRCFail(i) [cfgMAC, payload, decodeStatus] = ... wlanMPDUDecode(mpduList{i},cfgPHY,'DataFormat','octets'); end end end
mpdu — MPDU, который будет декодироватьсяMPDU, который будет декодироваться, заданный как одно из этих значений:
бинарный вектор, представляющий MPDU в битной форме;
числовые октеты представления вектора в десятичном формате, где каждый элемент является целым числом в интервале [0, 255];
скаляр строки представление MPDU как октеты в шестнадцатеричном формате;
вектор символов, представляющий MPDU как октеты в шестнадцатеричном формате;
символьный массив, где каждая строка представляет октет в шестнадцатеричном формате.
Типы данных: double | char | string
cfgPHY — Настройка формата PHYwlanHESUConfig | объект wlanVHTConfig | объект wlanHTConfig | объект wlanNonHTConfigНастройка формата PHY, заданная как объект типа wlanHESUConfig, wlanVHTConfig, wlanHTConfig, wlanNonHTConfig. Этот объект задает настройку формата PHY и ее применимые свойства.
формат Формат входа MPDU'bits' (значение по умолчанию) | 'octets'Формат входа MPDU, заданного как 'bits' или 'octets'.
Типы данных: string
cfgMAC — Настройка кадра MACwlanMACFrameConfigНастройка кадра MAC, возвращенная как объект wlanMACFrameConfig.
payload — Один или несколько MSDUsОдин или несколько MSDUs, возвращенные как массив ячеек символьных массивов. Функция возвращает символьный массив для каждого MSDU. В этих символьных массивах каждая строка является шестнадцатеричным представлением октета. Для каждого кадра MAC, который не содержит данных, функция возвращает payload как массив пустой ячейки.
Типы данных: cell
состояние Состояние декодирования MPDUСостояние декодирования MPDU, возвращенного как неположительное целое число в интервале [–20, 0]. Каждое значение status соответствует члену класса перечисления wlanMACDecodeStatus, который указывает на состояние декодирования кадра MAC согласно этой таблице.
| Перечислимая величина | Член класса перечисления | Декодирование состояния |
| 0 | Success | Кадр MAC успешно декодируется |
| –1 | FCSFailed | Последовательность проверки кадра (FCS) перестала работать |
| –2 | InvalidProtocolVersion | Недопустимая версия протокола |
| –3 | UnsupportedFrameType | Неподдерживаемый тип кадра |
| –4 | UnsupportedFrameSubtype | Неподдерживаемый подтип кадра |
| –5 | NotEnoughData | Недостаточные данные, чтобы декодировать кадр |
| –6 | UnsupportedBAVariant | Неподдерживаемый вариант Блока кадр 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 превысил максимальный предел длины |
Перечислимая величина кроме 0 означает это MPDU декодирование не пройдено. Если декодирование перестало работать, вывод cfgMAC не отображает свойств, и вывод payload возвращен как массив пустой ячейки.
Типы данных: int16
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.