Returns the complete result of the reception process for the provided reception.
This function may be called before the reception actually starts at the receiver, thus it must be purely functional and support optimistic parallel computation.
370 const LayeredTransmission *transmission =
dynamic_cast<const LayeredTransmission *
>(reception->getTransmission());
371 const IReceptionAnalogModel *analogModel =
createAnalogModel(transmission, snir);
372 const IReceptionSampleModel *sampleModel =
createSampleModel(transmission, snir);
373 const IReceptionSymbolModel *symbolModel =
createSymbolModel(transmission, snir);
374 const IReceptionBitModel *bitModel =
createBitModel(transmission, snir);
375 const IReceptionPacketModel *packetModel =
createPacketModel(transmission, snir);
382 uint8_t rate =
getRate(signalFieldPacketModel->getSerializedPacket());
388 const IReceptionBitModel *dataFieldBitModel =
createDataFieldBitModel(bitModel, dataFieldSymbolModel, signalFieldPacketModel, signalFieldBitModel);
389 const IReceptionPacketModel *dataFieldPacketModel =
createDataFieldPacketModel(signalFieldBitModel, dataFieldBitModel, signalFieldPacketModel);
400 delete signalFieldSymbolModel;
401 delete dataFieldSymbolModel;
402 delete signalFieldBitModel;
403 delete dataFieldBitModel;
404 delete signalFieldPacketModel;
405 delete dataFieldPacketModel;
407 ReceptionIndication *receptionIndication =
new ReceptionIndication();
408 receptionIndication->setMinSNIR(snir->getMin());
409 receptionIndication->setPacketErrorRate(packetModel->getPER());
411 return new LayeredReceptionResult(reception,
new std::vector<const IReceptionDecision *>(), receptionIndication, packetModel, bitModel, symbolModel, sampleModel, analogModel);
const IReceptionPacketModel * createCompletePacketModel(const IReceptionPacketModel *signalFieldPacketModel, const IReceptionPacketModel *dataFieldPacketModel) const
Definition: Ieee80211LayeredOFDMReceiver.cc:339
const IReceptionPacketModel * createPacketModel(const LayeredTransmission *transmission, const ISNIR *snir) const
Definition: Ieee80211LayeredOFDMReceiver.cc:127
const IReceptionSymbolModel * createSymbolModel(const LayeredTransmission *transmission, const ISNIR *snir) const
Definition: Ieee80211LayeredOFDMReceiver.cc:134
const IReceptionSampleModel * createSampleModel(const LayeredTransmission *transmission, const ISNIR *snir) const
Definition: Ieee80211LayeredOFDMReceiver.cc:113
bool isCompliant
Definition: Ieee80211LayeredOFDMReceiver.h:65
const Ieee80211OFDMMode * mode
Definition: Ieee80211LayeredOFDMReceiver.h:50
Hz channelSpacing
Definition: Ieee80211LayeredOFDMReceiver.h:63
static const Ieee80211OFDMMode & getCompliantMode(unsigned int signalRateField, Hz channelSpacing)
Definition: Ieee80211OFDMMode.cc:198
const IReceptionAnalogModel * createAnalogModel(const LayeredTransmission *transmission, const ISNIR *snir) const
Definition: Ieee80211LayeredOFDMReceiver.cc:85
uint8_t getRate(const BitVector *serializedPacket) const
Definition: Ieee80211LayeredOFDMReceiver.cc:207
const IReceptionPacketModel * createDataFieldPacketModel(const IReceptionBitModel *signalFieldBitModel, const IReceptionBitModel *dataFieldBitModel, const IReceptionPacketModel *signalFieldPacketModel) const
Definition: Ieee80211LayeredOFDMReceiver.cc:161
const IReceptionSymbolModel * createCompleteSymbolModel(const IReceptionSymbolModel *signalFieldSymbolModel, const IReceptionSymbolModel *dataFieldSymbolModel) const
Definition: Ieee80211LayeredOFDMReceiver.cc:326
const IReceptionBitModel * createSignalFieldBitModel(const IReceptionBitModel *bitModel, const IReceptionSymbolModel *symbolModel) const
Definition: Ieee80211LayeredOFDMReceiver.cc:248
const IReceptionBitModel * createBitModel(const LayeredTransmission *transmission, const ISNIR *snir) const
Definition: Ieee80211LayeredOFDMReceiver.cc:120
const IReceptionBitModel * createCompleteBitModel(const IReceptionBitModel *signalFieldBitModel, const IReceptionBitModel *dataFieldBitModel) const
Definition: Ieee80211LayeredOFDMReceiver.cc:149
const IReceptionBitModel * createDataFieldBitModel(const IReceptionBitModel *bitModel, const IReceptionSymbolModel *symbolModel, const IReceptionPacketModel *signalFieldPacketModel, const IReceptionBitModel *signalFieldBitModel) const
Definition: Ieee80211LayeredOFDMReceiver.cc:279
const Ieee80211OFDMMode * computeMode(Hz bandwidth) const
Definition: Ieee80211LayeredOFDMReceiver.cc:357
const IReceptionSymbolModel * createSignalFieldSymbolModel(const IReceptionSymbolModel *symbolModel) const
Definition: Ieee80211LayeredOFDMReceiver.cc:215
const IReceptionSymbolModel * createDataFieldSymbolModel(const IReceptionSymbolModel *symbolModel) const
Definition: Ieee80211LayeredOFDMReceiver.cc:230
const IReceptionPacketModel * createSignalFieldPacketModel(const IReceptionBitModel *signalFieldBitModel) const
Definition: Ieee80211LayeredOFDMReceiver.cc:176
Hz bandwidth
Definition: Ieee80211LayeredOFDMReceiver.h:62