21 #ifndef UAN_TRANSDUCER_H 22 #define UAN_TRANSDUCER_H 24 #include "ns3/object.h" 25 #include "ns3/packet.h" 27 #include "ns3/uan-prop-model.h" 171 virtual bool IsRx (
void)
const = 0;
177 virtual bool IsTx (
void)
const = 0;
251 virtual void Clear (
void) = 0;
double m_rxPowerDb
The received power, in dB.
Simulation virtual time values and global simulation resolution.
virtual const UanPhyList & GetPhyList(void) const =0
Get the list of physical layer above this transducer.
Time GetArrivalTime(void) const
Get the packet arrival time.
double GetRxPowerDb(void) const
Get the received signal strength.
virtual bool IsRx(void) const =0
Is the state receiving (or available for reception)?
std::list< Ptr< UanPhy > > UanPhyList
List of UanPhy objects.
virtual const ArrivalList & GetArrivalList(void) const =0
Get the list of overlapped (in time) packets at this transducer.
UanPacketArrival(Ptr< Packet > packet, double rxPowerDb, UanTxMode txMode, UanPdp pdp, Time arrTime)
Constructor.
virtual void Receive(Ptr< Packet > packet, double rxPowerDb, UanTxMode txMode, UanPdp pdp)=0
Notify this object that a new packet has arrived at this nodes location.
~UanPacketArrival()
Destructor.
UanPdp GetPdp(void) const
Get the propagation delay profile.
virtual void AddPhy(Ptr< UanPhy > phy)=0
Attach a physical network layer above this transducer.
virtual State GetState(void) const =0
Get the transducer state.
UanTxMode m_txMode
The transmission mode.
virtual void SetChannel(Ptr< UanChannel > chan)=0
Attach this transducer to a channel.
virtual void Clear(void)=0
Clears all pointer references.
The power delay profile returned by propagation models.
Abstraction of packet modulation information.
UanPdp m_pdp
The propagation delay profile.
Virtual base for Transducer objects.
std::list< UanPacketArrival > ArrivalList
List of arriving packets overlapping in time.
Ptr< Packet > GetPacket(void) const
Get the arriving packet.
UanPacketArrival()
Default constructor.
virtual Ptr< UanChannel > GetChannel(void) const =0
Get the attached channel.
virtual void SetRxGainDb(double gainDb)=0
Set the receiver gain.
Time m_arrTime
The arrival time.
Ptr< Packet > m_packet
The arrived packet.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
virtual bool IsTx(void) const =0
Is the state transmitting?
virtual double ApplyRxGainDb(double rxPowerDb, UanTxMode mode)=0
Apply receiver gain in dB to the received power.
virtual double GetRxGainDb(void)=0
Get the receiver gain added to signal at receiver in dB.
virtual void Transmit(Ptr< UanPhy > src, Ptr< Packet > packet, double txPowerDb, UanTxMode txMode)=0
Transmit a packet from this transducer.
const UanTxMode & GetTxMode(void) const
Get the transmission mode of the packet.
A base class which provides memory management and object aggregation.
a unique identifier for an interface.
Class consisting of packet arrival information (Time, RxPower, mode, PDP).
static TypeId GetTypeId(void)
Register this type.