INET Framework for OMNeT++/OMNEST
inet::physicallayer::IReceiver Class Referenceabstract

This interface represents a physical device (a part of the radio) which converts electric signals into packets. More...

#include <IReceiver.h>

Inheritance diagram for inet::physicallayer::IReceiver:
inet::physicallayer::IPrintableObject inet::physicallayer::ReceiverBase inet::physicallayer::IdealReceiver inet::physicallayer::Ieee802154UWBIRReceiver inet::physicallayer::SNIRReceiverBase inet::physicallayer::Ieee80211IdealReceiver inet::physicallayer::APSKLayeredReceiver inet::physicallayer::Ieee80211LayeredOFDMReceiver inet::physicallayer::NarrowbandReceiverBase inet::physicallayer::FlatReceiverBase inet::physicallayer::APSKDimensionalReceiver inet::physicallayer::APSKScalarReceiver inet::physicallayer::Ieee80211ReceiverBase inet::physicallayer::Ieee802154NarrowbandScalarReceiver inet::physicallayer::Ieee80211DimensionalReceiver inet::physicallayer::Ieee80211ScalarReceiver

Public Member Functions

virtual W getMinInterferencePower () const =0
 Returns the minimum interference power below which receptions are to be ignored while computing the interference. More...
 
virtual W getMinReceptionPower () const =0
 Returns the minimum reception power below which successful reception is definitely not possible. More...
 
virtual const IListeningcreateListening (const IRadio *radio, const simtime_t startTime, const simtime_t endTime, const Coord startPosition, const Coord endPosition) const =0
 Returns a description of how the receiver is listening on the medium. More...
 
virtual const IListeningDecisioncomputeListeningDecision (const IListening *listening, const IInterference *interference) const =0
 Returns the result of the listening process specifying the reception state of the receiver. More...
 
virtual bool computeIsReceptionPossible (const IListening *listening, const ITransmission *transmission) const =0
 Returns whether the reception of the provided transmission is possible or not independently of the reception conditions. More...
 
virtual bool computeIsReceptionPossible (const IListening *listening, const IReception *reception, IRadioSignal::SignalPart part) const =0
 Returns whether the reception of the provided part is possible or not. More...
 
virtual bool computeIsReceptionAttempted (const IListening *listening, const IReception *reception, IRadioSignal::SignalPart part, const IInterference *interference) const =0
 Returns whether the reception of the provided part is actually attempted or ignored by the receiver. More...
 
virtual bool computeIsReceptionSuccessful (const IListening *listening, const IReception *reception, IRadioSignal::SignalPart part, const IInterference *interference, const ISNIR *snir) const =0
 Returns whether the reception of the provided part is actually successful or failed by the receiver. More...
 
virtual const IReceptionDecisioncomputeReceptionDecision (const IListening *listening, const IReception *reception, IRadioSignal::SignalPart part, const IInterference *interference, const ISNIR *snir) const =0
 Returns the reception decision for the transmission part that specifies whether the reception is possible, attempted, and successful. More...
 
virtual const IReceptionResultcomputeReceptionResult (const IListening *listening, const IReception *reception, const IInterference *interference, const ISNIR *snir) const =0
 Returns the complete result of the reception process for the provided reception. More...
 
virtual const ReceptionIndicationcomputeReceptionIndication (const ISNIR *snir) const =0
 Returns the reception indication (control info) that is sent up to the MAC. More...
 
- Public Member Functions inherited from inet::physicallayer::IPrintableObject
virtual ~IPrintableObject ()
 
virtual std::ostream & printToStream (std::ostream &stream, int level) const
 Prints this object to the provided output stream. More...
 
virtual std::string getInfoStringRepresentation () const
 
virtual std::string getDetailStringRepresentation () const
 
virtual std::string getDebugStringRepresentation () const
 
virtual std::string getTraceStringRepresentation () const
 
virtual std::string getCompleteStringRepresentation () const
 

