INET Framework for OMNeT++/OMNEST
|
This interface represents a physical device (a part of the radio) which converts electric signals into packets. More...
#include <IReceiver.h>
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 IListening * | createListening (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 IListeningDecision * | computeListeningDecision (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 IReceptionDecision * | computeReceptionDecision (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 IReceptionResult * | computeReceptionResult (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 ReceptionIndication * | computeReceptionIndication (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 } |
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.
|
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().
|
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().
|
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.
|
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().
|
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().
|
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().
|
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().
|
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().
|
pure virtual |
Returns a description of how the receiver is listening on the medium.
Implemented in inet::physicallayer::Ieee80211LayeredOFDMReceiver, inet::physicallayer::APSKLayeredReceiver, inet::physicallayer::IdealReceiver, inet::physicallayer::Ieee802154UWBIRReceiver, and inet::physicallayer::NarrowbandReceiverBase.
Referenced by inet::physicallayer::RadioMedium::addRadio(), inet::physicallayer::Radio::isListeningPossible(), and inet::physicallayer::RadioMedium::receiveSignal().
|
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.
|
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.