INET Framework for OMNeT++/OMNEST
inet::visualizer::Ieee80211CanvasVisualizer Class Reference

#include <Ieee80211CanvasVisualizer.h>

Inheritance diagram for inet::visualizer::Ieee80211CanvasVisualizer:
inet::visualizer::Ieee80211VisualizerBase inet::visualizer::VisualizerBase

Classes

class  Ieee80211CanvasVisualization
 

Protected Member Functions

virtual void initialize (int stage) override
 
virtual void refreshDisplay () const override
 
virtual Ieee80211VisualizationcreateIeee80211Visualization (cModule *networkNode, NetworkInterface *networkInterface, std::string ssid, W power) override
 
virtual void addIeee80211Visualization (const Ieee80211Visualization *ieee80211Visualization) override
 
virtual void removeIeee80211Visualization (const Ieee80211Visualization *ieee80211Visualization) override
 
- Protected Member Functions inherited from inet::visualizer::Ieee80211VisualizerBase
virtual void handleParameterChange (const char *name) override
 
virtual void preDelete (cComponent *root) override
 
virtual void subscribe ()
 
virtual void unsubscribe ()
 
virtual const Ieee80211VisualizationgetIeee80211Visualization (cModule *networkNode, NetworkInterface *networkInterface)
 
virtual void removeAllIeee80211Visualizations ()
 
virtual std::string getIcon (W power) const
 
- Protected Member Functions inherited from inet::visualizer::VisualizerBase
virtual int numInitStages () const override
 
virtual Coord getPosition (const cModule *networkNode) const
 
virtual Coord getContactPosition (const cModule *networkNode, const Coord &fromPosition, const char *contactMode, double contactSpacing) const
 
virtual Quaternion getOrientation (const cModule *networkNode) const
 
virtual void mapChunks (const Ptr< const Chunk > &chunk, const std::function< void(const Ptr< const Chunk > &, int)> &thunk) const
 

Protected Attributes

double zIndex = NaN
 
ModuleRefByPar< NetworkNodeCanvasVisualizernetworkNodeVisualizer
 
- Protected Attributes inherited from inet::visualizer::Ieee80211VisualizerBase
bool displayAssociations = false
 
NetworkNodeFilter nodeFilter
 
InterfaceFilter interfaceFilter
 
double minPowerDbm = NaN
 
double maxPowerDbm = NaN
 
std::vector< std::string > icons
 
ColorSet iconColorSet
 
cFigure::Font labelFont
 
cFigure::Color labelColor
 
Placement placementHint
 
double placementPriority
 
std::map< std::pair< int, int >, const Ieee80211Visualization * > ieee80211Visualizations
 
- Protected Attributes inherited from inet::visualizer::VisualizerBase
cModule * visualizationTargetModule = nullptr
 
cModule * visualizationSubjectModule = nullptr
 
const char * tags = nullptr
 

Additional Inherited Members

- Public Member Functions inherited from inet::visualizer::Ieee80211VisualizerBase
virtual void receiveSignal (cComponent *source, simsignal_t signal, cObject *object, cObject *details) override
 

Member Function Documentation

◆ addIeee80211Visualization()

void inet::visualizer::Ieee80211CanvasVisualizer::addIeee80211Visualization ( const Ieee80211Visualization ieee80211Visualization)
overrideprotectedvirtual

Reimplemented from inet::visualizer::Ieee80211VisualizerBase.

94 {
96  auto ieee80211CanvasVisualization = static_cast<const Ieee80211CanvasVisualization *>(ieee80211Visualization);
97  ieee80211CanvasVisualization->networkNodeVisualization->addAnnotation(ieee80211CanvasVisualization->figure, ieee80211CanvasVisualization->figure->getBounds().getSize(), placementHint, placementPriority);
98 }

◆ createIeee80211Visualization()

Ieee80211VisualizerBase::Ieee80211Visualization * inet::visualizer::Ieee80211CanvasVisualizer::createIeee80211Visualization ( cModule *  networkNode,
NetworkInterface networkInterface,
std::string  ssid,
W  power 
)
overrideprotectedvirtual

Implements inet::visualizer::Ieee80211VisualizerBase.

71 {
72  std::string icon = getIcon(power);
73  auto labeledIconFigure = new LabeledIconFigure("ieee80211Association");
74  labeledIconFigure->setTags((std::string("ieee80211_association ") + tags).c_str());
75  labeledIconFigure->setAssociatedObject(networkInterface);
76  labeledIconFigure->setZIndex(zIndex);
77  auto iconFigure = labeledIconFigure->getIconFigure();
78  iconFigure->setTooltip("This icon represents an IEEE 802.11 association");
79  iconFigure->setImageName(icon.substr(0, icon.find_first_of(".")).c_str());
80  std::hash<std::string> hasher;
81  iconFigure->setTintColor(iconColorSet.getColor(hasher(ssid)));
82  iconFigure->setTintAmount(1);
83  auto labelFigure = labeledIconFigure->getLabelFigure();
84  labelFigure->setTooltip("This label represents the SSID of an IEEE 802.11 association");
85  labelFigure->setFont(labelFont);
86  labelFigure->setColor(labelColor);
87  labelFigure->setText(ssid.c_str());
88  labelFigure->setPosition(iconFigure->getBounds().getSize() / 2);
89  auto networkNodeVisualization = networkNodeVisualizer->getNetworkNodeVisualization(networkNode);
90  return new Ieee80211CanvasVisualization(networkNodeVisualization, labeledIconFigure, networkNode->getId(), networkInterface->getInterfaceId());
91 }

◆ initialize()

void inet::visualizer::Ieee80211CanvasVisualizer::initialize ( int  stage)
overrideprotectedvirtual

Reimplemented from inet::visualizer::Ieee80211VisualizerBase.

36 {
38  if (!hasGUI()) return;
39  if (stage == INITSTAGE_LOCAL) {
40  zIndex = par("zIndex");
41  networkNodeVisualizer.reference(this, "networkNodeVisualizerModule", true);
42  }
43 }

◆ refreshDisplay()

void inet::visualizer::Ieee80211CanvasVisualizer::refreshDisplay ( ) const
overrideprotectedvirtual
46 {
47 #ifdef INET_WITH_IEEE80211
48  auto simulation = getSimulation();
49  for (auto& entry : ieee80211Visualizations) {
50  auto networkNode = simulation->getModule(entry.second->networkNodeId);
51  if (networkNode != nullptr) {
52  L3AddressResolver addressResolver;
53  auto interfaceTable = addressResolver.findInterfaceTableOf(networkNode);
54  if (interfaceTable != nullptr) {
55  auto networkInterface = interfaceTable->getInterfaceById(entry.second->interfaceId);
56  auto mgmt = dynamic_cast<inet::ieee80211::Ieee80211MgmtSta *>(networkInterface->getSubmodule("mgmt"));
57  if (mgmt != nullptr) {
58  auto apInfo = mgmt->getAssociatedAp();
59  std::string icon = getIcon(W(apInfo->rxPower));
60  auto canvasVisualization = check_and_cast<const Ieee80211CanvasVisualization *>(entry.second);
61  auto iconFigure = check_and_cast<LabeledIconFigure *>(canvasVisualization->figure)->getIconFigure();
62  iconFigure->setImageName(icon.substr(0, icon.find_first_of(".")).c_str());
63  }
64  }
65  }
66  }
67 #endif
68 }

◆ removeIeee80211Visualization()

void inet::visualizer::Ieee80211CanvasVisualizer::removeIeee80211Visualization ( const Ieee80211Visualization ieee80211Visualization)
overrideprotectedvirtual

Reimplemented from inet::visualizer::Ieee80211VisualizerBase.

101 {
103  auto ieee80211CanvasVisualization = static_cast<const Ieee80211CanvasVisualization *>(ieee80211Visualization);
104  if (networkNodeVisualizer != nullptr)
105  ieee80211CanvasVisualization->networkNodeVisualization->removeAnnotation(ieee80211CanvasVisualization->figure);
106 }

Member Data Documentation

◆ networkNodeVisualizer

ModuleRefByPar<NetworkNodeCanvasVisualizer> inet::visualizer::Ieee80211CanvasVisualizer::networkNodeVisualizer
protected

◆ zIndex

double inet::visualizer::Ieee80211CanvasVisualizer::zIndex = NaN
protected

The documentation for this class was generated from the following files:
inet::visualizer::Ieee80211VisualizerBase::addIeee80211Visualization
virtual void addIeee80211Visualization(const Ieee80211Visualization *ieee80211Visualization)
Definition: Ieee80211VisualizerBase.cc:98
inet::visualizer::Ieee80211VisualizerBase::getIcon
virtual std::string getIcon(W power) const
Definition: Ieee80211VisualizerBase.cc:177
inet::visualizer::Ieee80211CanvasVisualizer::networkNodeVisualizer
ModuleRefByPar< NetworkNodeCanvasVisualizer > networkNodeVisualizer
Definition: Ieee80211CanvasVisualizer.h:35
inet::units::units::W
compose< J, pow< s, -1 > > W
Definition: Units.h:939
inet::visualizer::Ieee80211VisualizerBase::placementPriority
double placementPriority
Definition: Ieee80211VisualizerBase.h:48
inet::visualizer::Ieee80211VisualizerBase::ieee80211Visualizations
std::map< std::pair< int, int >, const Ieee80211Visualization * > ieee80211Visualizations
Definition: Ieee80211VisualizerBase.h:51
inet::visualizer::Ieee80211CanvasVisualizer::zIndex
double zIndex
Definition: Ieee80211CanvasVisualizer.h:34
inet::visualizer::Ieee80211VisualizerBase::labelFont
cFigure::Font labelFont
Definition: Ieee80211VisualizerBase.h:45
inet::visualizer::Ieee80211VisualizerBase::iconColorSet
ColorSet iconColorSet
Definition: Ieee80211VisualizerBase.h:44
inet::visualizer::Ieee80211VisualizerBase::removeIeee80211Visualization
virtual void removeIeee80211Visualization(const Ieee80211Visualization *ieee80211Visualization)
Definition: Ieee80211VisualizerBase.cc:104
inet::ieee80211::Ieee80211MgmtSta::getAssociatedAp
virtual const ApInfo * getAssociatedAp()
Definition: Ieee80211MgmtSta.h:100
inet::INITSTAGE_LOCAL
INET_API InitStage INITSTAGE_LOCAL
Initialization of local state that don't use or affect other modules includes:
inet::visualizer::Ieee80211VisualizerBase::placementHint
Placement placementHint
Definition: Ieee80211VisualizerBase.h:47
inet::ieee80211::Ieee80211MgmtSta
Used in 802.11 infrastructure mode: handles management frames for a station (STA).
Definition: Ieee80211MgmtSta.h:25
inet::visualizer::Ieee80211VisualizerBase::initialize
virtual void initialize(int stage) override
Definition: Ieee80211VisualizerBase.cc:35
inet::visualizer::VisualizerBase::tags
const char * tags
Definition: VisualizerBase.h:27
inet::visualizer::Ieee80211VisualizerBase::labelColor
cFigure::Color labelColor
Definition: Ieee80211VisualizerBase.h:46
inet::visualizer::ColorSet::getColor
cFigure::Color getColor(int index) const
Definition: ColorSet.cc:33