A Discrete-Event Network Simulator
API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
ns3::AnimationInterface Class Reference

Interface to network animator. More...

#include <animation-interface.h>

+ Collaboration diagram for ns3::AnimationInterface:

Public Types

typedef void(* AnimWriteCallback )(const char *str)
 typedef for WriteCallBack used for listening to AnimationInterface write messages More...
 

Public Member Functions

 AnimationInterface (const std::string filename, uint64_t maxPktsPerFile=MAX_PKTS_PER_TRACE_FILE, bool usingXML=true)
 Constructor. More...
 
 ~AnimationInterface ()
 Destructor for the animator interface. More...
 
AnimationInterfaceAddSourceDestination (uint32_t fromNodeId, std::string destinationIpv4Address)
 Helper function to print the routing path from a source node to destination IP. More...
 
int64_t AssignStreams (int64_t stream)
 Assign a fixed random variable stream number to the random variables used by this model. More...
 
AnimationInterfaceEnableIpv4RouteTracking (std::string fileName, Time startTime, Time stopTime, Time pollInterval=Seconds(5))
 Enable tracking of the Ipv4 routing table for all Nodes. More...
 
AnimationInterfaceEnableIpv4RouteTracking (std::string fileName, Time startTime, Time stopTime, NodeContainer nc, Time pollInterval=Seconds(5))
 Enable tracking of the Ipv4 routing table for a set of Nodes. More...
 
void EnablePacketMetadata (bool enable)
 Enable Packet metadata. More...
 
double GetNodeEnergyFraction (Ptr< const Node > node) const
 Get node's energy fraction (This used only for testing) More...
 
uint64_t GetTracePktCount ()
 Get trace file packet count (This used only for testing) More...
 
bool IsStarted (void)
 Is AnimationInterface started. More...
 
void ResetAnimWriteCallback ()
 Reset the write callback function. More...
 
void SetAnimWriteCallback (AnimWriteCallback cb)
 Set a callback function to listen to AnimationInterface write events. More...
 
void SetMobilityPollInterval (Time t)
 Set mobility poll interval:WARNING: setting a low interval can cause slowness. More...
 
void SetRandomPosition (bool setRandPos)
 Set random position if a Mobility Model does not exists for the node. More...
 
void SetStartTime (Time t)
 Specify the time at which capture should start. More...
 
void SetStopTime (Time t)
 Specify the time at which capture should stop. More...
 
void ShowNode (uint32_t nodeId, bool show=true)
 Helper function to show/hide a node. More...
 
void ShowNode (Ptr< Node > n, bool show=true)
 Helper function to show/hide a node. More...
 
void UpdateLinkDescription (uint32_t fromNode, uint32_t toNode, std::string linkDescription)
 Helper function to update the description for a link. More...
 
void UpdateLinkDescription (Ptr< Node > fromNode, Ptr< Node > toNode, std::string linkDescription)
 Helper function to update the description for a link. More...
 
void UpdateNodeColor (Ptr< Node > n, uint8_t r, uint8_t g, uint8_t b)
 Helper function to update the node color. More...
 
void UpdateNodeColor (uint32_t nodeId, uint8_t r, uint8_t g, uint8_t b)
 Helper function to update the node color. More...
 
void UpdateNodeDescription (Ptr< Node > n, std::string descr)
 Helper function to update the description for a given node. More...
 
void UpdateNodeDescription (uint32_t nodeId, std::string descr)
 Helper function to update the description for a given node. More...
 

Static Public Member Functions

static bool IsInitialized (void)
 Check if AnimationInterface is initialized. More...
 
static void SetBoundary (double minX, double minY, double maxX, double maxY)
 Helper function to set the topology boundary rectangle. More...
 
static void SetConstantPosition (Ptr< Node > n, double x, double y, double z=0)
 Helper function to set Constant Position for a given node. More...
 
static void SetLinkDescription (uint32_t fromNode, uint32_t toNode, std::string linkDescription, std::string fromNodeDescription="", std::string toNodeDescription="")
 Helper function to set the description for a link. More...
 
static void SetLinkDescription (Ptr< Node > fromNode, Ptr< Node > toNode, std::string linkDescription, std::string fromNodeDescription="", std::string toNodeDescription="")
 Helper function to set the description for a link. More...
 
static void SetNodeColor (Ptr< Node > n, uint8_t r, uint8_t g, uint8_t b)
 Helper function to set the node color. More...
 
static void SetNodeColor (NodeContainer nc, uint8_t r, uint8_t g, uint8_t b)
 Helper function to set the color of nodes in a container. More...
 
static void SetNodeDescription (Ptr< Node > n, std::string descr)
 Helper function to set a brief description for a given node. More...
 
static void SetNodeDescription (NodeContainer nc, std::string descr)
 Helper function to set a brief description for nodes in a Node Container. More...
 

Private Types

typedef std::map< uint32_t,
double > 
EnergyFractionMap
 
typedef std::vector
< Ipv4RoutePathElement
Ipv4RoutePathElements
 

Private Member Functions

void AddPendingCsmaPacket (uint64_t AnimUid, AnimPacketInfo &)
 
void AddPendingLtePacket (uint64_t AnimUid, AnimPacketInfo &)
 
void AddPendingUanPacket (uint64_t AnimUid, AnimPacketInfo &)
 
void AddPendingWifiPacket (uint64_t AnimUid, AnimPacketInfo &)
 
void AddPendingWimaxPacket (uint64_t AnimUid, AnimPacketInfo &)
 
void AddToIpv4AddressNodeIdTable (std::string, uint32_t)
 
void AppendXMLNodeColor (std::ostream &ostream, const Rgb &color) const
 
void AppendXMLNodeDescription (std::ostream &ostream, uint32_t id) const
 
void AppendXMLRemainingEnergy (std::ostream &ostream, uint32_t id) const
 
void ConnectCallbacks ()
 
void ConnectLte ()
 
void ConnectLteEnb (Ptr< Node > n, Ptr< LteEnbNetDevice > nd, uint32_t devIndex)
 
void ConnectLteUe (Ptr< Node > n, Ptr< LteUeNetDevice > nd, uint32_t devIndex)
 
void CsmaMacRxTrace (std::string context, Ptr< const Packet > p)
 
bool CsmaPacketIsPending (uint64_t AnimUid)
 
void CsmaPhyRxEndTrace (std::string context, Ptr< const Packet > p)
 
void CsmaPhyTxBeginTrace (std::string context, Ptr< const Packet > p)
 
void CsmaPhyTxEndTrace (std::string context, Ptr< const Packet > p)
 
void DevTxTrace (std::string context, Ptr< const Packet > p, Ptr< NetDevice > tx, Ptr< NetDevice > rx, Time txTime, Time rxTime)
 
uint64_t GetAnimUidFromPacket (Ptr< const Packet >)
 
const std::vector< std::string > GetElementsFromContext (const std::string &context) const
 
std::string GetIpv4Address (Ptr< NetDevice > nd)
 
std::string GetIpv4RoutingTable (Ptr< Node > n)
 
std::string GetMacAddress (Ptr< NetDevice > nd)
 
std::string GetNetAnimVersion ()
 
Ptr< NetDeviceGetNetDeviceFromContext (std::string context)
 
Ptr< NodeGetNodeFromContext (const std::string &context) const
 
std::string GetPacketMetadata (Ptr< const Packet > p)
 
Vector GetPosition (Ptr< Node > n)
 
std::string GetPreamble (void)
 
std::string GetXMLClose (std::string name)
 
std::string GetXMLOpen_anim (uint32_t lp)
 
std::string GetXMLOpen_packet (uint32_t fromLp, uint32_t fromId, double fbTx, double lbTx, std::string auxInfo="")
 
std::string GetXMLOpen_topology (double minX, double minY, double maxX, double maxY)
 
std::string GetXMLOpen_wpacket (uint32_t fromLp, uint32_t fromId, double fbTx, double lbTx, double range)
 
std::string GetXMLOpenClose_link (uint32_t fromLp, uint32_t fromId, uint32_t toLp, uint32_t toId)
 
std::string GetXMLOpenClose_linkupdate (uint32_t fromId, uint32_t toId, std::string)
 
std::string GetXMLOpenClose_meta (std::string metaInfo)
 
std::string GetXMLOpenClose_node (uint32_t lp, uint32_t id, double locX, double locY)
 
