Commit 0c80da45 authored by Björn Richerzhagen's avatar Björn Richerzhagen
Browse files

Removed deprecated `Position`-Interface

parent db566de9
......@@ -20,8 +20,6 @@
package de.tud.kom.p2psim.impl.topology.movement.modular;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedHashMap;
import java.util.LinkedHashSet;
import java.util.List;
......@@ -32,13 +30,13 @@ import java.util.Set;
import java.util.Vector;
import de.tud.kom.p2psim.api.scenario.ConfigurationException;
import de.tud.kom.p2psim.api.topology.Topology;
import de.tud.kom.p2psim.api.topology.movement.MovementListener;
import de.tud.kom.p2psim.api.topology.movement.MovementModel;
import de.tud.kom.p2psim.api.topology.movement.MovementSupported;
import de.tud.kom.p2psim.api.topology.movement.local.LocalMovementStrategy;
import de.tud.kom.p2psim.impl.simengine.Simulator;
import de.tud.kom.p2psim.impl.topology.PositionVector;
import de.tud.kom.p2psim.impl.topology.Topology;
import de.tud.kom.p2psim.impl.topology.movement.AbstractWaypointMovementModel;
import de.tud.kom.p2psim.impl.topology.movement.CsvMovement;
import de.tud.kom.p2psim.impl.topology.movement.NoMovement;
......@@ -49,6 +47,7 @@ import de.tud.kom.p2psim.impl.topology.movement.modular.transition.FixedAssignme
import de.tud.kom.p2psim.impl.topology.movement.modular.transition.TransitionStrategy;
import de.tud.kom.p2psim.impl.topology.views.VisualizationTopologyView.VisualizationInjector;
import de.tud.kom.p2psim.impl.util.Either;
import de.tudarmstadt.maki.simonstrator.api.Binder;
import de.tudarmstadt.maki.simonstrator.api.Event;
import de.tudarmstadt.maki.simonstrator.api.EventHandler;
import de.tudarmstadt.maki.simonstrator.api.Randoms;
......@@ -118,7 +117,8 @@ public class ModularMovementModel implements MovementModel, EventHandler {
private Random rand;
public ModularMovementModel() {
this.worldDimensions = Topology.getWorldDimension();
this.worldDimensions = Binder.getComponentOrNull(Topology.class)
.getWorldDimensions();
this.rand = Randoms.getRandom(ModularMovementModel.class);
// scheduling initalization!
......@@ -146,14 +146,15 @@ public class ModularMovementModel implements MovementModel, EventHandler {
}
// setWayPointModel
localMovementStrategy.setObstacleModel(Topology.getTopology()
.getObstacleModel());
localMovementStrategy.setWaypointModel(Topology.getTopology()
.getWaypointModel());
localMovementStrategy.setObstacleModel(Binder
.getComponentOrNull(Topology.class).getObstacleModel());
localMovementStrategy.setWaypointModel(Binder
.getComponentOrNull(Topology.class).getWaypointModel());
if (movementModel instanceof AbstractWaypointMovementModel) {
AbstractWaypointMovementModel awmm = (AbstractWaypointMovementModel) movementModel;
awmm.setWaypointModel(Topology.getTopology().getWaypointModel());
awmm.setWaypointModel(Binder.getComponentOrNull(Topology.class)
.getWaypointModel());
}
List<AttractionPoint> attractionPoints = attractionGenerator
......@@ -194,7 +195,8 @@ public class ModularMovementModel implements MovementModel, EventHandler {
"AttractionGenerator is missing in ModularMovementModel!");
}
if (movementModel instanceof AbstractWaypointMovementModel
&& Topology.getTopology().getWaypointModel() == null) {
&& Binder.getComponentOrNull(Topology.class)
.getWaypointModel() == null) {
throw new ConfigurationException(
"Missing WaypointModel for the ModuloarMovementModel.movementModel");
}
......
......@@ -26,8 +26,9 @@ import java.io.IOException;
import java.util.LinkedList;
import java.util.List;
import de.tud.kom.p2psim.api.topology.Topology;
import de.tud.kom.p2psim.impl.topology.PositionVector;
import de.tud.kom.p2psim.impl.topology.Topology;
import de.tudarmstadt.maki.simonstrator.api.Binder;
import de.tudarmstadt.maki.simonstrator.api.util.XMLConfigurableConstructor;
/**
......@@ -57,7 +58,8 @@ public class CsvAttractionGenerator implements AttractionGenerator {
*/
@XMLConfigurableConstructor({ "placementFile" })
public CsvAttractionGenerator(String placementFile) {
this.worldDimensions = Topology.getWorldDimension();
this.worldDimensions = Binder.getComponentOrNull(Topology.class)
.getWorldDimensions();
attractionPointsPositions = new LinkedList<PositionVector>();
this.file = placementFile;
}
......
......@@ -25,8 +25,9 @@ import java.util.Random;
import java.util.Vector;
import de.tud.kom.p2psim.api.scenario.ConfigurationException;
import de.tud.kom.p2psim.api.topology.Topology;
import de.tud.kom.p2psim.impl.topology.PositionVector;
import de.tud.kom.p2psim.impl.topology.Topology;
import de.tudarmstadt.maki.simonstrator.api.Binder;
import de.tudarmstadt.maki.simonstrator.api.Randoms;
/**
......@@ -54,7 +55,8 @@ public class RandomAttractionGenerator implements AttractionGenerator {
public RandomAttractionGenerator() {
this.rand = Randoms.getRandom(RandomAttractionGenerator.class);
this.worldDimension = Topology.getWorldDimension();
this.worldDimension = Binder.getComponentOrNull(Topology.class)
.getWorldDimensions();
}
@Override
......
......@@ -36,12 +36,13 @@ import java.util.Vector;
import de.tud.kom.p2psim.api.common.SimHost;
import de.tud.kom.p2psim.api.common.SimHostComponent;
import de.tud.kom.p2psim.api.scenario.ConfigurationException;
import de.tud.kom.p2psim.api.topology.Topology;
import de.tud.kom.p2psim.api.topology.movement.MovementSupported;
import de.tud.kom.p2psim.api.topology.social.SocialView;
import de.tud.kom.p2psim.impl.simengine.Simulator;
import de.tud.kom.p2psim.impl.topology.PositionVector;
import de.tud.kom.p2psim.impl.topology.Topology;
import de.tud.kom.p2psim.impl.topology.movement.modular.attraction.AttractionPoint;
import de.tudarmstadt.maki.simonstrator.api.Binder;
import de.tudarmstadt.maki.simonstrator.api.Event;
import de.tudarmstadt.maki.simonstrator.api.EventHandler;
import de.tudarmstadt.maki.simonstrator.api.Randoms;
......@@ -121,7 +122,8 @@ public class SocialTransitionStrategy implements TransitionStrategy,
"SocialId is not set, to find the needed SocialView!");
}
socialView = Topology.getTopology().getSocialView(socialId);
socialView = Binder.getComponentOrNull(Topology.class)
.getSocialView(socialId);
if (socialView == null) {
throw new ConfigurationException(
......@@ -133,7 +135,8 @@ public class SocialTransitionStrategy implements TransitionStrategy,
"MinPauseTime should be smaller then maxPauseTime.");
}
worldDimension = Topology.getWorldDimension();
worldDimension = Binder.getComponentOrNull(Topology.class)
.getWorldDimensions();
init = true;
}
}
......@@ -163,8 +166,9 @@ public class SocialTransitionStrategy implements TransitionStrategy,
// assignment..
AttractionPoint nearest = aPoints.iterator().next();
for (AttractionPoint aPoint : aPoints) {
if (nearest.getRealPosition().getDistance(ms.getRealPosition()) > aPoint
.getRealPosition().getDistance(ms.getRealPosition())) {
if (nearest.getRealPosition()
.distanceTo(ms.getRealPosition()) > aPoint.getRealPosition()
.distanceTo(ms.getRealPosition())) {
nearest = aPoint;
}
}
......@@ -242,7 +246,7 @@ public class SocialTransitionStrategy implements TransitionStrategy,
List<AttractionPoint> apFavorites, List<AttractionPoint> apFriends,
List<AttractionPoint> apClusters, List<AttractionPoint> apRandom) {
double distance = ms.getRealPosition()
.getDistance(ap.getRealPosition());
.distanceTo(ap.getRealPosition());
double distanceScore = 1 - (distance / worldDimension.getLength());
double clusterScore = 0;
......@@ -354,8 +358,9 @@ public class SocialTransitionStrategy implements TransitionStrategy,
AttractionPoint nearest = aps.iterator().next();
for (AttractionPoint aPoint : aps) {
if (nearest.getRealPosition().getDistance(ms.getRealPosition()) > aPoint
.getRealPosition().getDistance(ms.getRealPosition())
if (nearest.getRealPosition()
.distanceTo(ms.getRealPosition()) > aPoint.getRealPosition()
.distanceTo(ms.getRealPosition())
&& !assignments.get(ms).equals(aPoint)) {
nearest = aPoint;
}
......@@ -368,8 +373,9 @@ public class SocialTransitionStrategy implements TransitionStrategy,
AttractionPoint nearest = fps.iterator().next();
for (AttractionPoint aPoint : fps) {
if (nearest.getRealPosition().getDistance(ms.getRealPosition()) > aPoint
.getRealPosition().getDistance(ms.getRealPosition())
if (nearest.getRealPosition()
.distanceTo(ms.getRealPosition()) > aPoint.getRealPosition()
.distanceTo(ms.getRealPosition())
&& !assignments.get(ms).equals(aPoint)) {
nearest = aPoint;
}
......
......@@ -20,8 +20,9 @@
package de.tud.kom.p2psim.impl.topology.movement.modularosm;
import de.tud.kom.p2psim.impl.topology.Topology;
import de.tud.kom.p2psim.api.topology.Topology;
import de.tud.kom.p2psim.impl.topology.views.VisualizationTopologyView.VisualizationInjector;
import de.tudarmstadt.maki.simonstrator.api.Binder;
/**
*
......@@ -31,15 +32,18 @@ import de.tud.kom.p2psim.impl.topology.views.VisualizationTopologyView.Visualiza
public class GPSCalculation {
private static double latCenter;
private static double lonCenter;
private static int zoom;
private static double scaleFactor;
public GPSCalculation() {
}
private void setScaleFactor() {
//this.scaleFactor = Math.pow(2.0d, (13 - zoom));
// this.scaleFactor = Math.pow(2.0d, (13 - zoom));
/*
* BR: set scaleFactor to fixed zoom level 15 ==> 0.125 (as in this
* case, 1px == 1m) - this way, the world-size specified in the configs
......@@ -63,23 +67,27 @@ public class GPSCalculation {
}
public static double getLatUpper() {
return latCenter + scaleFactor * 0.027613
* Topology.getWorldDimension().getX() / 1000;
return latCenter + scaleFactor * 0.027613 * Binder
.getComponentOrNull(Topology.class).getWorldDimensions().getX()
/ 1000;
}
public static double getLatLower() {
return latCenter - scaleFactor * 0.027613
* Topology.getWorldDimension().getX() / 1000;
return latCenter - scaleFactor * 0.027613 * Binder
.getComponentOrNull(Topology.class).getWorldDimensions().getX()
/ 1000;
}
public static double getLonLeft() {
return lonCenter - scaleFactor * 0.0419232
* Topology.getWorldDimension().getY() / 1000;
return lonCenter - scaleFactor * 0.0419232 * Binder
.getComponentOrNull(Topology.class).getWorldDimensions().getY()
/ 1000;
}
public static double getLonRight() {
return lonCenter + scaleFactor * 0.0419232
* Topology.getWorldDimension().getY() / 1000;
return lonCenter + scaleFactor * 0.0419232 * Binder
.getComponentOrNull(Topology.class).getWorldDimensions().getY()
/ 1000;
}
public void setLatCenter(double latCenter) {
......
......@@ -32,19 +32,21 @@ import java.util.Vector;
import javax.swing.JComponent;
import de.tud.kom.p2psim.api.scenario.ConfigurationException;
import de.tud.kom.p2psim.api.topology.Topology;
import de.tud.kom.p2psim.api.topology.movement.MovementListener;
import de.tud.kom.p2psim.api.topology.movement.MovementModel;
import de.tud.kom.p2psim.api.topology.movement.MovementSupported;
import de.tud.kom.p2psim.api.topology.movement.local.LocalMovementStrategy;
import de.tud.kom.p2psim.impl.simengine.Simulator;
import de.tud.kom.p2psim.impl.topology.PositionVector;
import de.tud.kom.p2psim.impl.topology.Topology;
import de.tud.kom.p2psim.impl.topology.movement.modularosm.attraction.IAttractionGenerator;
import de.tud.kom.p2psim.impl.topology.movement.modular.transition.TransitionStrategy;
import de.tud.kom.p2psim.impl.topology.movement.modularosm.attraction.AttractionPoint;
import de.tud.kom.p2psim.impl.topology.movement.modularosm.attraction.IAttractionGenerator;
import de.tud.kom.p2psim.impl.topology.movement.modularosm.mapvisualization.IMapVisualization;
import de.tud.kom.p2psim.impl.topology.movement.modularosm.transition.ITransitionStrategy;
import de.tud.kom.p2psim.impl.topology.views.VisualizationTopologyView.VisualizationInjector;
import de.tud.kom.p2psim.impl.util.Either;
import de.tudarmstadt.maki.simonstrator.api.Binder;
import de.tudarmstadt.maki.simonstrator.api.Event;
import de.tudarmstadt.maki.simonstrator.api.EventHandler;
import de.tudarmstadt.maki.simonstrator.api.Randoms;
......@@ -113,7 +115,8 @@ public class ModularMovementModel implements MovementModel, EventHandler {
private Random rand;
public ModularMovementModel() {
this.worldDimensions = Topology.getWorldDimension();
this.worldDimensions = Binder.getComponentOrNull(Topology.class)
.getWorldDimensions();
this.rand = Randoms.getRandom(ModularMovementModel.class);
// scheduling initalization!
......@@ -136,10 +139,10 @@ public class ModularMovementModel implements MovementModel, EventHandler {
checkConfiguration();
// setWayPointModel
localMovementStrategy.setObstacleModel(Topology.getTopology()
.getObstacleModel());
localMovementStrategy.setWaypointModel(Topology.getTopology()
.getWaypointModel());
localMovementStrategy.setObstacleModel(Binder
.getComponentOrNull(Topology.class).getObstacleModel());
localMovementStrategy.setWaypointModel(Binder
.getComponentOrNull(Topology.class).getWaypointModel());
List<AttractionPoint> attractionPoints = attractionGenerator.getAttractionPoints();
transition.setAttractionPoints(attractionPoints);
......
......@@ -31,9 +31,10 @@ import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import de.tud.kom.p2psim.api.topology.Topology;
import de.tud.kom.p2psim.impl.topology.PositionVector;
import de.tud.kom.p2psim.impl.topology.Topology;
import de.tud.kom.p2psim.impl.topology.movement.modularosm.GPSCalculation;
import de.tudarmstadt.maki.simonstrator.api.Binder;
/**
* Generates attraction points out of real data from osm
......@@ -62,7 +63,8 @@ public class JSONAttractionGenerator implements IAttractionGenerator {
http://overpass-api.de/api/interpreter?data=%5Bout:json%5D;node%5Bamenity=bar%5D%2849%2E4813%2C8%2E5590%2C49%2E9088%2C8%2E7736%29%3Bout%3B
*/
public JSONAttractionGenerator() {
this.worldDimensions = Topology.getWorldDimension();
this.worldDimensions = Binder.getComponentOrNull(Topology.class)
.getWorldDimensions();
attractionPoints = new LinkedList<AttractionPoint>();
latLeft = GPSCalculation.getLatLower();
......
......@@ -36,9 +36,10 @@ import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import de.tud.kom.p2psim.api.topology.Topology;
import de.tud.kom.p2psim.impl.topology.PositionVector;
import de.tud.kom.p2psim.impl.topology.Topology;
import de.tud.kom.p2psim.impl.topology.movement.modularosm.GPSCalculation;
import de.tudarmstadt.maki.simonstrator.api.Binder;
/**
* Generates attraction points out of real data from osm
......@@ -65,7 +66,8 @@ public class OnlineJSONAttractionGenerator implements IAttractionGenerator {
private double lonRight; //Values from -180 to 180
public OnlineJSONAttractionGenerator() {
this.worldDimensions = Topology.getWorldDimension();
this.worldDimensions = Binder.getComponentOrNull(Topology.class)
.getWorldDimensions();
attractionPoints = new LinkedList<AttractionPoint>();
latLeft = GPSCalculation.getLatLower();
......
......@@ -36,12 +36,14 @@ import java.util.Vector;
import de.tud.kom.p2psim.api.common.SimHost;
import de.tud.kom.p2psim.api.common.SimHostComponent;
import de.tud.kom.p2psim.api.scenario.ConfigurationException;
import de.tud.kom.p2psim.api.topology.Topology;
import de.tud.kom.p2psim.api.topology.movement.MovementSupported;
import de.tud.kom.p2psim.api.topology.social.SocialView;
import de.tud.kom.p2psim.impl.simengine.Simulator;
import de.tud.kom.p2psim.impl.topology.PositionVector;
import de.tud.kom.p2psim.impl.topology.Topology;
import de.tud.kom.p2psim.impl.topology.movement.modular.transition.TransitionStrategy;
import de.tud.kom.p2psim.impl.topology.movement.modularosm.attraction.AttractionPoint;
import de.tudarmstadt.maki.simonstrator.api.Binder;
import de.tudarmstadt.maki.simonstrator.api.Event;
import de.tudarmstadt.maki.simonstrator.api.EventHandler;
import de.tudarmstadt.maki.simonstrator.api.Randoms;
......@@ -121,7 +123,8 @@ public class SocialTransitionStrategy implements ITransitionStrategy,
"SocialId is not set, to find the needed SocialView!");
}
socialView = Topology.getTopology().getSocialView(socialId);
socialView = Binder.getComponentOrNull(Topology.class)
.getSocialView(socialId);
if (socialView == null) {
throw new ConfigurationException(
......@@ -133,7 +136,8 @@ public class SocialTransitionStrategy implements ITransitionStrategy,
"MinPauseTime should be smaller then maxPauseTime.");
}
worldDimension = Topology.getWorldDimension();
worldDimension = Binder.getComponentOrNull(Topology.class)
.getWorldDimensions();
init = true;
}
}
......@@ -165,8 +169,9 @@ public class SocialTransitionStrategy implements ITransitionStrategy,
// assignment..
AttractionPoint nearest = aPoints.iterator().next();
for (AttractionPoint aPoint : aPoints) {
if (nearest.getRealPosition().getDistance(ms.getRealPosition()) > aPoint
.getRealPosition().getDistance(ms.getRealPosition())) {
if (nearest.getRealPosition()
.distanceTo(ms.getRealPosition()) > aPoint.getRealPosition()
.distanceTo(ms.getRealPosition())) {
nearest = aPoint;
}
}
......@@ -243,8 +248,7 @@ public class SocialTransitionStrategy implements ITransitionStrategy,
private double score(MovementSupported ms, AttractionPoint ap,
List<AttractionPoint> apFavorites, List<AttractionPoint> apFriends,
List<AttractionPoint> apClusters, List<AttractionPoint> apRandom) {
double distance = ms.getRealPosition()
.getDistance(ap.getRealPosition());
double distance = ms.getRealPosition().distanceTo(ap.getRealPosition());
double distanceScore = 1 - (distance / worldDimension.getLength());
double clusterScore = 0;
......
......@@ -150,7 +150,7 @@ public class PolygonObstacle extends AbstractObstacle {
/*
* Adding a bit of greedy decisions, to not always use the poly-methods
*/
double dist = a.getDistance(b);
double dist = a.distanceTo(b);
if (a.getX() + dist < minX || a.getX() - dist > maxX
|| a.getY() + dist < minY || a.getY() - dist > maxY) {
return false;
......
......@@ -27,7 +27,6 @@ import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import de.tud.kom.p2psim.api.common.Position;
import de.tud.kom.p2psim.api.linklayer.LinkLayer;
import de.tud.kom.p2psim.api.linklayer.mac.Link;
import de.tud.kom.p2psim.api.linklayer.mac.MacAddress;
......@@ -43,6 +42,7 @@ import de.tud.kom.p2psim.api.topology.views.TopologyView;
import de.tud.kom.p2psim.impl.topology.PositionVector;
import de.tudarmstadt.maki.simonstrator.api.Monitor;
import de.tudarmstadt.maki.simonstrator.api.Monitor.Level;
import de.tudarmstadt.maki.simonstrator.api.component.sensor.location.Location;
/**
* To ease implementation of new {@link TopologyView}s, this class provides
......@@ -475,13 +475,13 @@ public abstract class AbstractTopologyView<L extends DefaultLink> implements
}
@Override
public Position getPosition(MacAddress address) {
public Location getPosition(MacAddress address) {
return getCachedPosition(address);
}
@Override
public double getDistance(MacAddress addressA, MacAddress addressB) {
return getCachedPosition(addressA).getDistance(
getCachedPosition(addressB));
return getCachedPosition(addressA)
.distanceTo(getCachedPosition(addressB));
}
}
......@@ -231,7 +231,7 @@ public class RangedTopologyView extends AbstractTopologyView<RangedLink> {
@Override
protected void updateOutdatedLink(RangedLink link) {
link.updateNodeDistance(getCachedPosition(link.getSource())
.getDistance(getCachedPosition(link.getDestination())));
.distanceTo(getCachedPosition(link.getDestination())));
/*
* Update latency and drop rate - note: it depends on the actual
......
......@@ -55,18 +55,17 @@ import javax.swing.Timer;
import com.google.common.collect.Maps;
import de.tud.kom.p2psim.api.common.Position;
import de.tud.kom.p2psim.api.linklayer.mac.Link;
import de.tud.kom.p2psim.api.linklayer.mac.MacAddress;
import de.tud.kom.p2psim.api.linklayer.mac.MacLayer;
import de.tud.kom.p2psim.api.linklayer.mac.PhyType;
import de.tud.kom.p2psim.api.topology.Topology;
import de.tud.kom.p2psim.api.topology.TopologyComponent;
import de.tud.kom.p2psim.api.topology.movement.MovementSupported;
import de.tud.kom.p2psim.api.topology.obstacles.ObstacleModel;
import de.tud.kom.p2psim.api.topology.views.TopologyView;
import de.tud.kom.p2psim.api.topology.waypoints.WaypointModel;
import de.tud.kom.p2psim.impl.topology.PositionVector;
import de.tud.kom.p2psim.impl.topology.Topology;
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;
......@@ -78,7 +77,9 @@ import de.tud.kom.p2psim.impl.topology.views.visualization.world.StrongWaypointC
import de.tud.kom.p2psim.impl.topology.views.visualization.world.TopologyComponentVis;
import de.tud.kom.p2psim.impl.topology.views.visualization.world.WeakWaypointComponentVis;
import de.tud.kom.p2psim.impl.util.NotSupportedException;
import de.tudarmstadt.maki.simonstrator.api.Binder;
import de.tudarmstadt.maki.simonstrator.api.common.graph.INodeID;
import de.tudarmstadt.maki.simonstrator.api.component.sensor.location.Location;
/**
* A very basic visualization of a Topology (ie. positioning and movement), just
......@@ -126,8 +127,10 @@ public class VisualizationTopologyView extends JFrame implements TopologyView,
*
*/
public VisualizationTopologyView() {
WORLD_X = (int) Topology.getWorldDimension().getX();
WORLD_Y = (int) Topology.getWorldDimension().getY();
WORLD_X = (int) Binder.getComponentOrNull(Topology.class)
.getWorldDimensions().getX();
WORLD_Y = (int) Binder.getComponentOrNull(Topology.class)
.getWorldDimensions().getY();
worldPanel = new WorldPanel();
visManager = new ComponentVisManager(worldPanel);
......@@ -668,7 +671,7 @@ public class VisualizationTopologyView extends JFrame implements TopologyView,
}
@Override
public Position getPosition(MacAddress address) {
public Location getPosition(MacAddress address) {
throw new NotSupportedException();
}
......
......@@ -179,7 +179,7 @@ public class SocialViewComponentVis extends JComponent implements
public void mouseClicked(int x, int y) {
List<SimHost> inNear = new Vector<SimHost>();
for (Entry<SimHost, PositionVector> e : posVecs.entrySet()) {
if (e.getValue().getDistance(new PositionVector(x, y)) < 4) {
if (e.getValue().distanceTo(new PositionVector(x, y)) < 4) {
inNear.add(e.getKey());
}
}
......
......@@ -26,7 +26,6 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import de.tud.kom.p2psim.api.common.Position;
import de.tud.kom.p2psim.api.common.SimHost;
import de.tud.kom.p2psim.api.linklayer.mac.MacAddress;
import de.tud.kom.p2psim.api.linklayer.mac.MacLayer;
......@@ -43,6 +42,9 @@ import de.tud.kom.p2psim.impl.topology.views.RangedLink;
import de.tud.kom.p2psim.impl.topology.views.RangedTopologyView;
import de.tud.kom.p2psim.impl.topology.views.wifi.phy.InterferenceHelper;
import de.tudarmstadt.maki.simonstrator.api.Message;
import de.tudarmstadt.maki.simonstrator.api.Monitor;
import de.tudarmstadt.maki.simonstrator.api.Monitor.Level;
import de.tudarmstadt.maki.simonstrator.api.component.sensor.location.Location;
import de.tudarmstadt.maki.simonstrator.api.util.XMLConfigurableConstructor;
/**
......@@ -266,7 +268,7 @@ public class WifiTopologyView extends RangedTopologyView {
* The {@link MacAddress} of the source, which stats this
* transfer
*/
public void addTransfer(long start, long end, Position sourcePosition,
public void addTransfer(long start, long end, Location sourcePosition,
double txPowerDbm, Message id, WifiMode dataMode,
WifiPreamble preamble, SimHost host, MacAddress sourceAddress) {
interferenceHelper.addTransfer(start, end, sourcePosition, txPowerDbm,
......@@ -293,7 +295,7 @@ public class WifiTopologyView extends RangedTopologyView {
* The sourceAddress of this interference (It will be used the
* neighborhood of this peer, to inform about carrier sensing).
*/
public void addInterference(long start, long end, Position sourcePosition,
public void addInterference(long start, long end, Location sourcePosition,
double txPowerDbm, WifiMode dataMode, MacAddress sourceAddress) {
interferenceHelper.addInterference(start, end, sourcePosition,
txPowerDbm, dataMode, sourceAddress);
......@@ -306,7 +308,7 @@ public class WifiTopologyView extends RangedTopologyView {
* @param msg
* The message which was added as interference (or rather as ID)
* with
* {@link WifiTopologyView#addInterference(long, long, Position, double, WifiMode, MacAddress)}
* {@link WifiTopologyView#addInterference(long, long, Location, double, WifiMode, MacAddress)}
* to the {@link InterferenceHelper}.
* @param pos
* The position for that the PER should be calculated for this
......@@ -314,7 +316,7 @@ public class WifiTopologyView extends RangedTopologyView {
* @return The Packet Error Rate (PER) for the message at the given
* Position.
*/
public double calculatePer(Message msg, Position pos) {
public double calculatePer(Message msg, Location pos) {
return interferenceHelper.calculatePer(msg, pos);
}
......@@ -375,8 +377,11 @@ public class WifiTopologyView extends RangedTopologyView {
rxSensitivityDbm);
double satRange = interferenceHelper.calculateMaximalRadius(
maxTxPowerDbm, satDbm);
// System.out.println("satRange: " + satRange + " csRange: " + csRange
// + " range: " + range);
System.out.println("satRange: " + satRange + " csRange: " + csRange
+ " range: " + range);
Monitor.log(WifiTopologyView.class, Level.INFO,
"WiFi underlay ranges: satRange: " + satRange + " csRange: "
+ csRange + " range: " + range);
setRange(range);
setCSRange(csRange);
......
......@@ -28,7 +28,6 @@ import java.util.List;
import java.util.Map;
import java.util.Vector;
import de.tud.kom.p2psim.api.common.Position;
import de.tud.kom.p2psim.api.common.SimHost;
import de.tud.kom.p2psim.api.linklayer.mac.MacAddress;
import de.tud.kom.p2psim.api.topology.views.wifi.phy.ErrorRateModel;
......@@ -46,6 +45,7 @@ import de.tudarmstadt.maki.simonstrator.api.Message;
import de.tudarmstadt.maki.simonstrator.api.Monitor;
import de.tudarmstadt.maki.simonstrator.api.Monitor.Level;
import de.tudarmstadt.maki.simonstrator.api.Time;
import de.tudarmstadt.maki.simonstrator.api.component.sensor.location.Location;
/**
* This class is the Interference Helper, which process for one
......@@ -176,13 +176,13 @@ public class InterferenceHelper implements EventHandler {
* @param end
* The end time of this interference in microseconds
* @param sourcePosition
* The {@link Position} of the source of this interference
* The {@link Location} of the source of this interference
* @param txPowerDbm
* The signal power of this interference in dBm.
*/
@Deprecated
// because sourceAddress should be not null!
public void addInterference(long start, long end, Position sourcePosition,
public void addInterference(long start, long end, Location sourcePosition,
double txPowerDbm) {
addInterference(start, end, sourcePosition, txPowerDbm, null, null);
}
......@@ -199,7 +199,7 @@ public class InterferenceHelper implements EventHandler {
* @param end
* The end time of this interference in microseconds
* @param sourcePosition
* The {@link Position} of the source of this interference
* The {@link Location} of the source of this interference
* @param txPowerDbm
* The signal power of this interference in dBm.
* @param dataMode
......@@ -208,7 +208,7 @@ public class InterferenceHelper implements EventHandler {
* The {@link MacAddress} of the node, which are the originator
* of this interference.
*/
public void addInterference(long start, long end, Position sourcePosition,
public void addInterference(long start, long end, Location sourcePosition,
double txPowerDbm, WifiMode dataMode, MacAddress sourceAddress) {
addTransfer(start, end, sourcePosition, txPowerDbm, null, dataMode,
null, null, sourceAddress);
......@@ -225,7 +225,7 @@ public class InterferenceHelper implements EventHandler {
* @param end
* The end time of this transfer in microseconds
* @param sourcePosition
* The {@link Position} of the source of this transfer
* The {@link Location} of the source of this transfer
* @param txPowerDbm
* The signal power of this transfer in dBm.
* @param id
......@@ -241,7 +241,7 @@ public class InterferenceHelper implements EventHandler {
* The {@link MacAddress} of the node, which are the originator
* of this transfer.
*/
public void addTransfer(long start, long end, Position sourcePosition,
public void addTransfer(long start, long end, Location sourcePosition,
double txPowerDbm, Message id, WifiMode dataMode,
WifiPreamble preamble, SimHost host, MacAddress sourceAddress) {
if (start < Time.getCurrentTime()) {
......@@ -252,8 +252,8 @@ public class InterferenceHelper implements EventHandler {
throw new IllegalArgumentException(
"The start time is equal or greater than the end time!");
}
Interference interference = new Interference(start, end,
sourcePosition.clone(), txPowerDbm, id, dataMode, preamble,
Interference interference = new Interference(start, end, sourcePosition,
txPowerDbm, id, dataMode, preamble,
host, sourceAddress);
addInterference(interference);
......@@ -336,7 +336,7 @@ public class InterferenceHelper implements EventHandler {
/**
* Calculates the Packet Error Rate for this ID (the Message) and the given
* {@link Position}. The position is used to calculate the receive power and
* {@link Location}. The position is used to calculate the receive power and
* the resulting SNR (Signal to noise Ratio).<br>
* The transfer information will be got with the message. In this
* information will be stored all interferences, which has influence for the
......@@ -354,7 +354,7 @@ public class InterferenceHelper implements EventHandler {
* @return The Packet Error Rate for this Message at the given
* {@link Position}.
*/
public double calculatePer(Message id, Position rxPos) {
public double calculatePer(Message id, Location rxPos) {
Interference transfer = transfers.get(id);
if (transfer == null) {
Monitor.log(
......@@ -520,7 +520,7 @@ public class InterferenceHelper implements EventHandler {
/**
* Calculates the actually Interference noise in Watt for a host. The host
* will be used, to use his {@link Position}, and to ignore interferences
* will be used, to use his {@link Location}, and to ignore interferences
* from him.
*
* @param host
......@@ -536,15 +536,15 @@ public class InterferenceHelper implements EventHandler {
/**
* Calculates the actually interference noise in Watt at the given
* {@link Position}. The output of can be different to the method
* {@link InterferenceHelper#calculateNoiseInterferenceW(SimHost)}, because no
* interference will be leave out.
* {@link Location}. The output of can be different to the method
* {@link InterferenceHelper#calculateNoiseInterferenceW(SimHost)}, because
* no interference will be leave out.
*
* @param point
* The position for that the interference noise is requested
* @return The actually interference noise in Watt at the given Position.
*/
public double calculateNoiseInterferenceW(Position point) {
public double calculateNoiseInterferenceW(Location point) {
return calculateNoiseInterferenceW(null, point);
}
......@@ -562,7 +562,7 @@ public class InterferenceHelper implements EventHandler {
* @return The actually interference noise in Watt at the given Position
* without the interferences of the host.
*/
public double calculateNoiseInterferenceW(SimHost host, Position point) {
public double calculateNoiseInterferenceW(SimHost host, Location point) {
double noiseInterferenceW = 0;
for (Interference i : interferences) {
if (i.getStartTime() <= Time.getCurrentTime()
......@@ -680,7 +680,7 @@ public class InterferenceHelper implements EventHandler {
private final NIChangeTime niChangeEnd;
private final Position sourcePosition;
private final Location sourcePosition;
private final double txPowerDbm;
......@@ -701,7 +701,7 @@ public class InterferenceHelper implements EventHandler {
private List<InterferenceHelper.NIChangeTime> niChangeList = new Vector<InterferenceHelper.NIChangeTime>();
public Interference(long startTime, long endTime,
Position sourcePosition, double txPowerDbm, Message id,
Location sourcePosition, double txPowerDbm, Message id,
WifiMode dataMode, WifiPreamble preamble, SimHost host,
MacAddress sourceAddress) {
this.niChangeStart = new NIChangeTime(startTime, false, this);
......@@ -733,7 +733,7 @@ public class InterferenceHelper implements EventHandler {
return niChangeEnd.getTime();
}
public Position getSourcePosition() {
public Location getSourcePosition() {
return sourcePosition;
}
......@@ -757,20 +757,21 @@ public class InterferenceHelper implements EventHandler {
return host;
}
public double getRxPowerDbm(Position pos) {
public double getRxPowerDbm(Location pos) {
return getLossModel().getRxPowerDbm(getTxPowerDbm(),
sourcePosition.getDistance(pos))
sourcePosition.distanceTo(pos))
+ getRxGainDbm();
}
public double getRxPowerW(Position pos) {
public double getRxPowerW(Location pos) {
double rxPowerdbm = getRxPowerDbm(pos);
return PropagationLossModel.dbmToW(rxPowerdbm);
}
public void addInterference(Interference interference) {
if (!isUnknown()) {
double distance = this.sourcePosition.getDistance(interference
double distance = this.sourcePosition
.distanceTo(interference
.getSourcePosition());
double maxRadius = calculateMaximalSatRadius(interference
.getTxPowerDbm());
......@@ -874,7 +875,7 @@ public class InterferenceHelper implements EventHandler {
* @return It is positive, if an interference start, and negative if the
* interference ends.
*/
public double getRxPowerWChange(Position rxPos) {
public double getRxPowerWChange(Location rxPos) {
double change = this.getInterference().getRxPowerW(rxPos);
if (this.isEndOfTransmission()) {
change *= -1;
......
......@@ -20,8 +20,8 @@
package de.tud.kom.p2psim.impl.topology.views.wifi.phy.propagation.loss;
import de.tud.kom.p2psim.api.common.Position;
import de.tud.kom.p2psim.api.topology.views.wifi.phy.PropagationLossModel;
import de.tudarmstadt.maki.simonstrator.api.component.sensor.location.Location;
/**
* The Friis Propagation Loss Model:
......@@ -81,8 +81,8 @@ public class FriisPropagationLossModel extends PropagationLossModel {
private double minDistance = 0.5d;
@Override
public double getRxPowerDbm(double txPowerDbm, Position a, Position b) {
double distance = a.getDistance(b);
public double getRxPowerDbm(double txPowerDbm, Location a, Location b) {
double distance = a.distanceTo(b);
return getRxPowerDbm(txPowerDbm, distance);
}
......
......@@ -20,8 +20,8 @@
package de.tud.kom.p2psim.impl.topology.views.wifi.phy.propagation.loss;
import de.tud.kom.p2psim.api.common.Position;
import de.tud.kom.p2psim.api.topology.views.wifi.phy.PropagationLossModel;
import de.tudarmstadt.maki.simonstrator.api.component.sensor.location.Location;
/**
*
......@@ -78,8 +78,8 @@ public class LogDistancePropagationLossModel extends PropagationLossModel {
* referenceDistance / lambda);
@Override
public double getRxPowerDbm(double txPowerDbm, Position a, Position b) {
double distance = a.getDistance(b);
public double getRxPowerDbm(double txPowerDbm, Location a, Location b) {
double distance = a.distanceTo(b);
return getRxPowerDbm(txPowerDbm, distance);
}
......
......@@ -199,7 +199,7 @@ public abstract class AbstractWaypointModel implements WaypointModel {
if (!w.getClass().equals(type))
continue;
double d = position.getDistance(w.getPosition());
double d = position.distanceTo(w.getPosition());
if (distance > d || distance == -1) {
distance = d;
......
......@@ -39,7 +39,7 @@ public class Path extends DefaultWeightedEdge {
this.source = source;
this.target = target;
double d = source.getPosition().getDistance(target.getPosition());
double d = source.getPosition().distanceTo(target.getPosition());
weight = Math.abs(1 - (1 / d));
}
......
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