|
INET Framework for OMNeT++/OMNEST
|
#include <ApskDecoder.h>
◆ ApskDecoder()
| inet::physicallayer::ApskDecoder::ApskDecoder |
( |
| ) |
|
◆ ~ApskDecoder()
| inet::physicallayer::ApskDecoder::~ApskDecoder |
( |
| ) |
|
|
virtual |
◆ decode()
Implements inet::physicallayer::IDecoder.
61 bool hasBitError =
false;
62 BitVector *decodedBits =
new BitVector(*bitModel->getBits());
66 std::pair<BitVector, bool> fecDecodedDataField =
fecDecoder->
decode(*decodedBits);
67 hasBitError = !fecDecodedDataField.second;
68 *decodedBits = fecDecodedDataField.first;
73 if (decodedBits->getSize() % 8 == 0) {
74 const auto& bytesChunk = makeShared<BytesChunk>(decodedBits->getBytes());
75 packet =
new Packet(
nullptr, bytesChunk);
78 std::vector<bool> bits;
79 for (uint32_t i = 0; i < decodedBits->getSize(); i++)
80 bits.push_back(decodedBits->getBit(i));
81 const auto& bitsChunk = makeShared<BitsChunk>(bits);
82 packet =
new Packet(
nullptr, bitsChunk);
85 packet->setBitError(hasBitError);
86 return new ReceptionPacketModel(packet,
bps(
NaN),
NaN);
◆ getCode()
| virtual const ApskCode* inet::physicallayer::ApskDecoder::getCode |
( |
| ) |
const |
|
inlinevirtual |
◆ initialize()
| void inet::physicallayer::ApskDecoder::initialize |
( |
int |
stage | ) |
|
|
overrideprotectedvirtual |
35 descrambler =
dynamic_cast<const IScrambler *
>(getSubmodule(
"descrambler"));
36 fecDecoder =
dynamic_cast<const IFecCoder *
>(getSubmodule(
"fecDecoder"));
37 deinterleaver =
dynamic_cast<const IInterleaver *
>(getSubmodule(
"deinterleaver"));
43 code =
new ApskCode(forwardErrorCorrection, interleaving, scrambling);
◆ numInitStages()
| virtual int inet::physicallayer::ApskDecoder::numInitStages |
( |
| ) |
const |
|
inlineoverrideprotectedvirtual |
◆ printToStream()
| std::ostream & inet::physicallayer::ApskDecoder::printToStream |
( |
std::ostream & |
stream, |
|
|
int |
level, |
|
|
int |
evFlags = 0 |
|
) |
| const |
|
overridevirtual |
Prints this object to the provided output stream.
Reimplemented from inet::IPrintableObject.
49 stream <<
"ApskDecoder";
◆ code
| const ApskCode* inet::physicallayer::ApskDecoder::code |
|
protected |
◆ deinterleaver
| const IInterleaver* inet::physicallayer::ApskDecoder::deinterleaver |
|
protected |
◆ descrambler
| const IScrambler* inet::physicallayer::ApskDecoder::descrambler |
|
protected |
◆ fecDecoder
| const IFecCoder* inet::physicallayer::ApskDecoder::fecDecoder |
|
protected |
The documentation for this class was generated from the following files:
virtual BitVector deinterleave(const BitVector &bits) const =0
@ PRINT_LEVEL_DETAIL
Definition: IPrintableObject.h:24
compose< b, pow< s, -1 > > bps
Definition: Units.h:1169
std::string printFieldToString(const IPrintableObject *object, int level, int evFlags=0)
Definition: IPrintableObject.h:98
#define EV_FIELD(...)
Definition: INETDefs.h:112
const IInterleaver * deinterleaver
Definition: ApskDecoder.h:24
virtual std::pair< BitVector, bool > decode(const BitVector &encodedBits) const =0
#define NaN
Definition: INETMath.h:91
INET_API InitStage INITSTAGE_LOCAL
Initialization of local state that don't use or affect other modules includes:
const IFecCoder * fecDecoder
Definition: ApskDecoder.h:23
@ PRINT_LEVEL_TRACE
Definition: IPrintableObject.h:22
const ApskCode * code
Definition: ApskDecoder.h:21
INET_API InitStage INITSTAGE_PHYSICAL_LAYER
Initialization of physical layer protocols includes:
#define NUM_INIT_STAGES
Definition: InitStageRegistry.h:73
virtual const IInterleaving * getInterleaving() const =0
virtual BitVector descramble(const BitVector &bits) const =0
const IScrambler * descrambler
Definition: ApskDecoder.h:22
int evFlags
Definition: INETDefs.cc:12
virtual const IForwardErrorCorrection * getForwardErrorCorrection() const =0
virtual const IScrambling * getScrambling() const =0