std::string GetXMLOpenClose_node (uint32_t lp, uint32_t id, double locX, double locY, struct Rgb rgb)
 
std::string GetXMLOpenClose_nodeupdate (uint32_t id, bool visible=true)
 
std::string GetXMLOpenClose_NonP2pLinkProperties (uint32_t id, std::string ipv4Address, std::string channelType)
 
std::string GetXMLOpenClose_p (std::string pktType, uint32_t fId, double fbTx, double lbTx, uint32_t tId, double fbRx, double lbRx, std::string metaInfo="", std::string auxInfo="")
 
std::string GetXMLOpenClose_routing (uint32_t id, std::string routingInfo)
 
std::string GetXMLOpenClose_rp (uint32_t nodeId, std::string destination, Ipv4RoutePathElements rpElements)
 
std::string GetXMLOpenClose_rx (uint32_t toLp, uint32_t toId, double fbRx, double lbRx)
 
bool IsInTimeWindow ()
 
bool LtePacketIsPending (uint64_t AnimUid)
 
void LteRxTrace (std::string context, Ptr< const Packet > p, const Mac48Address &)
 
void LteSpectrumPhyRxStart (std::string context, Ptr< const PacketBurst > pb)
 
void LteSpectrumPhyTxStart (std::string context, Ptr< const PacketBurst > pb)
 
void LteTxTrace (std::string context, Ptr< const Packet > p, const Mac48Address &)
 
void MobilityAutoCheck ()
 
void MobilityCourseChangeTrace (Ptr< const MobilityModel > mob)
 
bool NodeHasMoved (Ptr< Node > n, Vector newLocation)
 
void OutputCsmaPacket (Ptr< const Packet > p, AnimPacketInfo &pktInfo, AnimRxInfo pktrxInfo)
 
void OutputWirelessPacket (Ptr< const Packet > p, AnimPacketInfo &pktInfo, AnimRxInfo pktrxInfo)
 
void PurgePendingCsma ()
 
void PurgePendingLte ()
 
void PurgePendingWifi ()
 
void PurgePendingWimax ()
 
void RecalcTopoBounds (Vector v)
 
std::vector< Ptr< Node > > RecalcTopoBounds ()
 
void RecursiveIpv4RoutePathSearch (std::string fromIpv4, std::string toIpv4, Ipv4RoutePathElements &)
 
void RemainingEnergyTrace (std::string context, double previousEnergy, double currentEnergy)
 
bool SetOutputFile (const std::string &fn)
 Specify that animation commands are to be written to the specified output file. More...
 
bool SetRoutingOutputFile (const std::string &fn)
 
void SetXMLOutput ()
 Specify that animation commands are to be written in XML format. More...
 
void StartAnimation (bool restart=false)
 Writes the topology information and sets up the appropriate animation packet tx callback. More...
 
void StartNewTraceFile ()
 
void StopAnimation (bool onlyAnimation=false)
 Closes the interface to the animator. More...
 
void TrackIpv4Route ()
 
void TrackIpv4RoutePaths ()
 
bool UanPacketIsPending (uint64_t AnimUid)
 
void UanPhyGenRxTrace (std::string context, Ptr< const Packet >)
 
void UanPhyGenTxTrace (std::string context, Ptr< const Packet >)
 
Vector UpdatePosition (Ptr< Node > n)
 
Vector UpdatePosition (Ptr< Node > n, Vector v)
 
void WifiMacRxTrace (std::string context, Ptr< const Packet > p)
 
bool WifiPacketIsPending (uint64_t AnimUid)
 
void WifiPhyRxBeginTrace (std::string context, Ptr< const Packet > p)
 
void WifiPhyRxDropTrace (std::string context, Ptr< const Packet > p)
 
void WifiPhyRxEndTrace (std::string context, Ptr< const Packet > p)
 
void WifiPhyTxBeginTrace (std::string context, Ptr< const Packet > p)
 
void WifiPhyTxDropTrace (std::string context, Ptr< const Packet > p)
 
void WifiPhyTxEndTrace (std::string context, Ptr< const Packet > p)
 
bool WimaxPacketIsPending (uint64_t AnimUid)
 
void WimaxRxTrace (std::string context, Ptr< const Packet > p, const Mac48Address &)
 
void WimaxTxTrace (std::string context, Ptr< const Packet > p, const Mac48Address &)
 
void WriteDummyPacket ()
 
int WriteN (const char *, uint32_t, FILE *f)
 
int WriteN (const std::string &, FILE *f)
 
void WriteNodeUpdate (uint32_t nodeId)
 
void WriteNonP2pLinkProperties (uint32_t id, std::string ipv4Address, std::string channelType)
 
void WriteRoutePath (uint32_t nodeId, std::string destination, Ipv4RoutePathElements rpElements)
 

Private Attributes

uint64_t gAnimUid
 
uint64_t m_currentPktCount
 
bool m_enablePacketMetadata
 
FILE * m_f
 
std::vector
< Ipv4RouteTrackElement
m_ipv4RouteTrackElements
 
std::map< std::string, uint32_t > m_ipv4ToNodeIdMap
 
std::map< std::string, uint32_t > m_macToNodeIdMap
 
uint64_t m_maxPktsPerFile
 
Time m_mobilityPollInterval
 
EnergyFractionMap m_nodeEnergyFraction
 
std::map< uint32_t, Vectorm_nodeLocation
 
std::string m_originalFileName
 
std::string m_outputFileName
 
bool m_outputFileSet
 
std::map< uint64_t,
AnimPacketInfo
m_pendingCsmaPackets
 
std::map< uint64_t,
AnimPacketInfo
m_pendingLtePackets
 
std::map< uint64_t,
AnimPacketInfo
m_pendingUanPackets
 
std::map< uint64_t,
AnimPacketInfo
m_pendingWifiPackets
 
std::map< uint64_t,
AnimPacketInfo
m_pendingWimaxPackets
 
bool m_randomPosition
 
FILE * m_routingF
 
std::string m_routingFileName
 
NodeContainer m_routingNc
 
Time m_routingPollInterval
 
Time m_routingStopTime
 
bool m_started
 
Time m_startTime
 
Time m_stopTime
 
double m_topoMaxX
 
double m_topoMaxY
 
double m_topoMinX
 
double m_topoMinY
 
Ptr< UniformRandomVariablem_uniformRandomVariable
 Provides uniform random variables. More...
 
AnimWriteCallback m_writeCallback
 
bool m_xml
 

Static Private Attributes

static std::map
< P2pLinkNodeIdPair,
LinkProperties,
LinkPairCompare
linkProperties
 
static std::map< uint32_t, RgbnodeColors
 
static std::map< uint32_t,
std::string > 
nodeDescriptions
 
static RectangleuserBoundary = 0
 

Detailed Description

Interface to network animator.

Provides functions that facilitate communications with an external or internal network animator.

Definition at line 106 of file animation-interface.h.

Member Typedef Documentation

typedef void(* ns3::AnimationInterface::AnimWriteCallback)(const char *str)

typedef for WriteCallBack used for listening to AnimationInterface write messages

Definition at line 206 of file animation-interface.h.

typedef std::map<uint32_t, double> ns3::AnimationInterface::EnergyFractionMap
private

Definition at line 625 of file animation-interface.h.

Definition at line 615 of file animation-interface.h.

Constructor & Destructor Documentation

ns3::AnimationInterface::AnimationInterface ( const std::string  filename,
uint64_t  maxPktsPerFile = MAX_PKTS_PER_TRACE_FILE,
bool  usingXML = true 
)

Constructor.

Parameters
filenameThe Filename for the trace file used by the Animator
maxPktsPerFileThe maximum number of packets per trace file. AnimationInterface will create trace files with the following filenames : filename, filename-1, filename-2..., filename-N where each file contains packet info for 'maxPktPerFile' number of packets
usingXMLSet to true if XML output traces are required

Definition at line 67 of file animation-interface.cc.

References ns3::initialized, m_uniformRandomVariable, and StartAnimation().

+ Here is the call graph for this function:

ns3::AnimationInterface::~AnimationInterface ( )

Destructor for the animator interface.

Definition at line 82 of file animation-interface.cc.

References StopAnimation(), and userBoundary.

+ Here is the call graph for this function:

Member Function Documentation

