Interface to network animator. More...
#include <animation-interface.h>
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... | |
AnimationInterface & | AddSourceDestination (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... | |
AnimationInterface & | EnableIpv4RouteTracking (std::string fileName, Time startTime, Time stopTime, Time pollInterval=Seconds(5)) |
Enable tracking of the Ipv4 routing table for all Nodes. More... | |
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. 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< NetDevice > | GetNetDeviceFromContext (std::string context) |
Ptr< Node > | GetNodeFromContext (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) |
Static Private Attributes | |
static std::map < P2pLinkNodeIdPair, LinkProperties, LinkPairCompare > | linkProperties |
static std::map< uint32_t, Rgb > | nodeColors |
static std::map< uint32_t, std::string > | nodeDescriptions |
static Rectangle * | userBoundary = 0 |
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.
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.
|
private |
Definition at line 625 of file animation-interface.h.
|
private |
Definition at line 615 of file animation-interface.h.
ns3::AnimationInterface::AnimationInterface | ( | const std::string | filename, |
uint64_t | maxPktsPerFile = MAX_PKTS_PER_TRACE_FILE , |
||
bool | usingXML = true |
||
) |
Constructor.
filename | The Filename for the trace file used by the Animator |
maxPktsPerFile | The 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 |
usingXML | Set to true if XML output traces are required |
Definition at line 67 of file animation-interface.cc.
References ns3::initialized, m_uniformRandomVariable, and StartAnimation().
ns3::AnimationInterface::~AnimationInterface | ( | ) |
Destructor for the animator interface.
Definition at line 82 of file animation-interface.cc.
References StopAnimation(), and userBoundary.
|
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().
|
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().
|
private |
Definition at line 1049 of file animation-interface.cc.
References m_pendingUanPackets.
Referenced by UanPhyGenTxTrace().
|
private |
Definition at line 1055 of file animation-interface.cc.
References m_pendingWifiPackets.
Referenced by WifiPhyRxBeginTrace(), WifiPhyRxEndTrace(), and WifiPhyTxBeginTrace().
|
private |
Definition at line 1060 of file animation-interface.cc.
References m_pendingWimaxPackets, ns3::AnimPacketInfo::m_txnd, and NS_ASSERT.
Referenced by WimaxTxTrace().
AnimationInterface & ns3::AnimationInterface::AddSourceDestination | ( | uint32_t | fromNodeId, |
std::string | destinationIpv4Address | ||
) |
Helper function to print the routing path from a source node to destination IP.
Definition at line 739 of file animation-interface.cc.
References m_ipv4RouteTrackElements.
|
private |
Definition at line 734 of file animation-interface.cc.
References m_ipv4ToNodeIdMap.
Referenced by StartAnimation().
|
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().
|
private |
Definition at line 2155 of file animation-interface.cc.
References nodeDescriptions.
Referenced by GetXMLOpenClose_node(), and GetXMLOpenClose_nodeupdate().
|
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().
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.
stream | first stream index to use |
Definition at line 1639 of file animation-interface.cc.
References m_uniformRandomVariable, NS_LOG_FUNCTION, and ns3::RandomVariableStream::SetStream().
|
private |
Definition at line 818 of file animation-interface.cc.
References ns3::Config::Connect(), ConnectLte(), ns3::Config::ConnectWithoutContext(), CsmaMacRxTrace(), CsmaPhyRxEndTrace(), CsmaPhyTxBeginTrace(), CsmaPhyTxEndTrace(), DevTxTrace(), LteRxTrace(), LteTxTrace(), ns3::MakeCallback(), MobilityCourseChangeTrace(), RemainingEnergyTrace(), UanPhyGenRxTrace(), UanPhyGenTxTrace(), WifiPhyRxBeginTrace(), WifiPhyTxBeginTrace(), WimaxRxTrace(), and WimaxTxTrace().
Referenced by StartAnimation().
|
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().
|
private |
Definition at line 747 of file animation-interface.cc.
References ns3::Node::GetId(), LteSpectrumPhyRxStart(), LteSpectrumPhyTxStart(), and ns3::MakeCallback().
Referenced by ConnectLte().
|
private |
Definition at line 770 of file animation-interface.cc.
References ns3::Node::GetId(), LteSpectrumPhyRxStart(), LteSpectrumPhyTxStart(), and ns3::MakeCallback().
Referenced by ConnectLte().
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().
|
private |
Definition at line 414 of file animation-interface.cc.
References m_pendingCsmaPackets.
Referenced by CsmaMacRxTrace(), CsmaPhyRxEndTrace(), and CsmaPhyTxEndTrace().
|
private |
Definition at line 1495 of file animation-interface.cc.
References CsmaPacketIsPending(), GetAnimUidFromPacket(), GetNetDeviceFromContext(), ns3::AnimPacketInfo::GetRxInfo(), IsInTimeWindow(), ns3::AnimRxInfo::IsPhyRxComplete(), m_pendingCsmaPackets, m_started, ns3::Simulator::Now(), NS_ASSERT, NS_LOG_INFO, NS_LOG_WARN, OutputCsmaPacket(), ns3::AnimPacketInfo::ProcessRxEnd(), and UpdatePosition().
Referenced by ConnectCallbacks().
|
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().
|
private |
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().
|
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().
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.
fileName | Trace file for storing routing table information |
startTime | Start time for capture |
stopTime | End time for capture |
pollInterval | The periodic interval at which routing table information is polled Default: 5s |
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().
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.
fileName | Trace file for storing routing table information |
startTime | Start time for capture |
stopTime | End time for capture |
nc | A NodeContainer containing nodes for which Routing table has to be tracked |
pollInterval | The periodic interval at which routing table information is polled Default: 5s |
Definition at line 102 of file animation-interface.cc.
References EnableIpv4RouteTracking(), and m_routingNc.
void ns3::AnimationInterface::EnablePacketMetadata | ( | bool | enable | ) |
Enable Packet metadata.
enable | if 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().
Definition at line 1078 of file animation-interface.cc.
References ns3::AnimByteTag::Get(), ns3::Packet::GetByteTagIterator(), ns3::AnimByteTag::GetInstanceTypeId(), ns3::ByteTagIterator::Item::GetTag(), ns3::ByteTagIterator::Item::GetTypeId(), ns3::ByteTagIterator::HasNext(), and ns3::ByteTagIterator::Next().
Referenced by CsmaMacRxTrace(), CsmaPhyRxEndTrace(), CsmaPhyTxEndTrace(), LteRxTrace(), LteSpectrumPhyRxStart(), UanPhyGenRxTrace(), WifiMacRxTrace(), WifiPhyRxBeginTrace(), WifiPhyRxEndTrace(), WifiPhyTxDropTrace(), and WimaxRxTrace().
|
private |
Definition at line 2140 of file animation-interface.cc.
Referenced by GetNetDeviceFromContext(), and GetNodeFromContext().
Definition at line 597 of file animation-interface.cc.
References ns3::Ipv4InterfaceAddress::GetLocal(), ns3::NodeList::GetNode(), and NS_LOG_WARN.
Referenced by StartAnimation().
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().
Definition at line 589 of file animation-interface.cc.
Referenced by StartAnimation().
|
private |
Definition at line 318 of file animation-interface.cc.
Referenced by GetXMLOpen_anim().
Definition at line 1037 of file animation-interface.cc.
References ns3::Node::GetDevice(), GetElementsFromContext(), and GetNodeFromContext().
Referenced by CsmaMacRxTrace(), CsmaPhyRxEndTrace(), CsmaPhyTxBeginTrace(), CsmaPhyTxEndTrace(), LteRxTrace(), LteSpectrumPhyRxStart(), LteSpectrumPhyTxStart(), LteTxTrace(), UanPhyGenRxTrace(), UanPhyGenTxTrace(), WifiMacRxTrace(), WifiPhyRxBeginTrace(), WifiPhyRxEndTrace(), WifiPhyTxBeginTrace(), WifiPhyTxDropTrace(), WimaxRxTrace(), and WimaxTxTrace().
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().
|
private |
Definition at line 1024 of file animation-interface.cc.
References GetElementsFromContext(), ns3::NodeList::GetNode(), and NS_ASSERT.
Referenced by GetNetDeviceFromContext(), and RemainingEnergyTrace().
Definition at line 1618 of file animation-interface.cc.
References ns3::Packet::Print().
Referenced by DevTxTrace(), OutputCsmaPacket(), and OutputWirelessPacket().
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().
|
private |
Definition at line 1650 of file animation-interface.cc.
References s.
Referenced by StartAnimation().
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().
|
inlineprivate |
Definition at line 666 of file animation-interface.h.
Referenced by MobilityAutoCheck(), MobilityCourseChangeTrace(), StartAnimation(), and StopAnimation().
|
private |
Definition at line 1920 of file animation-interface.cc.
References GetNetAnimVersion().
Referenced by EnableIpv4RouteTracking(), and StartAnimation().
|
private |
Definition at line 2034 of file animation-interface.cc.
|
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().
|
private |
Definition at line 2096 of file animation-interface.cc.
|
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().
|
private |
Definition at line 1989 of file animation-interface.cc.
References ns3::Time::GetSeconds(), and ns3::Simulator::Now().
Referenced by UpdateLinkDescription().
|
private |
Definition at line 2119 of file animation-interface.cc.
|
private |
Definition at line 1962 of file animation-interface.cc.
References AppendXMLNodeDescription(), and AppendXMLRemainingEnergy().
Referenced by MobilityAutoCheck(), MobilityCourseChangeTrace(), and StartAnimation().
|
private |
Definition at line 1975 of file animation-interface.cc.
References AppendXMLNodeColor(), AppendXMLNodeDescription(), and AppendXMLRemainingEnergy().
|
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().
|
private |
Definition at line 2128 of file animation-interface.cc.
Referenced by WriteNonP2pLinkProperties().
|
private |
Definition at line 2073 of file animation-interface.cc.
Referenced by DevTxTrace(), OutputCsmaPacket(), OutputWirelessPacket(), and WriteDummyPacket().
|
private |
Definition at line 2045 of file animation-interface.cc.
References ns3::Time::GetSeconds(), and ns3::Simulator::Now().
Referenced by TrackIpv4Route().
|
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().
|
private |
Definition at line 2108 of file animation-interface.cc.
|
static |
Check if AnimationInterface is initialized.
Definition at line 374 of file animation-interface.cc.
References ns3::initialized.
|
private |
Definition at line 395 of file animation-interface.cc.
References m_startTime, m_stopTime, and ns3::Simulator::Now().
Referenced by CsmaMacRxTrace(), CsmaPhyRxEndTrace(), CsmaPhyTxBeginTrace(), CsmaPhyTxEndTrace(), DevTxTrace(), LteRxTrace(), LteSpectrumPhyRxStart(), LteSpectrumPhyTxStart(), LteTxTrace(), MobilityAutoCheck(), MobilityCourseChangeTrace(), RemainingEnergyTrace(), UanPhyGenRxTrace(), UanPhyGenTxTrace(), WifiMacRxTrace(), WifiPhyRxBeginTrace(), WifiPhyRxEndTrace(), WifiPhyTxBeginTrace(), WifiPhyTxDropTrace(), WimaxRxTrace(), and WimaxTxTrace().
bool ns3::AnimationInterface::IsStarted | ( | void | ) |
Is AnimationInterface started.
Definition at line 379 of file animation-interface.cc.
References m_started.
|
private |
Definition at line 425 of file animation-interface.cc.
References m_pendingLtePackets.
Referenced by LteRxTrace(), and LteSpectrumPhyRxStart().
|
private |
Definition at line 1363 of file animation-interface.cc.
References gAnimUid, GetAnimUidFromPacket(), GetNetDeviceFromContext(), ns3::AnimPacketInfo::GetRxInfo(), IsInTimeWindow(), LtePacketIsPending(), m_pendingLtePackets, m_started, ns3::Simulator::Now(), NS_ASSERT, NS_LOG_INFO, NS_LOG_WARN, OutputWirelessPacket(), ns3::AnimPacketInfo::ProcessRxBegin(), ns3::AnimPacketInfo::ProcessRxEnd(), and UpdatePosition().
Referenced by ConnectCallbacks().
|
private |
Definition at line 1418 of file animation-interface.cc.
References gAnimUid, GetAnimUidFromPacket(), GetNetDeviceFromContext(), ns3::AnimPacketInfo::GetRxInfo(), IsInTimeWindow(), list, LtePacketIsPending(), m_pendingLtePackets, m_started, ns3::Simulator::Now(), NS_ASSERT, NS_LOG_INFO, NS_LOG_WARN, OutputWirelessPacket(), ns3::AnimPacketInfo::ProcessRxBegin(), ns3::AnimPacketInfo::ProcessRxEnd(), and UpdatePosition().
Referenced by ConnectLteEnb(), and ConnectLteUe().
|
private |
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().
|
private |
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().
|
private |
Definition at line 1591 of file animation-interface.cc.
References ns3::Node::GetId(), GetPosition(), GetXMLClose(), GetXMLOpen_topology(), GetXMLOpenClose_node(), ns3::Simulator::IsFinished(), IsInTimeWindow(), m_f, m_mobilityPollInterval, m_started, m_topoMaxX, m_topoMaxY, m_topoMinX, m_topoMinY, NS_ASSERT, PurgePendingCsma(), PurgePendingLte(), PurgePendingWifi(), PurgePendingWimax(), RecalcTopoBounds(), ns3::Simulator::Schedule(), WriteDummyPacket(), WriteN(), ns3::Vector3D::x, and ns3::Vector3D::y.
Referenced by StartAnimation().
|
private |
Definition at line 1550 of file animation-interface.cc.
References ns3::Node::GetId(), GetPosition(), GetXMLClose(), GetXMLOpen_topology(), GetXMLOpenClose_node(), IsInTimeWindow(), m_f, m_started, m_topoMaxX, m_topoMaxY, m_topoMinX, m_topoMinY, nodeColors, NS_ASSERT, RecalcTopoBounds(), UpdatePosition(), WriteDummyPacket(), WriteN(), ns3::Vector3D::x, and ns3::Vector3D::y.
Referenced by ConnectCallbacks().
Definition at line 1576 of file animation-interface.cc.
References GetPosition(), ns3::Vector3D::x, and ns3::Vector3D::y.
Referenced by RecalcTopoBounds().
|
private |
Definition at line 1727 of file animation-interface.cc.
References GetPacketMetadata(), GetXMLOpenClose_p(), m_enablePacketMetadata, m_f, ns3::AnimRxInfo::m_fbRx, ns3::AnimPacketInfo::m_fbTx, ns3::AnimRxInfo::m_lbRx, ns3::AnimPacketInfo::m_lbTx, ns3::AnimRxInfo::m_rxnd, ns3::AnimPacketInfo::m_txnd, m_xml, NS_ASSERT, StartNewTraceFile(), and WriteN().
Referenced by CsmaMacRxTrace(), and CsmaPhyRxEndTrace().
|
private |
Definition at line 1708 of file animation-interface.cc.
References ns3::AnimPacketInfo::firstlastbitDelta, GetPacketMetadata(), GetXMLOpenClose_p(), m_enablePacketMetadata, m_f, ns3::AnimRxInfo::m_fbRx, ns3::AnimPacketInfo::m_fbTx, ns3::AnimRxInfo::m_lbRx, ns3::AnimRxInfo::m_rxnd, ns3::AnimPacketInfo::m_txnd, ns3::AnimPacketInfo::m_txNodeId, m_xml, NS_ASSERT, StartNewTraceFile(), and WriteN().
Referenced by LteRxTrace(), LteSpectrumPhyRxStart(), UanPhyGenRxTrace(), WifiMacRxTrace(), WifiPhyRxBeginTrace(), WifiPhyRxEndTrace(), and WimaxRxTrace().
|
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().
|
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().
|
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().
|
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().
|
private |
Definition at line 922 of file animation-interface.cc.
References m_topoMaxX, m_topoMaxY, m_topoMinX, m_topoMinY, ns3::Vector3D::x, and ns3::Vector3D::y.
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().
|
private |
Definition at line 125 of file animation-interface.cc.
References ns3::Socket::ERROR_NOROUTETOHOST, ns3::Ipv4Route::GetGateway(), ns3::Node::GetId(), ns3::NodeList::GetNode(), ns3::Object::GetObject(), ns3::Ipv4::GetRoutingProtocol(), m_ipv4ToNodeIdMap, NS_FATAL_ERROR, NS_LOG_DEBUG, NS_LOG_INFO, NS_LOG_WARN, and ns3::Ipv4Header::SetDestination().
Referenced by TrackIpv4RoutePaths().
|
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().
void ns3::AnimationInterface::ResetAnimWriteCallback | ( | ) |
Reset the write callback function.
Definition at line 390 of file animation-interface.cc.
References m_writeCallback.
Referenced by StopAnimation().
void ns3::AnimationInterface::SetAnimWriteCallback | ( | AnimWriteCallback | cb | ) |
Set a callback function to listen to AnimationInterface write events.
cb | Address of callback function |
Definition at line 385 of file animation-interface.cc.
References m_writeCallback.
|
static |
Helper function to set the topology boundary rectangle.
minX | X value of the lower left corner |
minY | Y value of the lower left corner |
maxX | X value of the upper right corner |
maxY | Y 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().
|
static |
Helper function to set Constant Position for a given node.
n | Ptr to the node |
x | X co-ordinate of the node |
y | Y co-ordinate of the node |
z | Z 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().
|
static |
Helper function to set the description for a link.
fromNode | Node Id of the "from Node" of the p2p link |
toNode | Node Id of the "to Node" of the p2p link |
linkDescription | Description of the link such as link bandwidth |
fromNodeDescription | Description at the "from Node" end such as IP address |
toNodeDescription | Description 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().
|
static |
Helper function to set the description for a link.
fromNode | Ptr to the "from Node" of the p2p link |
toNode | Ptr the "to Node" of the p2p link |
linkDescription | Description of the link such as link bandwidth |
fromNodeDescription | Description at the "from Node" end such as IP address |
toNodeDescription | Description 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().
void ns3::AnimationInterface::SetMobilityPollInterval | ( | Time | t | ) |
Set mobility poll interval:WARNING: setting a low interval can cause slowness.
t | Time interval between fetching mobility/position information Default: 0.25s |
Definition at line 430 of file animation-interface.cc.
References m_mobilityPollInterval.
|
static |
Helper function to set the node color.
n | Ptr to the node |
r | Red component value (0-255) |
g | Green component value (0-255) |
b | Blue 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().
|
static |
Helper function to set the color of nodes in a container.
nc | A Node Container of Nodes |
r | Red component value (0-255) |
g | Green component value (0-255) |
b | Blue component value (0-255) |
Definition at line 1817 of file animation-interface.cc.
References ns3::NodeContainer::Get(), ns3::NodeContainer::GetN(), NS_ASSERT, and SetNodeColor().
Helper function to set a brief description for a given node.
n | Ptr to the node |
descr | A 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().
|
static |
Helper function to set a brief description for nodes in a Node Container.
nc | NodeContainer containing the nodes |
descr | A 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.
|
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.
fn | The name of the output file. |
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().
void ns3::AnimationInterface::SetRandomPosition | ( | bool | setRandPos | ) |
Set random position if a Mobility Model does not exists for the node.
setRandPos | True 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.
|
private |
Definition at line 351 of file animation-interface.cc.
References m_routingF, and NS_FATAL_ERROR.
Referenced by EnableIpv4RouteTracking().
void ns3::AnimationInterface::SetStartTime | ( | Time | t | ) |
Specify the time at which capture should start.
t | The time at which AnimationInterface should begin capture of traffic info |
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.
t | The time at which AnimationInterface should stop capture of traffic info |
Definition at line 328 of file animation-interface.cc.
References m_stopTime.
|
private |
Specify that animation commands are to be written in XML format.
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.
nodeId | Id of the node |
show | Set 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().
Helper function to show/hide a node.
n | Ptr to the node |
show | Set to true to show node, set to false to hide |
Definition at line 1789 of file animation-interface.cc.
References ShowNode().
|
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.
restart | True 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().
|
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().
|
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().
|
private |
Definition at line 267 of file animation-interface.cc.
References ns3::NodeList::Begin(), ns3::NodeContainer::Begin(), ns3::NodeList::End(), ns3::NodeContainer::End(), ns3::Node::GetId(), GetIpv4RoutingTable(), ns3::NodeContainer::GetN(), GetXMLOpenClose_routing(), m_routingF, m_routingNc, m_routingPollInterval, m_routingStopTime, ns3::Simulator::Now(), NS_LOG_INFO, ns3::Simulator::Schedule(), TrackIpv4RoutePaths(), and WriteN().
Referenced by EnableIpv4RouteTracking().