Additional Inherited Members

- Public Types inherited from inet::physicallayer::IPrintableObject
enum  PrintLevel {
  PRINT_LEVEL_TRACE, PRINT_LEVEL_DEBUG, PRINT_LEVEL_DETAIL, PRINT_LEVEL_INFO,
  PRINT_LEVEL_COMPLETE = INT_MIN
}
 

Detailed Description

This interface represents a physical device (a part of the radio) which converts electric signals into packets.

The receiver interface supports optimistic parallel computation of reception results. For this reason some functions are marked to be purely functional. Unfortunately this cannot be enforced by the compiler in C++. We really need to be very careful regarding this, because it's pretty easy to break the purely functional API just be reading a non-const member variable. As a rule of thumb these functions must be qualified with const and all of their parameters must also be qualified with const. Moreover they are forbidden to access any state that can change over time to avoid non-deterministic behavior. These functions may be called from background threads running parallel with the main simulation thread. They may also be called several times due to cache invalidation before the actual result is needed. This process is controlled by the medium.

Member Function Documentation

virtual bool inet::physicallayer::IReceiver::computeIsReceptionAttempted ( const IListening listening,
const IReception reception,
IRadioSignal::SignalPart  part,
const IInterference interference 
) const
pure virtual

Returns whether the reception of the provided part is actually attempted or ignored by the receiver.

For example, it might check that the radio is not already receiving another signal.

This function may be called before the reception actually starts at the receiver, thus it must be purely functional and support optimistic parallel computation.

Implemented in inet::physicallayer::Ieee802154UWBIRReceiver, and inet::physicallayer::ReceiverBase.

Referenced by inet::physicallayer::RadioMedium::isReceptionAttempted(), and inet::physicallayer::RadioMedium::isReceptionPossible().

virtual bool inet::physicallayer::IReceiver::computeIsReceptionPossible ( const IListening listening,
const ITransmission transmission 
) const
pure virtual

Returns whether the reception of the provided transmission is possible or not independently of the reception conditions.

For example, it might check if the carrier frequency and the modulation of the transmission matches how the receiver is listening on the medium.

This function may be called before the reception actually starts at the receiver, thus it must be purely functional and support optimistic parallel computation.

Implemented in inet::physicallayer::NarrowbandReceiverBase, inet::physicallayer::ReceiverBase, inet::physicallayer::Ieee80211DimensionalReceiver, and inet::physicallayer::Ieee80211ScalarReceiver.

Referenced by inet::NetworkConfiguratorBase::computeWirelessLinkWeight(), and inet::physicallayer::RadioMedium::isPotentialReceiver().

virtual bool inet::physicallayer::IReceiver::computeIsReceptionPossible ( const IListening listening,
const IReception reception,
IRadioSignal::SignalPart  part 
) const
pure virtual

Returns whether the reception of the provided part is possible or not.

For example, it might check if the reception power is above sensitivity.

This function may be called before the reception actually starts at the receiver, thus it must be purely functional and support optimistic parallel computation.

Implemented in inet::physicallayer::Ieee80211LayeredOFDMReceiver, inet::physicallayer::APSKLayeredReceiver, inet::physicallayer::NarrowbandReceiverBase, inet::physicallayer::IdealReceiver, inet::physicallayer::ReceiverBase, and inet::physicallayer::FlatReceiverBase.

virtual bool inet::physicallayer::IReceiver::computeIsReceptionSuccessful ( const IListening listening,
const IReception reception,
IRadioSignal::SignalPart  part,
const IInterference interference,
const ISNIR snir 
) const
pure virtual

Returns whether the reception of the provided part is actually successful or failed by the receiver.

For example, it might compute the error rate and draw a random number to make the decision.

This function may be called before the reception actually starts at the receiver, thus it must be purely functional and support optimistic parallel computation.