void ns3::AnimationInterface::AddPendingCsmaPacket ( uint64_t  AnimUid,
AnimPacketInfo pktinfo 
)
private

Definition at line 1072 of file animation-interface.cc.

References m_pendingCsmaPackets, ns3::AnimPacketInfo::m_txnd, and NS_ASSERT.

Referenced by CsmaPhyTxBeginTrace(), and CsmaPhyTxEndTrace().

+ Here is the caller graph for this function:

void ns3::AnimationInterface::AddPendingLtePacket ( uint64_t  AnimUid,
AnimPacketInfo pktinfo 
)
private

Definition at line 1066 of file animation-interface.cc.

References m_pendingLtePackets, ns3::AnimPacketInfo::m_txnd, and NS_ASSERT.

Referenced by LteSpectrumPhyTxStart(), and LteTxTrace().

+ Here is the caller graph for this function:

void ns3::AnimationInterface::AddPendingUanPacket ( uint64_t  AnimUid,
AnimPacketInfo pktinfo 
)
private

Definition at line 1049 of file animation-interface.cc.

References m_pendingUanPackets.

Referenced by UanPhyGenTxTrace().

+ Here is the caller graph for this function:

void ns3::AnimationInterface::AddPendingWifiPacket ( uint64_t  AnimUid,
AnimPacketInfo pktinfo 
)
private

Definition at line 1055 of file animation-interface.cc.

References m_pendingWifiPackets.

Referenced by WifiPhyRxBeginTrace(), WifiPhyRxEndTrace(), and WifiPhyTxBeginTrace().

+ Here is the caller graph for this function:

void ns3::AnimationInterface::AddPendingWimaxPacket ( uint64_t  AnimUid,
AnimPacketInfo pktinfo 
)
private

Definition at line 1060 of file animation-interface.cc.

References m_pendingWimaxPackets, ns3::AnimPacketInfo::m_txnd, and NS_ASSERT.

Referenced by WimaxTxTrace().

+ Here is the caller graph for this function:

AnimationInterface & ns3::AnimationInterface::AddSourceDestination ( uint32_t  fromNodeId,
std::string  destinationIpv4Address 
)

Helper function to print the routing path from a source node to destination IP.

Parameters
fromNodeIdThe source node
destinationIpv4AddressThe destination Ipv4 Address
Returns
reference to this AnimationInterface object

Definition at line 739 of file animation-interface.cc.

References m_ipv4RouteTrackElements.

void ns3::AnimationInterface::AddToIpv4AddressNodeIdTable ( std::string  ipv4Address,
uint32_t  nodeId 
)
private

Definition at line 734 of file animation-interface.cc.

References m_ipv4ToNodeIdMap.

Referenced by StartAnimation().

+ Here is the caller graph for this function:

void ns3::AnimationInterface::AppendXMLNodeColor ( std::ostream &  ostream,
const Rgb color 
) const
private

Definition at line 2167 of file animation-interface.cc.

References ns3::Rgb::b, ns3::Rgb::g, and ns3::Rgb::r.

Referenced by GetXMLOpenClose_node(), and GetXMLOpenClose_nodeupdate().

+ Here is the caller graph for this function:

void ns3::AnimationInterface::AppendXMLNodeDescription ( std::ostream &  ostream,
uint32_t  id 
) const
private

Definition at line 2155 of file animation-interface.cc.

References nodeDescriptions.

Referenced by GetXMLOpenClose_node(), and GetXMLOpenClose_nodeupdate().

+ Here is the caller graph for this function:

void ns3::AnimationInterface::AppendXMLRemainingEnergy ( std::ostream &  ostream,
uint32_t  id 
) const
private

Definition at line 2178 of file animation-interface.cc.

References ns3::NodeList::GetNode(), ns3::Object::GetObject(), and m_nodeEnergyFraction.

Referenced by GetXMLOpenClose_node(), and GetXMLOpenClose_nodeupdate().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int64_t ns3::AnimationInterface::AssignStreams ( int64_t  stream)

Assign a fixed random variable stream number to the random variables used by this model.

Return the number of streams (possibly zero) that have been assigned.

Parameters
streamfirst stream index to use
Returns
the number of stream indices assigned by this model

Definition at line 1639 of file animation-interface.cc.

References m_uniformRandomVariable, NS_LOG_FUNCTION, and ns3::RandomVariableStream::SetStream().

+ Here is the call graph for this function:

void ns3::AnimationInterface::ConnectLte ( )
private

Definition at line 791 of file animation-interface.cc.

References ns3::NodeList::Begin(), ConnectLteEnb(), ConnectLteUe(), ns3::NodeList::End(), ns3::Node::GetDevice(), ns3::Node::GetNDevices(), and NS_ASSERT.

Referenced by ConnectCallbacks().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::AnimationInterface::ConnectLteEnb ( Ptr< Node n,
Ptr< LteEnbNetDevice nd,
uint32_t  devIndex 
)
private

Definition at line 747 of file animation-interface.cc.

References ns3::Node::GetId(), LteSpectrumPhyRxStart(), LteSpectrumPhyTxStart(), and ns3::MakeCallback().

Referenced by ConnectLte().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::AnimationInterface::ConnectLteUe ( Ptr< Node n,
Ptr< LteUeNetDevice nd,
uint32_t  devIndex 
)
private

Definition at line 770 of file animation-interface.cc.

References ns3::Node::GetId(), LteSpectrumPhyRxStart(), LteSpectrumPhyTxStart(), and ns3::MakeCallback().

Referenced by ConnectLte().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::AnimationInterface::CsmaMacRxTrace ( std::string  context,
Ptr< const Packet p 
)
private
Todo:
NS_ASSERT (CsmaPacketIsPending (AnimUid) == true);

Definition at line 1523 of file animation-interface.cc.

References CsmaPacketIsPending(), GetAnimUidFromPacket(), GetNetDeviceFromContext(), ns3::AnimPacketInfo::GetRxInfo(), IsInTimeWindow(), ns3::AnimRxInfo::IsPhyRxComplete(), m_pendingCsmaPackets, m_started, NS_ASSERT, NS_LOG_FUNCTION, NS_LOG_INFO, NS_LOG_WARN, and OutputCsmaPacket().

Referenced by ConnectCallbacks().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool ns3::AnimationInterface::CsmaPacketIsPending ( uint64_t  AnimUid)
private

Definition at line 414 of file animation-interface.cc.

References m_pendingCsmaPackets.

Referenced by CsmaMacRxTrace(), CsmaPhyRxEndTrace(), and CsmaPhyTxEndTrace().

+ Here is the caller graph for this function:

void ns3::AnimationInterface::CsmaPhyRxEndTrace ( std::string  context,
Ptr< const Packet p 
)
private
void ns3::AnimationInterface::CsmaPhyTxBeginTrace ( std::string  context,
Ptr< const Packet p 
)
private

Definition at line 1455 of file animation-interface.cc.

References ns3::Packet::AddByteTag(), AddPendingCsmaPacket(), gAnimUid, GetNetDeviceFromContext(), IsInTimeWindow(), m_started, ns3::Simulator::Now(), NS_ASSERT, NS_LOG_INFO, ns3::AnimByteTag::Set(), and UpdatePosition().

Referenced by ConnectCallbacks().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::AnimationInterface::CsmaPhyTxEndTrace ( std::string  context,
Ptr< const Packet p 
)
private
Todo:
NS_ASSERT (CsmaPacketIsPending (AnimUid) == true);

Definition at line 1473 of file animation-interface.cc.

References AddPendingCsmaPacket(), CsmaPacketIsPending(), GetAnimUidFromPacket(), GetNetDeviceFromContext(), ns3::Time::GetSeconds(), IsInTimeWindow(), ns3::AnimPacketInfo::m_lbTx, m_pendingCsmaPackets, m_started, ns3::Simulator::Now(), NS_ASSERT, NS_LOG_INFO, NS_LOG_WARN, and UpdatePosition().

Referenced by ConnectCallbacks().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::AnimationInterface::DevTxTrace ( std::string  context,
Ptr< const Packet p,
Ptr< NetDevice tx,
Ptr< NetDevice rx,
Time  txTime,
Time  rxTime 
)
private

Definition at line 988 of file animation-interface.cc.

References GetPacketMetadata(), ns3::Time::GetSeconds(), GetXMLOpenClose_p(), IsInTimeWindow(), m_currentPktCount, m_enablePacketMetadata, m_f, m_started, m_xml, ns3::Simulator::Now(), NS_ASSERT, StartNewTraceFile(), and WriteN().

Referenced by ConnectCallbacks().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

AnimationInterface & ns3::AnimationInterface::EnableIpv4RouteTracking ( std::string  fileName,
Time  startTime,
Time  stopTime,
Time  pollInterval = Seconds (5) 
)

Enable tracking of the Ipv4 routing table for all Nodes.

Parameters
fileNameTrace file for storing routing table information
startTimeStart time for capture
stopTimeEnd time for capture
pollIntervalThe periodic interval at which routing table information is polled Default: 5s
Returns
reference to this AnimationInterface object

Definition at line 91 of file animation-interface.cc.

References GetXMLOpen_anim(), m_routingF, m_routingFileName, m_routingPollInterval, m_routingStopTime, ns3::Simulator::Schedule(), SetRoutingOutputFile(), stopTime, TrackIpv4Route(), and WriteN().

Referenced by EnableIpv4RouteTracking(), and main().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

AnimationInterface & ns3::AnimationInterface::EnableIpv4RouteTracking ( std::string  fileName,
Time  startTime,
Time  stopTime,
NodeContainer  nc,
Time  pollInterval = Seconds (5) 
)

Enable tracking of the Ipv4 routing table for a set of Nodes.

Parameters
fileNameTrace file for storing routing table information
startTimeStart time for capture
stopTimeEnd time for capture
ncA NodeContainer containing nodes for which Routing table has to be tracked
pollIntervalThe periodic interval at which routing table information is polled Default: 5s
Returns
reference to this AnimationInterface object

Definition at line 102 of file animation-interface.cc.

References EnableIpv4RouteTracking(), and m_routingNc.

+ Here is the call graph for this function:

void ns3::AnimationInterface::EnablePacketMetadata ( bool  enable)

Enable Packet metadata.

Parameters
enableif true enables writing the packet metadata to the XML trace file if false disables writing the packet metadata

Definition at line 367 of file animation-interface.cc.

References ns3::Packet::EnablePrinting(), and m_enablePacketMetadata.

Referenced by main().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

const std::vector< std::string > ns3::AnimationInterface::GetElementsFromContext ( const std::string &  context) const
private

Definition at line 2140 of file animation-interface.cc.

Referenced by GetNetDeviceFromContext(), and GetNodeFromContext().

+ Here is the caller graph for this function:

std::string ns3::AnimationInterface::GetIpv4Address ( Ptr< NetDevice nd)
private

Definition at line 597 of file animation-interface.cc.

References ns3::Ipv4InterfaceAddress::GetLocal(), ns3::NodeList::GetNode(), and NS_LOG_WARN.

Referenced by StartAnimation().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

std::string ns3::AnimationInterface::GetIpv4RoutingTable ( Ptr< Node n)
private

Definition at line 108 of file animation-interface.cc.

References ns3::Node::GetId(), ns3::Object::GetObject(), ns3::Ipv4::GetRoutingProtocol(), NS_ASSERT, and NS_LOG_WARN.

Referenced by TrackIpv4Route().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

std::string ns3::AnimationInterface::GetMacAddress ( Ptr< NetDevice nd)
private

Definition at line 589 of file animation-interface.cc.

Referenced by StartAnimation().

+ Here is the caller graph for this function:

std::string ns3::AnimationInterface::GetNetAnimVersion ( )
private

Definition at line 318 of file animation-interface.cc.

Referenced by GetXMLOpen_anim().

+ Here is the caller graph for this function:

Ptr< NetDevice > ns3::AnimationInterface::GetNetDeviceFromContext ( std::string  context)
private
double ns3::AnimationInterface::GetNodeEnergyFraction ( Ptr< const Node node) const

Get node's energy fraction (This used only for testing)

returns current node's remaining energy (between [0, 1])

Definition at line 1630 of file animation-interface.cc.

References m_nodeEnergyFraction, and NS_ASSERT.

Referenced by ns3::AnimationRemainingEnergyTestCase::CheckLogic().

+ Here is the caller graph for this function:

Ptr< Node > ns3::AnimationInterface::GetNodeFromContext ( const std::string &  context) const
private

Definition at line 1024 of file animation-interface.cc.

References GetElementsFromContext(), ns3::NodeList::GetNode(), and NS_ASSERT.

Referenced by GetNetDeviceFromContext(), and RemainingEnergyTrace().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

std::string ns3::AnimationInterface::GetPacketMetadata ( Ptr< const Packet p)
private

Definition at line 1618 of file animation-interface.cc.

References ns3::Packet::Print().

Referenced by DevTxTrace(), OutputCsmaPacket(), and OutputWirelessPacket().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Vector ns3::AnimationInterface::GetPosition ( Ptr< Node n)
private

Definition at line 470 of file animation-interface.cc.

References ns3::Node::GetId(), m_nodeLocation, and NS_FATAL_ERROR.

Referenced by MobilityAutoCheck(), MobilityCourseChangeTrace(), NodeHasMoved(), RecalcTopoBounds(), and StartAnimation().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

std::string ns3::AnimationInterface::GetPreamble ( void  )
private

Definition at line 1650 of file animation-interface.cc.

References s.

Referenced by StartAnimation().

+ Here is the caller graph for this function:

uint64_t ns3::AnimationInterface::GetTracePktCount ( )

Get trace file packet count (This used only for testing)

returns Number of packets recorded in the current trace file

Definition at line 1625 of file animation-interface.cc.

References m_currentPktCount.

Referenced by ns3::AnimationInterfaceTestCase::CheckLogic().

+ Here is the caller graph for this function:

std::string ns3::AnimationInterface::GetXMLClose ( std::string  name)
inlineprivate

Definition at line 666 of file animation-interface.h.

Referenced by MobilityAutoCheck(), MobilityCourseChangeTrace(), StartAnimation(), and StopAnimation().

+ Here is the caller graph for this function:

std::string ns3::AnimationInterface::GetXMLOpen_anim ( uint32_t  lp)
private

Definition at line 1920 of file animation-interface.cc.

References GetNetAnimVersion().

Referenced by EnableIpv4RouteTracking(), and StartAnimation().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

std::string ns3::AnimationInterface::GetXMLOpen_packet ( uint32_t  fromLp,
uint32_t  fromId,
double  fbTx,
double  lbTx,
std::string  auxInfo = "" 
)
private

Definition at line 2034 of file animation-interface.cc.

std::string ns3::AnimationInterface::GetXMLOpen_topology ( double  minX,
double  minY,
double  maxX,
double  maxY 
)
private

Definition at line 1926 of file animation-interface.cc.

References userBoundary, ns3::Rectangle::xMax, ns3::Rectangle::xMin, ns3::Rectangle::yMax, and ns3::Rectangle::yMin.

Referenced by MobilityAutoCheck(), MobilityCourseChangeTrace(), and StartAnimation().

+ Here is the caller graph for this function:

std::string ns3::AnimationInterface::GetXMLOpen_wpacket ( uint32_t  fromLp,
uint32_t  fromId,
double  fbTx,
double  lbTx,
double  range 
)
private

Definition at line 2096 of file animation-interface.cc.

std::string ns3::AnimationInterface::GetXMLOpenClose_link ( uint32_t  fromLp,
uint32_t  fromId,
uint32_t  toLp,
uint32_t  toId 
)
private

Definition at line 2003 of file animation-interface.cc.

References ns3::LinkProperties::fromNodeDescription, ns3::LinkProperties::linkDescription, linkProperties, and ns3::LinkProperties::toNodeDescription.

Referenced by StartAnimation().

+ Here is the caller graph for this function:

std::string ns3::AnimationInterface::GetXMLOpenClose_linkupdate ( uint32_t  fromId,
uint32_t  toId,
std::string  linkDescription 
)
private

Definition at line 1989 of file animation-interface.cc.

References ns3::Time::GetSeconds(), and ns3::Simulator::Now().

Referenced by UpdateLinkDescription().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

std::string ns3::AnimationInterface::GetXMLOpenClose_meta ( std::string  metaInfo)
private

Definition at line 2119 of file animation-interface.cc.

std::string ns3::AnimationInterface::GetXMLOpenClose_node ( uint32_t  lp,
uint32_t  id,
double  locX,
double  locY 
)
private

Definition at line 1962 of file animation-interface.cc.

References AppendXMLNodeDescription(), and AppendXMLRemainingEnergy().

Referenced by MobilityAutoCheck(), MobilityCourseChangeTrace(), and StartAnimation().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

std::string ns3::AnimationInterface::GetXMLOpenClose_node ( uint32_t  lp,
uint32_t  id,
double  locX,
double  locY,
struct Rgb  rgb 
)
private

Definition at line 1975 of file animation-interface.cc.

References AppendXMLNodeColor(), AppendXMLNodeDescription(), and AppendXMLRemainingEnergy().

+ Here is the call graph for this function:

std::string ns3::AnimationInterface::GetXMLOpenClose_nodeupdate ( uint32_t  id,
bool  visible = true 
)
private

Definition at line 1943 of file animation-interface.cc.

References AppendXMLNodeColor(), AppendXMLNodeDescription(), AppendXMLRemainingEnergy(), ns3::Time::GetSeconds(), nodeColors, and ns3::Simulator::Now().

Referenced by UpdateNodeDescription(), and WriteNodeUpdate().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

std::string ns3::AnimationInterface::GetXMLOpenClose_NonP2pLinkProperties ( uint32_t  id,
std::string  ipv4Address,
std::string  channelType 
)
private

Definition at line 2128 of file animation-interface.cc.

Referenced by WriteNonP2pLinkProperties().

+ Here is the caller graph for this function:

std::string ns3::AnimationInterface::GetXMLOpenClose_p ( std::string  pktType,
uint32_t  fId,
double  fbTx,
double  lbTx,
uint32_t  tId,
double  fbRx,
double  lbRx,
std::string  metaInfo = "",
std::string  auxInfo = "" 
)
private

Definition at line 2073 of file animation-interface.cc.

Referenced by DevTxTrace(), OutputCsmaPacket(), OutputWirelessPacket(), and WriteDummyPacket().

+ Here is the caller graph for this function:

std::string ns3::AnimationInterface::GetXMLOpenClose_routing ( uint32_t  id,
std::string  routingInfo 
)
private

Definition at line 2045 of file animation-interface.cc.

References ns3::Time::GetSeconds(), and ns3::Simulator::Now().

Referenced by TrackIpv4Route().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

std::string ns3::AnimationInterface::GetXMLOpenClose_rp ( uint32_t  nodeId,
std::string  destination,
Ipv4RoutePathElements  rpElements 
)
private

Definition at line 2055 of file animation-interface.cc.

References ns3::Time::GetSeconds(), ns3::Ipv4RoutePathElement::nextHop, ns3::Ipv4RoutePathElement::nodeId, and ns3::Simulator::Now().

Referenced by WriteRoutePath().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

std::string ns3::AnimationInterface::GetXMLOpenClose_rx ( uint32_t  toLp,
uint32_t  toId,
double  fbRx,
double  lbRx 
)
private

Definition at line 2108 of file animation-interface.cc.

bool ns3::AnimationInterface::IsInitialized ( void  )
static

Check if AnimationInterface is initialized.

Returns
true if AnimationInterface was already initialized

Definition at line 374 of file animation-interface.cc.

References ns3::initialized.

bool ns3::AnimationInterface::IsStarted ( void  )

Is AnimationInterface started.

Returns
true if AnimationInterface was started

Definition at line 379 of file animation-interface.cc.

References m_started.

bool ns3::AnimationInterface::LtePacketIsPending ( uint64_t  AnimUid)
private

Definition at line 425 of file animation-interface.cc.

References m_pendingLtePackets.

Referenced by LteRxTrace(), and LteSpectrumPhyRxStart().

+ Here is the caller graph for this function:

void ns3::AnimationInterface::LteRxTrace ( std::string  context,
Ptr< const Packet p,
const Mac48Address m 
)
private
void ns3::AnimationInterface::LteSpectrumPhyRxStart ( std::string  context,
Ptr< const PacketBurst pb 
)
private
void ns3::AnimationInterface::LteSpectrumPhyTxStart ( std::string  context,
Ptr< const PacketBurst pb 
)
private
Todo:
0.0001 is used until Lte implements TxBegin and TxEnd traces

Definition at line 1386 of file animation-interface.cc.

References ns3::Packet::AddByteTag(), AddPendingLtePacket(), gAnimUid, GetNetDeviceFromContext(), IsInTimeWindow(), list, m_started, ns3::Simulator::Now(), NS_ASSERT, NS_LOG_INFO, NS_LOG_WARN, ns3::AnimByteTag::Set(), and UpdatePosition().

Referenced by ConnectLteEnb(), and ConnectLteUe().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::AnimationInterface::LteTxTrace ( std::string  context,
Ptr< const Packet p,
const Mac48Address m 
)
private
Todo:
0.0001 is used until Lte implements TxBegin and TxEnd traces

Definition at line 1344 of file animation-interface.cc.

References ns3::Packet::AddByteTag(), AddPendingLtePacket(), gAnimUid, GetNetDeviceFromContext(), IsInTimeWindow(), m_started, ns3::Simulator::Now(), NS_ASSERT, NS_LOG_INFO, ns3::AnimByteTag::Set(), and UpdatePosition().

Referenced by ConnectCallbacks().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::AnimationInterface::MobilityCourseChangeTrace ( Ptr< const MobilityModel mob)
private
bool ns3::AnimationInterface::NodeHasMoved ( Ptr< Node n,
Vector  newLocation 
)
private

Definition at line 1576 of file animation-interface.cc.

References GetPosition(), ns3::Vector3D::x, and ns3::Vector3D::y.

Referenced by RecalcTopoBounds().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::AnimationInterface::OutputCsmaPacket ( Ptr< const Packet p,
AnimPacketInfo pktInfo,
AnimRxInfo  pktrxInfo 
)
private
void ns3::AnimationInterface::PurgePendingCsma ( )
private

Definition at line 562 of file animation-interface.cc.

References ns3::Time::GetSeconds(), ns3::AnimPacketInfo::m_fbTx, m_pendingCsmaPackets, ns3::Simulator::Now(), and PURGE_INTERVAL.

Referenced by MobilityAutoCheck().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::AnimationInterface::PurgePendingLte ( )
private

Definition at line 536 of file animation-interface.cc.

References ns3::Time::GetSeconds(), ns3::AnimPacketInfo::m_fbTx, m_pendingLtePackets, ns3::Simulator::Now(), and PURGE_INTERVAL.

Referenced by MobilityAutoCheck().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::AnimationInterface::PurgePendingWifi ( )
private

Definition at line 481 of file animation-interface.cc.

References ns3::Time::GetSeconds(), ns3::AnimPacketInfo::m_fbTx, m_pendingWifiPackets, ns3::Simulator::Now(), and PURGE_INTERVAL.

Referenced by MobilityAutoCheck().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::AnimationInterface::PurgePendingWimax ( )
private

Definition at line 508 of file animation-interface.cc.

References ns3::Time::GetSeconds(), ns3::AnimPacketInfo::m_fbTx, m_pendingWimaxPackets, ns3::Simulator::Now(), and PURGE_INTERVAL.

Referenced by MobilityAutoCheck().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::AnimationInterface::RecalcTopoBounds ( Vector  v)
private
std::vector< Ptr< Node > > ns3::AnimationInterface::RecalcTopoBounds ( )
private

Definition at line 891 of file animation-interface.cc.

References ns3::NodeList::Begin(), ns3::NodeList::End(), ns3::Object::GetObject(), ns3::MobilityModel::GetPosition(), GetPosition(), NodeHasMoved(), NS_ASSERT, and UpdatePosition().

Referenced by MobilityAutoCheck(), and MobilityCourseChangeTrace().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::AnimationInterface::RecursiveIpv4RoutePathSearch ( std::string  fromIpv4,
std::string  toIpv4,
Ipv4RoutePathElements rpElements 
)
private
void ns3::AnimationInterface::RemainingEnergyTrace ( std::string  context,
double  previousEnergy,
double  currentEnergy 
)
private

Definition at line 1143 of file animation-interface.cc.

References GetNodeFromContext(), IsInTimeWindow(), m_nodeEnergyFraction, m_started, NS_ASSERT, NS_LOG_INFO, and WriteNodeUpdate().

