#include <plc-phy.h>
Public Member Functions | |
bool | StartTx (Ptr< Packet > p) |
void | StartRx (Ptr< const Packet > p, uint32_t txId, Ptr< SpectrumValue > &rxPsd, Time duration, Ptr< const PLC_TrxMetaInfo > metaInfo) |
void | RxPsdChanged (uint32_t txId, Ptr< SpectrumValue > newRxPsd) |
Ptr< PLC_Node > | GetNode (void) |
void | SetDataFrameSentCallback (PLC_PhyDataFrameSentCallback c) |
void | SetReceiveSuccessCallback (PhyRxEndOkCallback c) |
void | SetReceiveErrorCallback (PhyRxEndErrorCallback c) |
PLC_ChannelTransferImpl * | GetChannelTransferImpl (Ptr< PLC_Phy > rxPhy) |
Ptr< PLC_TransferBase > | GetChannelTransferVector (Ptr< PLC_Phy > rxPhy) |
void | NotifyDataFrameSent (void) |
Static Public Member Functions | |
static TypeId | GetTypeId (void) |
static void | SetSymbolDuration (Time tSymbol) |
Set the global symbol duration value for all PHYs. | |
static Time | GetSymbolDuration (void) |
Protected Member Functions | |
virtual void | DoStart (void) |
virtual void | DoDispose (void) |
virtual bool | DoStartTx (Ptr< Packet > p)=0 |
virtual void | DoStartRx (Ptr< const Packet > p, uint32_t txId, Ptr< SpectrumValue > &rxPsd, Time duration, Ptr< const PLC_TrxMetaInfo > metaInfo)=0 |
virtual void | DoUpdateRxPsd (uint32_t txId, Ptr< SpectrumValue > newRxPsd)=0 |
virtual PLC_ChannelTransferImpl * | DoGetChannelTransferImpl (Ptr< PLC_Phy > rxPhy)=0 |
Protected Attributes | |
Ptr< PLC_Node > | m_node |
PLC_PhyDataFrameSentCallback | m_data_frame_sent_callback |
PhyRxEndOkCallback | m_receive_success_cb |
PhyRxEndErrorCallback | m_receive_error_cb |
Static Protected Attributes | |
static Time | symbol_duration = MicroSeconds(2240) |
Abstract base class for PLC PHYs
PLC_ChannelTransferImpl * ns3::PLC_Phy::GetChannelTransferImpl | ( | Ptr< PLC_Phy > | rxPhy | ) |
Ptr< PLC_TransferBase > ns3::PLC_Phy::GetChannelTransferVector | ( | Ptr< PLC_Phy > | rxPhy | ) |
Ptr<PLC_Node> ns3::PLC_Phy::GetNode | ( | void | ) | [inline] |
Time ns3::PLC_Phy::GetSymbolDuration | ( | void | ) | [static] |
void ns3::PLC_Phy::NotifyDataFrameSent | ( | void | ) |
Notify subclasses that data frame has been sent
void ns3::PLC_Phy::RxPsdChanged | ( | uint32_t | txId, |
Ptr< SpectrumValue > | newRxPsd | ||
) |
Notify the PLC_Phy instance that the Power Spectral Density of the incoming waveform transmitted by interface txId has changed to newRxPsd
txId | |
newRxPsd |
void ns3::PLC_Phy::SetDataFrameSentCallback | ( | PLC_PhyDataFrameSentCallback | c | ) |
Callback after a successful frame transmission
c |
void ns3::PLC_Phy::SetReceiveErrorCallback | ( | PhyRxEndErrorCallback | c | ) |
Callback for a failed datagram/message reception
c |
void ns3::PLC_Phy::SetReceiveSuccessCallback | ( | PhyRxEndOkCallback | c | ) |
Callback for a successful datagram/message reception
c |
void ns3::PLC_Phy::SetSymbolDuration | ( | Time | tSymbol | ) | [static] |
Set the global symbol duration value for all PHYs.
This method should not be called directly, but by calling PLC_TimeModel::SetPeriodicityModel, as the simulations time resolution will be adapted to symbol granularity
tSymbol | Duration of a modulation symbol |
void ns3::PLC_Phy::StartRx | ( | Ptr< const Packet > | p, |
uint32_t | txId, | ||
Ptr< SpectrumValue > & | rxPsd, | ||
Time | duration, | ||
Ptr< const PLC_TrxMetaInfo > | metaInfo | ||
) |
Notify the PLC_Phy instance of an incoming waveform
p | the Packet associated with the incoming waveform |
rxPsd | the Power Spectral Density of the incoming |
duration | the duration of the incoming waveform |
metaInfo | meta information for link performance emulation |
bool ns3::PLC_Phy::StartTx | ( | Ptr< Packet > | p | ) |
Start transmitting a packet
p | Packet |
txPsd | Power Spectral Density of the waveform to be transmitted |
duration | Time the packet needs for transmission |