Returns a transmission which describes the radio signal corresponding to the provided mac frame.
This function never returns nullptr.
325 TransmissionRequest *transmissionRequest =
dynamic_cast<TransmissionRequest *
>(macFrame->getControlInfo());
326 Ieee80211TransmissionRequest *ieee80211TransmissionRequest =
dynamic_cast<Ieee80211TransmissionRequest *
>(transmissionRequest);
331 const ITransmissionBitModel *bitModel =
nullptr;
332 const ITransmissionBitModel *signalFieldBitModel =
nullptr;
333 const ITransmissionBitModel *dataFieldBitModel =
nullptr;
334 const ITransmissionSymbolModel *symbolModel =
nullptr;
335 const ITransmissionSymbolModel *signalFieldSymbolModel =
nullptr;
336 const ITransmissionSymbolModel *dataFieldSymbolModel =
nullptr;
337 const ITransmissionSampleModel *sampleModel =
nullptr;
338 const ITransmissionAnalogModel *analogModel =
nullptr;
342 bitModel =
createBitModel(signalFieldBitModel, dataFieldBitModel, packetModel);
345 analogModel =
createAnalogModel(packetModel, bitModel, symbolModel, sampleModel);
346 IMobility *mobility = transmitter->getAntenna()->getMobility();
348 const simtime_t endTime = startTime + analogModel->getDuration();
349 const Coord startPosition = mobility->getCurrentPosition();
350 const Coord endPosition = mobility->getCurrentPosition();
351 const EulerAngles startOrientation = mobility->getCurrentAngularPosition();
352 const EulerAngles endOrientation = mobility->getCurrentAngularPosition();
353 return new LayeredTransmission(packetModel, bitModel, symbolModel, sampleModel, analogModel, transmitter, macFrame, startTime, endTime, -1, -1, -1, startPosition, endPosition, startOrientation, endOrientation);
const ITransmissionSampleModel * createSampleModel(const ITransmissionSymbolModel *symbolModel) const
Definition: Ieee80211LayeredOFDMTransmitter.cc:279
const Ieee80211OFDMMode * computeMode(Hz bandwidth) const
Definition: Ieee80211LayeredOFDMTransmitter.cc:312
const IModulator * dataModulator
Definition: Ieee80211LayeredOFDMTransmitter.h:52
static const Ieee80211OFDMMode & getCompliantMode(unsigned int signalRateField, Hz channelSpacing)
Definition: Ieee80211OFDMMode.cc:198
const IModulator * signalModulator
Definition: Ieee80211LayeredOFDMTransmitter.h:51
const IEncoder * dataEncoder
Definition: Ieee80211LayeredOFDMTransmitter.h:50
const IEncoder * signalEncoder
Definition: Ieee80211LayeredOFDMTransmitter.h:49
const ITransmissionBitModel * createBitModel(const ITransmissionBitModel *signalFieldBitModel, const ITransmissionBitModel *dataFieldBitModel, const ITransmissionPacketModel *packetModel) const
Definition: Ieee80211LayeredOFDMTransmitter.cc:243
bool isCompliant
Definition: Ieee80211LayeredOFDMTransmitter.h:55
const ITransmissionAnalogModel * createAnalogModel(const ITransmissionPacketModel *packetModel, const ITransmissionBitModel *bitModel, const ITransmissionSymbolModel *symbolModel, const ITransmissionSampleModel *sampleModel) const
Definition: Ieee80211LayeredOFDMTransmitter.cc:298
const Ieee80211OFDMMode * mode
Definition: Ieee80211LayeredOFDMTransmitter.h:48
const ITransmissionSymbolModel * createSymbolModel(const ITransmissionSymbolModel *signalFieldSymbolModel, const ITransmissionSymbolModel *dataFieldSymbolModel) const
Definition: Ieee80211LayeredOFDMTransmitter.cc:220
void encodeAndModulate(const ITransmissionPacketModel *packetModel, const ITransmissionBitModel *&fieldBitModel, const ITransmissionSymbolModel *&fieldSymbolModel, const IEncoder *encoder, const IModulator *modulator, bool isSignalField) const
Definition: Ieee80211LayeredOFDMTransmitter.cc:184
mega< Hz >::type MHz
Definition: Units.h:906
Hz bandwidth
Definition: Ieee80211LayeredOFDMTransmitter.h:57
virtual const ITransmissionPacketModel * createPacketModel(const cPacket *macFrame) const
Definition: Ieee80211LayeredOFDMTransmitter.cc:111