Referenced by ConnectCallbacks().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::AnimationInterface::ResetAnimWriteCallback ( )

Reset the write callback function.

Definition at line 390 of file animation-interface.cc.

References m_writeCallback.

Referenced by StopAnimation().

+ Here is the caller graph for this function:

void ns3::AnimationInterface::SetAnimWriteCallback ( AnimWriteCallback  cb)

Set a callback function to listen to AnimationInterface write events.

Parameters
cbAddress of callback function

Definition at line 385 of file animation-interface.cc.

References m_writeCallback.

void ns3::AnimationInterface::SetBoundary ( double  minX,
double  minY,
double  maxX,
double  maxY 
)
static

Helper function to set the topology boundary rectangle.

Parameters
minXX value of the lower left corner
minYY value of the lower left corner
maxXX value of the upper right corner
maxYY value of the upper right corner

Definition at line 1756 of file animation-interface.cc.

References ns3::initialized, NS_ASSERT, NS_FATAL_ERROR, userBoundary, ns3::Rectangle::xMax, ns3::Rectangle::xMin, ns3::Rectangle::yMax, and ns3::Rectangle::yMin.

Referenced by main().

+ Here is the caller graph for this function:

void ns3::AnimationInterface::SetConstantPosition ( Ptr< Node n,
double  x,
double  y,
double  z = 0 
)
static

Helper function to set Constant Position for a given node.

Parameters
nPtr to the node
xX co-ordinate of the node
yY co-ordinate of the node
zZ co-ordinate of the node

Definition at line 1741 of file animation-interface.cc.

References ns3::Object::AggregateObject(), ns3::Node::GetId(), ns3::Object::GetObject(), NS_ASSERT, and NS_LOG_INFO.

Referenced by main(), ns3::AnimationInterfaceTestCase::PrepareNetwork(), and ns3::AnimationRemainingEnergyTestCase::PrepareNetwork().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::AnimationInterface::SetLinkDescription ( uint32_t  fromNode,
uint32_t  toNode,
std::string  linkDescription,
std::string  fromNodeDescription = "",
std::string  toNodeDescription = "" 
)
static

Helper function to set the description for a link.

Parameters
fromNodeNode Id of the "from Node" of the p2p link
toNodeNode Id of the "to Node" of the p2p link
linkDescriptionDescription of the link such as link bandwidth
fromNodeDescriptionDescription at the "from Node" end such as IP address
toNodeDescriptionDescription at the "to Node" end such as Ip address

Definition at line 1846 of file animation-interface.cc.

References ns3::P2pLinkNodeIdPair::fromNode, linkProperties, and ns3::P2pLinkNodeIdPair::toNode.

Referenced by SetLinkDescription(), and StartAnimation().

+ Here is the caller graph for this function:

void ns3::AnimationInterface::SetLinkDescription ( Ptr< Node fromNode,
Ptr< Node toNode,
std::string  linkDescription,
std::string  fromNodeDescription = "",
std::string  toNodeDescription = "" 
)
static

Helper function to set the description for a link.

Parameters
fromNodePtr to the "from Node" of the p2p link
toNodePtr the "to Node" of the p2p link
linkDescriptionDescription of the link such as link bandwidth
fromNodeDescriptionDescription at the "from Node" end such as IP address
toNodeDescriptionDescription at the "to Node" end such as Ip address

Definition at line 1870 of file animation-interface.cc.

References ns3::Node::GetId(), NS_ASSERT, and SetLinkDescription().

+ Here is the call graph for this function:

void ns3::AnimationInterface::SetMobilityPollInterval ( Time  t)

Set mobility poll interval:WARNING: setting a low interval can cause slowness.

Parameters
tTime interval between fetching mobility/position information Default: 0.25s

Definition at line 430 of file animation-interface.cc.

References m_mobilityPollInterval.

void ns3::AnimationInterface::SetNodeColor ( Ptr< Node n,
uint8_t  r,
uint8_t  g,
uint8_t  b 
)
static

Helper function to set the node color.

Parameters
nPtr to the node
rRed component value (0-255)
gGreen component value (0-255)
bBlue component value (0-255)

Definition at line 1772 of file animation-interface.cc.

References ns3::Node::GetId(), ns3::initialized, nodeColors, NS_ASSERT, NS_FATAL_ERROR, and NS_LOG_INFO.

Referenced by main(), and SetNodeColor().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::AnimationInterface::SetNodeColor ( NodeContainer  nc,
uint8_t  r,
uint8_t  g,
uint8_t  b 
)
static

Helper function to set the color of nodes in a container.

Parameters
ncA Node Container of Nodes
rRed component value (0-255)
gGreen component value (0-255)
bBlue component value (0-255)

Definition at line 1817 of file animation-interface.cc.

References ns3::NodeContainer::Get(), ns3::NodeContainer::GetN(), NS_ASSERT, and SetNodeColor().

+ Here is the call graph for this function:

void ns3::AnimationInterface::SetNodeDescription ( Ptr< Node n,
std::string  descr 
)
static

Helper function to set a brief description for a given node.

Parameters
nPtr to the node
descrA string to briefly describe the node

Definition at line 1881 of file animation-interface.cc.

References ns3::Node::GetId(), ns3::initialized, nodeDescriptions, NS_ASSERT, and NS_FATAL_ERROR.

Referenced by main().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::AnimationInterface::SetNodeDescription ( NodeContainer  nc,
std::string  descr 
)
static

Helper function to set a brief description for nodes in a Node Container.

Parameters
ncNodeContainer containing the nodes
descrA string to briefly describe the nodes

Definition at line 1905 of file animation-interface.cc.

References ns3::NodeContainer::Get(), ns3::Node::GetId(), ns3::NodeContainer::GetN(), ns3::initialized, nodeDescriptions, NS_ASSERT, and NS_FATAL_ERROR.

+ Here is the call graph for this function:

bool ns3::AnimationInterface::SetOutputFile ( const std::string &  fn)
private

Specify that animation commands are to be written to the specified output file.

This call is used to write the animation information to a text file that can later be used as input to the network animator tool.

Parameters
fnThe name of the output file.
Returns
true if successful open.

Definition at line 333 of file animation-interface.cc.

References m_f, m_outputFileName, m_outputFileSet, NS_FATAL_ERROR, and NS_LOG_INFO.

Referenced by StartAnimation().

+ Here is the caller graph for this function:

void ns3::AnimationInterface::SetRandomPosition ( bool  setRandPos)

Set random position if a Mobility Model does not exists for the node.

Parameters
setRandPosTrue if a random position can be set for a node without a Mobililty model

Definition at line 435 of file animation-interface.cc.

References m_randomPosition.

bool ns3::AnimationInterface::SetRoutingOutputFile ( const std::string &  fn)
private

Definition at line 351 of file animation-interface.cc.

References m_routingF, and NS_FATAL_ERROR.

Referenced by EnableIpv4RouteTracking().

+ Here is the caller graph for this function:

void ns3::AnimationInterface::SetStartTime ( Time  t)

Specify the time at which capture should start.

Parameters
tThe time at which AnimationInterface should begin capture of traffic info
Returns
none

Definition at line 323 of file animation-interface.cc.

References m_startTime.

void ns3::AnimationInterface::SetStopTime ( Time  t)

Specify the time at which capture should stop.

Parameters
tThe time at which AnimationInterface should stop capture of traffic info
Returns
none

Definition at line 328 of file animation-interface.cc.

References m_stopTime.

void ns3::AnimationInterface::SetXMLOutput ( )
private

Specify that animation commands are to be written in XML format.

Returns
none

Definition at line 294 of file animation-interface.cc.

References m_xml, and NS_LOG_INFO.

void ns3::AnimationInterface::ShowNode ( uint32_t  nodeId,
bool  show = true 
)

Helper function to show/hide a node.

Parameters
nodeIdId of the node
showSet to true to show node, set to false to hide

Definition at line 1782 of file animation-interface.cc.

References ns3::NodeList::GetNode(), NS_ASSERT, NS_LOG_INFO, and WriteNodeUpdate().

Referenced by modify(), and ShowNode().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::AnimationInterface::ShowNode ( Ptr< Node n,
bool  show = true 
)

Helper function to show/hide a node.

Parameters
nPtr to the node
showSet to true to show node, set to false to hide

Definition at line 1789 of file animation-interface.cc.