Implemented in inet::physicallayer::SNIRReceiverBase, inet::physicallayer::Ieee802154UWBIRReceiver, inet::physicallayer::IdealReceiver, and inet::physicallayer::FlatReceiverBase.

Referenced by inet::physicallayer::ReceiverBase::computeReceptionDecision(), and inet::physicallayer::RadioMedium::isReceptionSuccessful().

virtual const IListeningDecision* inet::physicallayer::IReceiver::computeListeningDecision ( const IListening listening,
const IInterference interference 
) const
pure virtual

Returns the result of the listening process specifying the reception state of the receiver.

This function must be purely functional and support optimistic parallel computation.

Implemented in inet::physicallayer::Ieee80211LayeredOFDMReceiver, inet::physicallayer::APSKLayeredReceiver, inet::physicallayer::FlatReceiverBase, inet::physicallayer::IdealReceiver, and inet::physicallayer::Ieee802154UWBIRReceiver.

Referenced by inet::physicallayer::RadioMedium::computeListeningDecision().

virtual const IReceptionDecision* inet::physicallayer::IReceiver::computeReceptionDecision ( const IListening listening,
const IReception reception,
IRadioSignal::SignalPart  part,
const IInterference interference,
const ISNIR snir 
) const
pure virtual

Returns the reception decision for the transmission part that specifies whether the reception is possible, attempted, and successful.

This function may be called before the reception actually starts at the receiver, thus it must be purely functional and support optimistic parallel computation.

Implemented in inet::physicallayer::Ieee802154UWBIRReceiver, inet::physicallayer::NarrowbandReceiverBase, and inet::physicallayer::ReceiverBase.

Referenced by inet::physicallayer::RadioMedium::computeReceptionDecision().

virtual const ReceptionIndication* inet::physicallayer::IReceiver::computeReceptionIndication ( const ISNIR snir) const
pure virtual

Returns the reception indication (control info) that is sent up to the MAC.

This function may be called before the reception actually starts at the receiver, thus it must be purely functional and support optimistic parallel computation.

Implemented in inet::physicallayer::ReceiverBase, inet::physicallayer::Ieee802154UWBIRReceiver, inet::physicallayer::SNIRReceiverBase, inet::physicallayer::FlatReceiverBase, inet::physicallayer::Ieee80211ReceiverBase, inet::physicallayer::IdealReceiver, and inet::physicallayer::Ieee80211IdealReceiver.

Referenced by inet::NetworkConfiguratorBase::computeWirelessLinkWeight().

virtual const IReceptionResult* inet::physicallayer::IReceiver::computeReceptionResult ( const IListening listening,
const IReception reception,
const IInterference interference,
const ISNIR snir 
) const
pure virtual

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.

Implemented in inet::physicallayer::Ieee80211LayeredOFDMReceiver, inet::physicallayer::APSKLayeredReceiver, and inet::physicallayer::ReceiverBase.

Referenced by inet::physicallayer::RadioMedium::computeReceptionResult().

virtual const IListening* inet::physicallayer::IReceiver::createListening ( const IRadio radio,
const simtime_t  startTime,
const simtime_t  endTime,
const Coord  startPosition,
const Coord  endPosition 
) const
pure virtual
virtual W inet::physicallayer::IReceiver::getMinInterferencePower ( ) const
pure virtual

Returns the minimum interference power below which receptions are to be ignored while computing the interference.

Returns a value in the range [0, +infinity) or NaN if unspecified.

Implemented in inet::physicallayer::Ieee802154NarrowbandScalarReceiver, and inet::physicallayer::ReceiverBase.

virtual W inet::physicallayer::IReceiver::getMinReceptionPower ( ) const
pure virtual

Returns the minimum reception power below which successful reception is definitely not possible.

Returns a value in the range [0, +infinity) or NaN if unspecified.

Implemented in inet::physicallayer::FlatReceiverBase, and inet::physicallayer::ReceiverBase.


The documentation for this class was generated from the following file: