Node of the PLC graph. More...
#include <plc-node.h>
Public Member Functions | |
Vector3D | GetPosition (void) |
void | SetPosition (Vector3D pos) |
void | SetPosition (double pos_x, double pos_y, double pos_z) |
void | SetImpedance (Ptr< PLC_Impedance > impedance) |
Ptr< PLC_Impedance > | GetImpedancePtr (void) |
PLC_Impedance * | GetImpedancePeekPtr (void) const |
unsigned int | GetVertexId (void) |
Ptr< PLC_Outlet > | GetOutlet (void) |
PLC_Outlet * | GetOutletPeekPtr (void) |
bool | HasOutlet (void) |
bool | IsOpenCircuit (void) |
void | OpenCircuit (void) |
void | CloseCircuit (void) |
void | AddEdge (Ptr< PLC_Node > to, Ptr< PLC_Edge > edge) |
size_t | GetNumEdges (void) |
PLC_Edge * | GetEdge (PLC_Node *node) |
PLC_NodeOutEdgesMap | GetEdges (void) |
void | AssociateBackboneBranch (Ptr< PLC_BackboneBranch > backboneBranch) |
PLC_NodeOutEdgesMap::iterator | OutEdgesBegin (void) |
PLC_NodeOutEdgesMap::iterator | OutEdgesEnd (void) |
void | SetName (std::string name) |
std::string | GetName (void) |
void | Lock (void) |
void | Unlock (void) |
bool | IsTimeVariant (void) |
Ptr< PLC_Graph > | GetGraph (void) |
Ptr< PLC_Channel > | GetChannel (void) |
void | SetGraph (Ptr< PLC_Graph > graph) |
void | SetOutlet (Ptr< PLC_Outlet > outlet) |
Static Public Member Functions | |
static TypeId | GetTypeId (void) |
static uint64_t | GetImpedanceHashSum (void) |
Protected Member Functions | |
virtual void | DoStart (void) |
virtual void | DoDispose (void) |
Protected Attributes | |
Vector3D | m_position |
PLC_Mutex | m_node_mutex |
unsigned int | m_vertex_id |
bool | m_open_circuit |
Ptr< PLC_Graph > | m_graph |
Ptr< PLC_Impedance > | m_impedance |
Ptr< PLC_Outlet > | m_outlet |
PLC_NodeOutEdgesMap | m_edges |
std::set< Ptr < PLC_BackboneBranch > > | m_associated_backbone_branches |
std::string | m_name |
Static Protected Attributes | |
static uint64_t | m_impedance_hash_sum = 0 |
Friends | |
class | PLC_Graph |
class | PLC_Outlet |
Node of the PLC graph.
In order to calculate the transmission channels of the PLC network an undirected graph will be constructed. This class defines the graph nodes which are used as an abstract representation of network components, e.g. impedances, outlets, branches, etc.
void ns3::PLC_Node::AddEdge | ( | Ptr< PLC_Node > | to, |
Ptr< PLC_Edge > | edge | ||
) |
Links an edge to the node. An edge represents a two port network (e.g. a cable or transformer instance so far)
to | destination node |
edge | instance |
void ns3::PLC_Node::AssociateBackboneBranch | ( | Ptr< PLC_BackboneBranch > | backboneBranch | ) |
associates an instance of a backbone branch to this node. A reference to the backbone branches is needed by PLC_Outlet to set them out of date in case of an impedance change
pointer | to the backbone branch |
void ns3::PLC_Node::CloseCircuit | ( | void | ) |
reconnects the impedance to the circuit if existing
Ptr< PLC_Channel > ns3::PLC_Node::GetChannel | ( | void | ) |
PLC_Edge * ns3::PLC_Node::GetEdge | ( | PLC_Node * | node | ) |
node |
PLC_NodeOutEdgesMap ns3::PLC_Node::GetEdges | ( | void | ) |
Ptr<PLC_Graph> ns3::PLC_Node::GetGraph | ( | void | ) | [inline] |
PLC_Impedance* ns3::PLC_Node::GetImpedancePeekPtr | ( | void | ) | const [inline] |
Ptr<PLC_Impedance> ns3::PLC_Node::GetImpedancePtr | ( | void | ) | [inline] |
std::string ns3::PLC_Node::GetName | ( | void | ) | [inline] |
Get the assigned name of the node
size_t ns3::PLC_Node::GetNumEdges | ( | void | ) | [inline] |
Ptr<PLC_Outlet> ns3::PLC_Node::GetOutlet | ( | void | ) | [inline] |
PLC_Outlet * ns3::PLC_Node::GetOutletPeekPtr | ( | void | ) |
Vector3D ns3::PLC_Node::GetPosition | ( | void | ) | [inline] |
unsigned int ns3::PLC_Node::GetVertexId | ( | void | ) | [inline] |
bool ns3::PLC_Node::HasOutlet | ( | void | ) | [inline] |
bool ns3::PLC_Node::IsOpenCircuit | ( | void | ) | [inline] |
bool ns3::PLC_Node::IsTimeVariant | ( | void | ) |
void ns3::PLC_Node::Lock | ( | void | ) | [inline] |
Locks the mutex of this node
void ns3::PLC_Node::OpenCircuit | ( | void | ) | [inline] |
disconnects a contigent impedance
PLC_NodeOutEdgesMap::iterator ns3::PLC_Node::OutEdgesBegin | ( | void | ) | [inline] |
PLC_NodeOutEdgesMap::iterator ns3::PLC_Node::OutEdgesEnd | ( | void | ) | [inline] |
void ns3::PLC_Node::SetGraph | ( | Ptr< PLC_Graph > | graph | ) |
graph | set the graph |
void ns3::PLC_Node::SetImpedance | ( | Ptr< PLC_Impedance > | impedance | ) |
Connect an impedance in parallel to all two wire transission lines linked to this node
impedance |
void ns3::PLC_Node::SetName | ( | std::string | name | ) | [inline] |
Assign a name to the node
name |
void ns3::PLC_Node::SetOutlet | ( | Ptr< PLC_Outlet > | outlet | ) |
allocates outlet to the node
outlet |
void ns3::PLC_Node::SetPosition | ( | Vector3D | pos | ) | [inline] |
pos | position to be assigned to the node |
void ns3::PLC_Node::SetPosition | ( | double | pos_x, |
double | pos_y, | ||
double | pos_z | ||
) |
pos_x | x coordinate |
pos_y | y coordinate |
pos_z | z coordinate |
void ns3::PLC_Node::Unlock | ( | void | ) | [inline] |
Unlocks the mutex of this node