References ShowNode().

+ Here is the call graph for this function:

void ns3::AnimationInterface::StartAnimation ( bool  restart = false)
private

Writes the topology information and sets up the appropriate animation packet tx callback.

Writes the topology information to the appropriate output, depending on prior calls to SetOutputFile, SetServerPort, or SetInternalAnimation. Then creates the callbacks needed for the animator to start processing packets.

Parameters
restartTrue when restarting animation

Definition at line 617 of file animation-interface.cc.

References AddToIpv4AddressNodeIdTable(), ns3::NodeList::Begin(), ConnectCallbacks(), ns3::NodeList::End(), ns3::Node::GetDevice(), ns3::Node::GetId(), GetIpv4Address(), GetMacAddress(), ns3::Node::GetNDevices(), ns3::NodeList::GetNNodes(), GetPosition(), GetPreamble(), GetXMLClose(), GetXMLOpen_anim(), GetXMLOpen_topology(), GetXMLOpenClose_link(), GetXMLOpenClose_node(), linkProperties, m_currentPktCount, m_f, m_mobilityPollInterval, m_outputFileName, m_started, m_topoMaxX, m_topoMaxY, m_topoMinX, m_topoMinY, m_xml, MobilityAutoCheck(), nodeColors, NS_ASSERT, NS_LOG_DEBUG, NS_LOG_INFO, ns3::Simulator::Schedule(), SetLinkDescription(), SetOutputFile(), UpdatePosition(), WriteN(), WriteNonP2pLinkProperties(), ns3::Vector3D::x, and ns3::Vector3D::y.

Referenced by AnimationInterface(), and StartNewTraceFile().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::AnimationInterface::StartNewTraceFile ( )
private

Definition at line 301 of file animation-interface.cc.

References m_currentPktCount, m_maxPktsPerFile, m_originalFileName, m_outputFileName, StartAnimation(), and StopAnimation().

Referenced by DevTxTrace(), OutputCsmaPacket(), and OutputWirelessPacket().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::AnimationInterface::StopAnimation ( bool  onlyAnimation = false)
private

Closes the interface to the animator.

Definition at line 857 of file animation-interface.cc.

References GetXMLClose(), m_f, m_outputFileSet, m_routingF, m_started, m_xml, NS_LOG_INFO, ResetAnimWriteCallback(), and WriteN().

Referenced by StartNewTraceFile(), and ~AnimationInterface().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool ns3::AnimationInterface::UanPacketIsPending ( uint64_t  AnimUid)
private

Definition at line 404 of file animation-interface.cc.

References m_pendingUanPackets.

Referenced by UanPhyGenRxTrace().

+ Here is the caller graph for this function:

void ns3::AnimationInterface::UanPhyGenRxTrace ( std::string  context,
Ptr< const Packet p 
)
private

Definition at line 1122 of file animation-interface.cc.

References GetAnimUidFromPacket(), GetNetDeviceFromContext(), IsInTimeWindow(), m_pendingUanPackets, m_started, ns3::Simulator::Now(), NS_ASSERT, NS_LOG_INFO, NS_LOG_WARN, OutputWirelessPacket(), UanPacketIsPending(), and UpdatePosition().

Referenced by ConnectCallbacks().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::AnimationInterface::UanPhyGenTxTrace ( std::string  context,
Ptr< const Packet p 
)
private

Definition at line 1103 of file animation-interface.cc.

References ns3::Packet::AddByteTag(), AddPendingUanPacket(), gAnimUid, GetNetDeviceFromContext(), IsInTimeWindow(), m_started, ns3::Simulator::Now(), NS_ASSERT, NS_LOG_INFO, ns3::AnimByteTag::Set(), and UpdatePosition().

Referenced by ConnectCallbacks().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::AnimationInterface::UpdateLinkDescription ( uint32_t  fromNode,
uint32_t  toNode,
std::string  linkDescription 
)

Helper function to update the description for a link.

Parameters
fromNodeNode Id of the "from Node" of the p2p link
toNodeNode Id of the "to Node" of the p2p link
linkDescriptionDescription of the link such as link bandwidth

Definition at line 1828 of file animation-interface.cc.

References GetXMLOpenClose_linkupdate(), m_f, and WriteN().

Referenced by modify().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::AnimationInterface::UpdateLinkDescription ( Ptr< Node fromNode,
Ptr< Node toNode,
std::string  linkDescription 
)

Helper function to update the description for a link.

Parameters
fromNodePtr to the "from Node" of the p2p link
toNodePtr to the "to Node" of the p2p link
linkDescriptionDescription of the link such as link bandwidth

Definition at line 1836 of file animation-interface.cc.

References ns3::Node::GetId(), GetXMLOpenClose_linkupdate(), m_f, NS_ASSERT, and WriteN().

+ Here is the call graph for this function:

void ns3::AnimationInterface::UpdateNodeColor ( Ptr< Node n,
uint8_t  r,
uint8_t  g,
uint8_t  b 
)

Helper function to update the node color.

Parameters
nPtr to the node
rRed component value (0-255)
gGreen component value (0-255)
bBlue component value (0-255)

Definition at line 1801 of file animation-interface.cc.

References ns3::Node::GetId().

Referenced by modify().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::AnimationInterface::UpdateNodeColor ( uint32_t  nodeId,
uint8_t  r,
uint8_t  g,
uint8_t  b 
)

Helper function to update the node color.

Parameters
nodeIdId of the node
rRed component value (0-255)
gGreen component value (0-255)
bBlue component value (0-255)

Definition at line 1806 of file animation-interface.cc.

References ns3::NodeList::GetNode(), nodeColors, NS_ASSERT, NS_LOG_INFO, and WriteNodeUpdate().

+ Here is the call graph for this function:

void ns3::AnimationInterface::UpdateNodeDescription ( Ptr< Node n,
std::string  descr 
)

Helper function to update the description for a given node.

Parameters
nPtr to the node
descrA string to briefly describe the node

Definition at line 1889 of file animation-interface.cc.

References ns3::Node::GetId().

Referenced by modify().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::AnimationInterface::UpdateNodeDescription ( uint32_t  nodeId,
std::string  descr 
)

Helper function to update the description for a given node.

Parameters
nodeIdId of the node
descrA string to briefly describe the node

Definition at line 1894 of file animation-interface.cc.

References ns3::NodeList::GetNode(), GetXMLOpenClose_nodeupdate(), m_f, nodeDescriptions, NS_ASSERT, and WriteN().

+ Here is the call graph for this function:

Vector ns3::AnimationInterface::UpdatePosition ( Ptr< Node n,
Vector  v 
)
private

Definition at line 464 of file animation-interface.cc.

References ns3::Node::GetId(), and m_nodeLocation.

+ Here is the call graph for this function:

void ns3::AnimationInterface::WifiMacRxTrace ( std::string  context,
Ptr< const Packet p 
)
private
bool ns3::AnimationInterface::WifiPacketIsPending ( uint64_t  AnimUid)
private

Definition at line 409 of file animation-interface.cc.

References m_pendingWifiPackets.

Referenced by WifiMacRxTrace(), WifiPhyRxBeginTrace(), WifiPhyRxEndTrace(), and WifiPhyTxDropTrace().

+ Here is the caller graph for this function:

void ns3::AnimationInterface::WifiPhyRxBeginTrace ( std::string  context,
Ptr< const Packet p 
)
private
void ns3::AnimationInterface::WifiPhyRxDropTrace ( std::string  context,
Ptr< const Packet p 
)
private

Definition at line 1301 of file animation-interface.cc.

void ns3::AnimationInterface::WifiPhyRxEndTrace ( std::string  context,
Ptr< const Packet p 
)
private
void ns3::AnimationInterface::WifiPhyTxBeginTrace ( std::string  context,
Ptr< const Packet p 
)
private
void ns3::AnimationInterface::WifiPhyTxDropTrace ( std::string  context,
Ptr< const Packet p 
)
private
void ns3::AnimationInterface::WifiPhyTxEndTrace ( std::string  context,
Ptr< const Packet p 
)
private

Definition at line 1190 of file animation-interface.cc.

bool ns3::AnimationInterface::WimaxPacketIsPending ( uint64_t  AnimUid)
private

Definition at line 420 of file animation-interface.cc.

References m_pendingWimaxPackets.

Referenced by WimaxRxTrace().

