|
INET Framework for OMNeT++/OMNEST
|
#include <Ieee80211OfdmDecoder.h>
◆ Ieee80211OfdmDecoder() [1/2]
| inet::physicallayer::Ieee80211OfdmDecoder::Ieee80211OfdmDecoder |
( |
const IScrambler * |
descrambler, |
|
|
const IFecCoder * |
fecDecoder, |
|
|
const IInterleaver * |
deinterleaver |
|
) |
| |
◆ Ieee80211OfdmDecoder() [2/2]
| inet::physicallayer::Ieee80211OfdmDecoder::Ieee80211OfdmDecoder |
( |
const Ieee80211OfdmCode * |
code | ) |
|
◆ ~Ieee80211OfdmDecoder()
| inet::physicallayer::Ieee80211OfdmDecoder::~Ieee80211OfdmDecoder |
( |
| ) |
|
|
virtual |
◆ calculatePadding()
| unsigned int inet::physicallayer::Ieee80211OfdmDecoder::calculatePadding |
( |
unsigned int |
dataFieldLengthInBits, |
|
|
const IModulation * |
modulationScheme, |
|
|
const Ieee80211ConvolutionalCode * |
fec |
|
) |
| const |
|
protected |
108 const IApskModulation *dataModulationScheme =
dynamic_cast<const IApskModulation *
>(modulationScheme);
109 ASSERT(dataModulationScheme !=
nullptr);
111 unsigned int dataBitsPerOFDMSymbol = codedBitsPerOFDMSymbol * fec->getCodeRatePuncturingK() / fec->getCodeRatePuncturingN();
112 return dataBitsPerOFDMSymbol - dataFieldLengthInBits % dataBitsPerOFDMSymbol;
◆ createPacketModel()
74 if (decodedBits->getSize() % 8 == 0) {
75 const auto& bytesChunk = makeShared<BytesChunk>(decodedBits->getBytes());
76 packet =
new Packet(
nullptr, bytesChunk);
79 std::vector<bool> bits;
80 for (
int i = 0; i < (int)decodedBits->getSize(); i++)
81 bits.push_back(decodedBits->getBit(i));
82 const auto& bitsChunk = makeShared<BitsChunk>(bits);
83 packet =
new Packet(
nullptr, bitsChunk);
86 packet->setBitError(hasBitError);
87 return new ReceptionPacketModel(packet,
bps(
NaN),
NaN);
Referenced by decode().
◆ decode()
◆ getCode()
| const Ieee80211OfdmCode* inet::physicallayer::Ieee80211OfdmDecoder::getCode |
( |
| ) |
const |
|
inline |
◆ getSignalFieldLength()
| unsigned int inet::physicallayer::Ieee80211OfdmDecoder::getSignalFieldLength |
( |
const BitVector & |
signalField | ) |
const |
|
protected |
100 ShortBitVector length;
102 length.appendBit(signalField.getBit(i));
103 return length.toDecimal();
◆ getSignalFieldRate()
| ShortBitVector inet::physicallayer::Ieee80211OfdmDecoder::getSignalFieldRate |
( |
const BitVector & |
signalField | ) |
const |
|
protected |
94 rate.appendBit(signalField.getBit(i));
◆ printToStream()
| std::ostream & inet::physicallayer::Ieee80211OfdmDecoder::printToStream |
( |
std::ostream & |
stream, |
|
|
int |
level, |
|
|
int |
evFlags = 0 |
|
) |
| const |
|
overridevirtual |
◆ code
◆ deinterleaver
| const IInterleaver* inet::physicallayer::Ieee80211OfdmDecoder::deinterleaver = nullptr |
|
protected |
◆ descrambler
| const IScrambler* inet::physicallayer::Ieee80211OfdmDecoder::descrambler = nullptr |
|
protected |
◆ fecDecoder
| const IFecCoder* inet::physicallayer::Ieee80211OfdmDecoder::fecDecoder = nullptr |
|
protected |
The documentation for this class was generated from the following files:
const IReceptionPacketModel * createPacketModel(const BitVector *decodedBits, bool hasBitError, const IScrambling *scrambling, const IForwardErrorCorrection *fec, const IInterleaving *interleaving) const
Definition: Ieee80211OfdmDecoder.cc:71
virtual BitVector deinterleave(const BitVector &bits) const =0
compose< b, pow< s, -1 > > bps
Definition: Units.h:1169
#define SIGNAL_LENGTH_FIELD_END
Definition: Ieee80211OfdmDefs.h:21
#define NUMBER_OF_OFDM_DATA_SUBCARRIERS
Definition: Ieee80211OfdmDefs.h:15
#define SIGNAL_RATE_FIELD_END
Definition: Ieee80211OfdmDefs.h:19
std::string printFieldToString(const IPrintableObject *object, int level, int evFlags=0)
Definition: IPrintableObject.h:98
#define EV_FIELD(...)
Definition: INETDefs.h:112
const AdditiveScrambling * getScrambling() const
Definition: Ieee80211OfdmCode.h:33
#define SIGNAL_RATE_FIELD_START
Definition: Ieee80211OfdmDefs.h:18
virtual std::pair< BitVector, bool > decode(const BitVector &encodedBits) const =0
#define NaN
Definition: INETMath.h:91
@ PRINT_LEVEL_TRACE
Definition: IPrintableObject.h:22
const Ieee80211OfdmInterleaving * getInterleaving() const
Definition: Ieee80211OfdmCode.h:32
virtual const IInterleaving * getInterleaving() const =0
virtual BitVector descramble(const BitVector &bits) const =0
#define SIGNAL_LENGTH_FIELD_START
Definition: Ieee80211OfdmDefs.h:20
int evFlags
Definition: INETDefs.cc:12
const IScrambler * descrambler
Definition: Ieee80211OfdmDecoder.h:29
const IFecCoder * fecDecoder
Definition: Ieee80211OfdmDecoder.h:30
virtual const IForwardErrorCorrection * getForwardErrorCorrection() const =0
const Ieee80211OfdmCode * code
Definition: Ieee80211OfdmDecoder.h:28
virtual const IScrambling * getScrambling() const =0
const ConvolutionalCode * getConvolutionalCode() const
Definition: Ieee80211OfdmCode.h:31
const IInterleaver * deinterleaver
Definition: Ieee80211OfdmDecoder.h:31