Commit abccfc89 authored by Clemens Krug's avatar Clemens Krug
Browse files

Add basic analyzing and visualisation of disaster regions.

+ Disaster Regions can now be analyzed and visualized in a centralized way. All data is uploaded to the cloud and passed on to the analyzer.
parent 3dfacb41
......@@ -451,8 +451,6 @@ public class FiveGTopologyView extends AbstractTopologyView<CellLink> {
@Override
public long getBandwidth(boolean isBroadcast) {
// if(!isConnected()) return 0;
assert (apLinkData != null && supportsAccessPoints)
|| apLinkData == null;
return apLinkData != null ? apLinkData.getBandwidth(isUpload)
......@@ -461,8 +459,6 @@ public class FiveGTopologyView extends AbstractTopologyView<CellLink> {
@Override
public double getDropProbability() {
// if(!isConnected()) return 1;
assert (apLinkData != null && supportsAccessPoints)
|| apLinkData == null;
return apLinkData != null ? apLinkData.getDropProbability(isUpload)
......@@ -471,8 +467,6 @@ public class FiveGTopologyView extends AbstractTopologyView<CellLink> {
@Override
public long getLatency() {
// if(!isConnected()) return 9999;
assert (apLinkData != null && supportsAccessPoints)
|| apLinkData == null;
return apLinkData != null ? apLinkData.getLatency(isUpload)
......
......@@ -69,6 +69,7 @@ import de.tud.kom.p2psim.impl.topology.PositionVector;
import de.tud.kom.p2psim.impl.topology.views.visualization.ComponentVisManager;
import de.tud.kom.p2psim.impl.topology.views.visualization.ComponentVisManager.VisInfo;
import de.tud.kom.p2psim.impl.topology.views.visualization.ui.ComponentToggler;
import de.tud.kom.p2psim.impl.topology.views.visualization.ui.DisasterRegionView;
import de.tud.kom.p2psim.impl.topology.views.visualization.ui.PlottingView;
import de.tud.kom.p2psim.impl.topology.views.visualization.ui.SimControlPanel;
import de.tud.kom.p2psim.impl.topology.views.visualization.world.NodeVisInteractionListener;
......@@ -421,6 +422,11 @@ public class VisualizationTopologyView extends JFrame implements TopologyView,
return plottingViews.get(name);
}
public static DisasterRegionView createDisasterRegionView()
{
return new DisasterRegionView();
}
protected static void notifyInteractionListenersOnClick(long hostid,
boolean isActive) {
for (NodeVisInteractionListener listener : VisualizationInjector.interactionListeners) {
......
package de.tud.kom.p2psim.impl.topology.views.visualization.ui;
import de.tud.kom.p2psim.impl.topology.views.VisualizationTopologyView;
import de.tudarmstadt.maki.simonstrator.api.common.UniqueID;
import de.tudarmstadt.maki.simonstrator.api.component.sensor.location.Location;
import javax.swing.*;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.util.Map;
/**
* Visualisation of the desaster region analysing.
*
* @author Clemens Krug
*/
public class DisasterRegionView extends JFrame
{
private BufferedImage image;
public DisasterRegionView()
{
image = new BufferedImage(VisualizationTopologyView.VisualizationInjector.getWorldX(),
VisualizationTopologyView.VisualizationInjector.getWorldY(), BufferedImage.TYPE_INT_ARGB);
JComponent comp = new JComponent()
{
@Override
protected void paintComponent(Graphics g)
{
super.paintComponent(g);
Graphics2D g2 = (Graphics2D) g;
g2.drawImage(image, 0, 0, null);
}
};
comp.setPreferredSize(new Dimension(VisualizationTopologyView.VisualizationInjector.getWorldX(),
VisualizationTopologyView.VisualizationInjector.getWorldY()));
JScrollPane scrollPanel = new JScrollPane(comp,
ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS,
ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
scrollPanel.setPreferredSize(new Dimension(800, 600));
getContentPane().add(scrollPanel);
pack();
setVisible(true);
}
public void onDataUpdated(Map<UniqueID, Location> locations)
{
Graphics2D g2 = (Graphics2D) image.getGraphics();
g2.setColor(Color.BLACK);
locations.values().stream().forEach(l -> g2.drawOval((int)l.getLongitude(), (int)l.getLatitude(), 5, 5));
repaint();
}
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment