Декодируйте 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.