+ Here is the caller graph for this function:

void ns3::AnimationInterface::WimaxRxTrace ( std::string  context,
Ptr< const Packet p,
const Mac48Address m 
)
private
Todo:
0.001 is used until Wimax implements RxBegin and RxEnd traces

Definition at line 1325 of file animation-interface.cc.

References GetAnimUidFromPacket(), GetNetDeviceFromContext(), ns3::AnimPacketInfo::GetRxInfo(), IsInTimeWindow(), m_pendingWimaxPackets, m_started, ns3::Simulator::Now(), NS_ASSERT, NS_LOG_INFO, OutputWirelessPacket(), ns3::AnimPacketInfo::ProcessRxBegin(), ns3::AnimPacketInfo::ProcessRxEnd(), UpdatePosition(), and WimaxPacketIsPending().

Referenced by ConnectCallbacks().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::AnimationInterface::WimaxTxTrace ( std::string  context,
Ptr< const Packet p,
const Mac48Address m 
)
private
Todo:
0.0001 is used until Wimax implements TxBegin and TxEnd traces

Definition at line 1306 of file animation-interface.cc.

References ns3::Packet::AddByteTag(), AddPendingWimaxPacket(), gAnimUid, GetNetDeviceFromContext(), IsInTimeWindow(), m_started, ns3::Simulator::Now(), NS_ASSERT, NS_LOG_INFO, ns3::AnimByteTag::Set(), and UpdatePosition().

Referenced by ConnectCallbacks().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::AnimationInterface::WriteDummyPacket ( )
private

Definition at line 951 of file animation-interface.cc.

References ns3::Time::GetSeconds(), GetXMLOpenClose_p(), m_f, ns3::Simulator::Now(), and WriteN().

Referenced by MobilityAutoCheck(), and MobilityCourseChangeTrace().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int ns3::AnimationInterface::WriteN ( const char *  data,
uint32_t  count,
FILE *  f 
)
private
int ns3::AnimationInterface::WriteN ( const std::string &  st,
FILE *  f 
)
private

Definition at line 882 of file animation-interface.cc.

References m_writeCallback, and WriteN().

+ Here is the call graph for this function:

void ns3::AnimationInterface::WriteNodeUpdate ( uint32_t  nodeId)
private

Definition at line 1794 of file animation-interface.cc.

References GetXMLOpenClose_nodeupdate(), m_f, and WriteN().

Referenced by RemainingEnergyTrace(), ShowNode(), and UpdateNodeColor().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::AnimationInterface::WriteNonP2pLinkProperties ( uint32_t  id,
std::string  ipv4Address,
std::string  channelType 
)
private

Definition at line 981 of file animation-interface.cc.

References GetXMLOpenClose_NonP2pLinkProperties(), m_f, and WriteN().

Referenced by StartAnimation().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::AnimationInterface::WriteRoutePath ( uint32_t  nodeId,
std::string  destination,
Ipv4RoutePathElements  rpElements 
)
private

Definition at line 965 of file animation-interface.cc.

References GetXMLOpenClose_rp(), m_routingF, NS_LOG_INFO, and WriteN().

Referenced by TrackIpv4RoutePaths().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Member Data Documentation

uint64_t ns3::AnimationInterface::gAnimUid
private
std::map< P2pLinkNodeIdPair, LinkProperties, LinkPairCompare > ns3::AnimationInterface::linkProperties
staticprivate

Definition at line 629 of file animation-interface.h.

Referenced by GetXMLOpenClose_link(), SetLinkDescription(), and StartAnimation().

uint64_t ns3::AnimationInterface::m_currentPktCount
private
bool ns3::AnimationInterface::m_enablePacketMetadata
private
std::vector<Ipv4RouteTrackElement> ns3::AnimationInterface::m_ipv4RouteTrackElements
private

Definition at line 614 of file animation-interface.h.

Referenced by AddSourceDestination(), and TrackIpv4RoutePaths().

std::map<std::string, uint32_t> ns3::AnimationInterface::m_ipv4ToNodeIdMap
private
std::map<std::string, uint32_t> ns3::AnimationInterface::m_macToNodeIdMap
private

Definition at line 611 of file animation-interface.h.

Referenced by WifiPhyRxBeginTrace(), and WifiPhyTxBeginTrace().

uint64_t ns3::AnimationInterface::m_maxPktsPerFile
private

Definition at line 449 of file animation-interface.h.

Referenced by StartNewTraceFile().

Time ns3::AnimationInterface::m_mobilityPollInterval
private
EnergyFractionMap ns3::AnimationInterface::m_nodeEnergyFraction
private
std::map<uint32_t, Vector> ns3::AnimationInterface::m_nodeLocation
private

Definition at line 589 of file animation-interface.h.

Referenced by GetPosition(), and UpdatePosition().

std::string ns3::AnimationInterface::m_originalFileName
private

Definition at line 450 of file animation-interface.h.

Referenced by StartNewTraceFile().

std::string ns3::AnimationInterface::m_outputFileName
private

Definition at line 440 of file animation-interface.h.

Referenced by SetOutputFile(), StartAnimation(), and StartNewTraceFile().

bool ns3::AnimationInterface::m_outputFileSet
private

Definition at line 441 of file animation-interface.h.

Referenced by SetOutputFile(), and StopAnimation().

std::map<uint64_t, AnimPacketInfo> ns3::AnimationInterface::m_pendingCsmaPackets
private
std::map<uint64_t, AnimPacketInfo> ns3::AnimationInterface::m_pendingLtePackets
private
std::map<uint64_t, AnimPacketInfo> ns3::AnimationInterface::m_pendingUanPackets
private
std::map<uint64_t, AnimPacketInfo> ns3::AnimationInterface::m_pendingWifiPackets
private
std::map<uint64_t, AnimPacketInfo> ns3::AnimationInterface::m_pendingWimaxPackets
private
bool ns3::AnimationInterface::m_randomPosition
private

Definition at line 443 of file animation-interface.h.

Referenced by SetRandomPosition(), and UpdatePosition().

FILE* ns3::AnimationInterface::m_routingF
private
std::string ns3::AnimationInterface::m_routingFileName
private

Definition at line 452 of file animation-interface.h.

Referenced by EnableIpv4RouteTracking().

NodeContainer ns3::AnimationInterface::m_routingNc
private

Definition at line 454 of file animation-interface.h.

Referenced by EnableIpv4RouteTracking(), and TrackIpv4Route().

Time ns3::AnimationInterface::m_routingPollInterval
private

Definition at line 453 of file animation-interface.h.

Referenced by EnableIpv4RouteTracking(), and TrackIpv4Route().

Time ns3::AnimationInterface::m_routingStopTime
private

Definition at line 451 of file animation-interface.h.

Referenced by EnableIpv4RouteTracking(), and TrackIpv4Route().

Time ns3::AnimationInterface::m_startTime
private

Definition at line 447 of file animation-interface.h.

Referenced by IsInTimeWindow(), and SetStartTime().

Time ns3::AnimationInterface::m_stopTime
private

Definition at line 448 of file animation-interface.h.

Referenced by IsInTimeWindow(), and SetStopTime().

double ns3::AnimationInterface::m_topoMaxX
private
double ns3::AnimationInterface::m_topoMaxY
private
double ns3::AnimationInterface::m_topoMinX
private
double ns3::AnimationInterface::m_topoMinY
private
Ptr<UniformRandomVariable> ns3::AnimationInterface::m_uniformRandomVariable
private

Provides uniform random variables.

Definition at line 677 of file animation-interface.h.

Referenced by AnimationInterface(), AssignStreams(), and UpdatePosition().

AnimWriteCallback ns3::AnimationInterface::m_writeCallback
private

Definition at line 444 of file animation-interface.h.

Referenced by ResetAnimWriteCallback(), SetAnimWriteCallback(), and WriteN().

bool ns3::AnimationInterface::m_xml
private
std::map< uint32_t, Rgb > ns3::AnimationInterface::nodeColors
staticprivate
std::map< uint32_t, std::string > ns3::AnimationInterface::nodeDescriptions
staticprivate
Rectangle * ns3::AnimationInterface::userBoundary = 0
staticprivate

Definition at line 650 of file animation-interface.h.

Referenced by GetXMLOpen_topology(), SetBoundary(), and ~AnimationInterface().


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