22 #ifndef UAN_PHY_DUAL_H
23 #define UAN_PHY_DUAL_H
25 #include "ns3/uan-phy.h"
137 virtual void Clear (
void);
Simulation virtual time values and global simulation resolution.
Forward calls to a chain of Callback.
a unique identifier for an interface.
Container for UanTxModes.
The power delay profile returned by propagation models.
Default SINR model for UanPhyDual.
UanPhyCalcSinrDual()
Constructor.
static TypeId GetTypeId(void)
Register this type.
virtual ~UanPhyCalcSinrDual()
Destructor.
virtual double CalcSinrDb(Ptr< Packet > pkt, Time arrTime, double rxPowerDb, double ambNoiseDb, UanTxMode mode, UanPdp pdp, const UanTransducer::ArrivalList &arrivalList) const
Calculate the SINR value for a packet.
Class used for calculating SINR of packet in UanPhy.
virtual void DoDispose()
Destructor implementation.
RxOkCallback m_recOkCb
Callback when packet received without errors.
virtual void SetTxPowerDb(double txpwr)
Set the transmit power.
Ptr< UanPhy > m_phy1
First Phy layer.
Ptr< UanPhyPer > GetPerModelPhy2(void) const
Get the error probability model.
void RxOkFromSubPhy(Ptr< Packet > pkt, double sinr, UanTxMode mode)
Handle callback and logger for packets received without error.
virtual Ptr< UanTransducer > GetTransducer(void)
Get the attached transducer.
virtual void SetEnergyModelCallback(DeviceEnergyModel::ChangeStateCallback callback)
Set the DeviceEnergyModel callback for UanPhy device.
virtual void SetSleepMode([[maybe_unused]] bool sleep)
virtual Ptr< UanChannel > GetChannel(void) const
Get the attached channel.
virtual uint32_t GetNModes(void)
Get the number of transmission modes supported by this Phy.
virtual void SetChannel(Ptr< UanChannel > channel)
Attach to a channel.
virtual void SendPacket(Ptr< Packet > pkt, uint32_t modeNum)
Send a packet using a specific transmission mode.
ns3::TracedCallback< Ptr< const Packet >, double, UanTxMode > m_rxErrLogger
A packet was received unsuccessfully.
virtual void SetReceiveErrorCallback(RxErrCallback cb)
Set the callback to be used when a packet is received with errors.
void SetPerModelPhy1(Ptr< UanPhyPer > per)
Set the error probability model.
UanModesList GetModesPhy2(void) const
Get the list of available modes.
Ptr< UanPhy > m_phy2
Second Phy layer.
virtual void SetReceiveOkCallback(RxOkCallback cb)
Set the callback to be used when a packet is received without error.
Ptr< Packet > GetPhy2PacketRx(void) const
Get the packet currently being received.
virtual double GetCcaThresholdDb(void)
Get the CCA threshold signal strength required to detect channel busy.
virtual void EnergyDepletionHandler(void)
Handle the energy depletion event.
void SetTxPowerDbPhy1(double txpwr)
Set the transmit power.
Ptr< Packet > GetPhy1PacketRx(void) const
Get the packet currently being received.
void SetModesPhy2(UanModesList modes)
Set the available modes.
virtual void Clear(void)
Clear all pointer references.
ns3::TracedCallback< Ptr< const Packet >, double, UanTxMode > m_txLogger
A packet was sent from this Phy.
Ptr< UanPhyCalcSinr > GetSinrModelPhy2(void) const
Get the SINR calculator.
virtual void NotifyTransStartTx(Ptr< Packet > packet, double txPowerDb, UanTxMode txMode)
Called when a transmission is beginning on the attached transducer.
virtual void SetTransducer(Ptr< UanTransducer > trans)
Attach a transducer to this Phy.
double GetCcaThresholdPhy2(void) const
Get the CCA threshold signal strength required to detect channel busy.
double GetTxPowerDbPhy2(void) const
Get the current transmit power, in dB.
double GetCcaThresholdPhy1(void) const
Get the CCA threshold signal strength required to detect channel busy.
Ptr< Packet > GetPacketRx(void) const
Get the packet currently being received.
virtual ~UanPhyDual()
Dummy destructor.
virtual void EnergyRechargeHandler(void)
Handle the energy recharge event.
Ptr< UanPhyPer > GetPerModelPhy1(void) const
Get the error probability model.
virtual double GetRxThresholdDb(void)
Get the minimum received signal strength required to receive a packet without errors.
void SetPerModelPhy2(Ptr< UanPhyPer > per)
Set the error probability model.
static TypeId GetTypeId()
Register this type.
void SetSinrModelPhy2(Ptr< UanPhyCalcSinr > calcSinr)
Set the SINR calculator.
virtual bool IsStateIdle(void)
virtual void SetDevice(Ptr< UanNetDevice > device)
Set the device hosting this Phy.
virtual UanTxMode GetMode(uint32_t n)
Get a specific transmission mode.
void SetModesPhy1(UanModesList modes)
Set the available modes.
virtual void StartRxPacket(Ptr< Packet > pkt, double rxPowerDb, UanTxMode txMode, UanPdp pdp)
Packet arriving from channel: i.e.
virtual bool IsStateSleep(void)
virtual bool IsStateCcaBusy(void)
virtual void SetMac(Ptr< UanMac > mac)
Set the MAC forwarding messages to this Phy.
UanModesList GetModesPhy1(void) const
Get the list of available modes.
virtual void RegisterListener(UanPhyListener *listener)
Register a UanPhyListener to be notified of common UanPhy events.
void RxErrFromSubPhy(Ptr< Packet > pkt, double sinr)
Handle callback and logger for packets received with error.
virtual bool IsStateTx(void)
Ptr< UanPhyCalcSinr > GetSinrModelPhy1(void) const
Get the SINR calculator.
virtual void SetRxThresholdDb(double thresh)
Set the minimum SINR threshold to receive a packet without errors.
RxErrCallback m_recErrCb
Callback when packet received with errors.
virtual void SetCcaThresholdDb(double thresh)
Set the threshold for detecting channel busy.
void SetCcaThresholdPhy1(double thresh)
Set the threshold for detecting channel busy.
int64_t AssignStreams(int64_t stream)
Assign a fixed random variable stream number to the random variables used by this model.
ns3::TracedCallback< Ptr< const Packet >, double, UanTxMode > m_rxOkLogger
A packet was received successfully.
void SetSinrModelPhy1(Ptr< UanPhyCalcSinr > calcSinr)
Set the SINR calculator.
void SetTxPowerDbPhy2(double txpwr)
Set the transmit power.
virtual double GetTxPowerDb(void)
Get the current transmit power, in dB.
virtual Ptr< UanNetDevice > GetDevice(void) const
Get the device hosting this Phy.
double GetTxPowerDbPhy1(void) const
Get the current transmit power, in dB.
virtual bool IsStateRx(void)
virtual void NotifyIntChange(void)
Called when there has been a change in the amount of interference this node is experiencing from othe...
void SetCcaThresholdPhy2(double thresh)
Set the threshold for detecting channel busy.
virtual bool IsStateBusy(void)
Base class for UAN Phy models.
Interface for PHY event listener.
std::list< UanPacketArrival > ArrivalList
List of arriving packets overlapping in time.
Abstraction of packet modulation information.
Every class exported by the ns3 library is enclosed in the ns3 namespace.