Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Simonstrator
PeerfactSim.KOM
Commits
0c80da45
Commit
0c80da45
authored
Nov 06, 2015
by
Björn Richerzhagen
Browse files
Removed deprecated `Position`-Interface
parent
db566de9
Changes
64
Show whitespace changes
Inline
Side-by-side
src/de/tud/kom/p2psim/api/common/Position.java
deleted
100644 → 0
View file @
db566de9
/*
* Copyright (c) 2005-2010 KOM – Multimedia Communications Lab
*
* This file is part of PeerfactSim.KOM.
*
* PeerfactSim.KOM is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* any later version.
*
* PeerfactSim.KOM is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with PeerfactSim.KOM. If not, see <http://www.gnu.org/licenses/>.
*
*/
package
de.tud.kom.p2psim.api.common
;
import
de.tudarmstadt.maki.simonstrator.api.common.Transmitable
;
import
de.tudarmstadt.maki.simonstrator.api.component.sensor.location.Location
;
/**
* The common interface for positions within PeerfactSim, this hides the
* business logic of a PositionVector in util.position.
*
* You should consider extending PositionVector for your implementations.
*
* @author Bjoern Richerzhagen
* @version 1.0, 05/26/2011
* @deprecated please consider using {@link Location} instead!
*/
@Deprecated
public
interface
Position
extends
Transmitable
,
Cloneable
,
Location
{
/**
* Get the distance of this position compared to any other Position, if they
* have the same number of dimensions and are compatible.
*
* @param position
* @return
*/
public
double
getDistance
(
Position
position
);
/**
* Calculates the angle <b>in rad</b> from the current position to the
* target.
*
* @param target
* @return An angle in rad between -PI and PI, where 0 is "East", or the
* direction of the positive x-Axis
*/
public
double
getAngle
(
Position
target
);
/**
* This method should be consistent with the getDistance and
* getAngle-methods. It returns a Position that has the given distance and
* angle from the current position.
*
* @param distance
* @param angle
* an angle in rad between -PI and PI, where 0 is the direction
* of the positive x-Axis and angles are incremented
* counter-clockwise (mathematical)
* @return
*/
public
Position
getTarget
(
double
distance
,
double
angle
);
/**
* CLone a Position, ensuring there is no information propagation due to
* Java. Consider a clone() as some kind of snapshot of the current state of
* the cloned position. It is very important to call clone() in scenarios
* with moving hosts!
*
* @return
*/
public
Position
clone
();
}
src/de/tud/kom/p2psim/api/network/NetLayer.java
View file @
0c80da45
...
...
@@ -22,13 +22,13 @@
package
de.tud.kom.p2psim.api.network
;
import
de.tud.kom.p2psim.api.common.Position
;
import
de.tud.kom.p2psim.api.common.SimHost
;
import
de.tud.kom.p2psim.api.network.routing.RoutingAlgorithm
;
import
de.tudarmstadt.maki.simonstrator.api.Message
;
import
de.tudarmstadt.maki.simonstrator.api.component.network.Bandwidth
;
import
de.tudarmstadt.maki.simonstrator.api.component.network.NetID
;
import
de.tudarmstadt.maki.simonstrator.api.component.network.NetInterface
;
import
de.tudarmstadt.maki.simonstrator.api.component.sensor.location.Location
;
/**
* The NetLayer provides a general interface to encapsulate various networking
...
...
@@ -123,7 +123,7 @@ public interface NetLayer extends NetInterface {
*
* @return Position the appropriate position
*/
public
Posi
tion
getNetPosition
();
public
Loca
tion
getNetPosition
();
/**
* Returns the maximum physical bandwidth that is available at the given
...
...
src/de/tud/kom/p2psim/api/topology/Topology.java
View file @
0c80da45
...
...
@@ -26,6 +26,7 @@ import de.tud.kom.p2psim.api.topology.social.SocialView;
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.tudarmstadt.maki.simonstrator.api.component.GlobalComponent
;
/**
* We provide a global Topology-Object (ie. this object is only created once in
...
...
@@ -36,7 +37,7 @@ import de.tud.kom.p2psim.impl.topology.PositionVector;
* @author Bjoern Richerzhagen
* @version 1.0, 21.02.2012
*/
public
interface
Topology
{
public
interface
Topology
extends
GlobalComponent
{
/**
* This Position Vector contains the upper bounds for each dimension used in
...
...
src/de/tud/kom/p2psim/api/topology/TopologyComponent.java
View file @
0c80da45
...
...
@@ -20,9 +20,7 @@
package
de.tud.kom.p2psim.api.topology
;
import
de.tud.kom.p2psim.api.common.Position
;
import
de.tud.kom.p2psim.api.common.SimHostComponent
;
import
de.tud.kom.p2psim.api.energy.EnergyComponent
;
import
de.tud.kom.p2psim.api.topology.movement.MovementListener
;
import
de.tud.kom.p2psim.api.topology.movement.MovementSupported
;
import
de.tud.kom.p2psim.api.topology.views.TopologyView
;
...
...
@@ -40,33 +38,10 @@ import de.tudarmstadt.maki.simonstrator.api.component.topology.UnderlayTopologyP
public
interface
TopologyComponent
extends
SimHostComponent
,
MovementSupported
,
MovementListener
,
UnderlayTopologyProvider
,
LocationSensor
{
/**
* Abstract QoS-Classes for the Accuracy of the position. Implementation
* depends on the {@link EnergyComponent}
*
* @author Bjoern Richerzhagen
* @version 1.0, 26.02.2012
*/
@Deprecated
public
static
enum
PositionAccuracy
{
HIGH
,
MEDIUM
,
LOW
}
/**
* This uses an {@link EnergyComponent} for position retrieving (ie a GPS).
* A call might trigger energy consumption and the result will in most cases
* not be 100% accurate. Use this in your application if you want to add
* another layer of realism.
*
* @param accuracy
* a QoS-Class for the accuracy
* @return An estimate of the current position
*/
@Deprecated
public
Position
getPosition
(
PositionAccuracy
accuracy
);
/**
* Returns the Topology-Object that provides access to {@link TopologyView}s
* Note: the {@link Topology} is also available as a GlobalComponent via the
* Binder-class.
*
* @return
*/
...
...
src/de/tud/kom/p2psim/api/topology/obstacles/Obstacle.java
View file @
0c80da45
...
...
@@ -24,7 +24,6 @@ import java.util.List;
import
com.vividsolutions.jts.geom.Geometry
;
import
de.tud.kom.p2psim.api.common.Position
;
import
de.tud.kom.p2psim.api.topology.views.TopologyView
;
import
de.tud.kom.p2psim.impl.topology.PositionVector
;
...
...
src/de/tud/kom/p2psim/api/topology/views/TopologyView.java
View file @
0c80da45
...
...
@@ -23,13 +23,13 @@ package de.tud.kom.p2psim.api.topology.views;
import
java.util.Collection
;
import
java.util.List
;
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.TopologyListener
;
import
de.tud.kom.p2psim.api.topology.movement.MovementListener
;
import
de.tudarmstadt.maki.simonstrator.api.component.sensor.location.Location
;
/**
* Each MAC has a view on the global topology of hosts (ie. the
...
...
@@ -119,7 +119,7 @@ public interface TopologyView extends TopologyListener, MovementListener {
* The {@link MacAddress} of the host
* @return The real Position of the Host.
*/
public
Posi
tion
getPosition
(
MacAddress
address
);
public
Loca
tion
getPosition
(
MacAddress
address
);
/**
* Gets the real distance between the two hosts.
...
...
src/de/tud/kom/p2psim/api/topology/views/wifi/phy/PropagationLossModel.java
View file @
0c80da45
...
...
@@ -20,7 +20,7 @@
package
de.tud.kom.p2psim.api.topology.views.wifi.phy
;
import
de.tud
.kom.p2psim
.api.com
m
on
.Posi
tion
;
import
de.tud
armstadt.maki.simonstrator
.api.com
p
on
ent.sensor.location.Loca
tion
;
/**
* This interface is for the calculation of the propagation loss of an
...
...
@@ -52,8 +52,8 @@ public abstract class PropagationLossModel {
* The second position
* @return The RX power in dBm
*/
public
abstract
double
getRxPowerDbm
(
double
txPowerDbm
,
Posi
tion
a
,
Posi
tion
b
);
public
abstract
double
getRxPowerDbm
(
double
txPowerDbm
,
Loca
tion
a
,
Loca
tion
b
);
/**
* Gets the RX Power in dBm for the distance.
...
...
src/de/tud/kom/p2psim/impl/linklayer/mac/wifi/AbstractRateManager.java
View file @
0c80da45
...
...
@@ -28,13 +28,13 @@ import java.util.List;
import
java.util.Map
;
import
java.util.Set
;
import
de.tud.kom.p2psim.api.common.Position
;
import
de.tud.kom.p2psim.api.linklayer.mac.MacAddress
;
import
de.tud.kom.p2psim.api.linklayer.mac.MacLayer
;
import
de.tud.kom.p2psim.api.topology.views.wifi.phy.PropagationLossModel
;
import
de.tud.kom.p2psim.api.topology.views.wifi.phy.WifiMode
;
import
de.tud.kom.p2psim.api.topology.views.wifi.phy.WifiPhy.Standard_802_11
;
import
de.tud.kom.p2psim.impl.topology.views.wifi.phy.InterferenceHelper
;
import
de.tudarmstadt.maki.simonstrator.api.component.sensor.location.Location
;
/**
* This class is an interface for other implementation of Rate Managers. The
...
...
@@ -598,8 +598,8 @@ public abstract class AbstractRateManager {
* antenna. <br>
* This is only a helper to calculate the SNR in the AdHocMac.
*/
public
double
calculateActuallySNR
(
Posi
tion
startPosition
,
Posi
tion
targetPosition
,
WifiMode
mode
,
double
txPowerDbm
)
{
public
double
calculateActuallySNR
(
Loca
tion
startPosition
,
Loca
tion
targetPosition
,
WifiMode
mode
,
double
txPowerDbm
)
{
InterferenceHelper
helper
=
mac
.
getWifiTopologyView
()
.
getInterferenceHelper
();
double
noiseInterferenceW
=
helper
...
...
src/de/tud/kom/p2psim/impl/linklayer/mac/wifi/Ieee80211AdHocMac.java
View file @
0c80da45
...
...
@@ -28,7 +28,6 @@ import java.util.Random;
import
de.tud.kom.p2psim.api.analyzer.LinklayerAnalyzer
;
import
de.tud.kom.p2psim.api.analyzer.MessageAnalyzer.Reason
;
import
de.tud.kom.p2psim.api.common.Position
;
import
de.tud.kom.p2psim.api.common.SimHost
;
import
de.tud.kom.p2psim.api.linklayer.LinkLayerMessage
;
import
de.tud.kom.p2psim.api.linklayer.mac.Link
;
...
...
@@ -47,6 +46,7 @@ import de.tud.kom.p2psim.impl.linklayer.DefaultLinkMessageEvent;
import
de.tud.kom.p2psim.impl.linklayer.mac.AbstractMacLayer
;
import
de.tud.kom.p2psim.impl.linklayer.mac.wifi.AbstractRateManager.RateManagerTypes
;
import
de.tud.kom.p2psim.impl.linklayer.mac.wifi.DcfManager.WifiState
;
import
de.tud.kom.p2psim.impl.topology.PositionVector
;
import
de.tud.kom.p2psim.impl.topology.views.wifi.WifiTopologyView
;
import
de.tud.kom.p2psim.impl.util.LiveMonitoring
;
import
de.tud.kom.p2psim.impl.util.LiveMonitoring.ProgressValue
;
...
...
@@ -56,6 +56,7 @@ import de.tudarmstadt.maki.simonstrator.api.Monitor.Level;
import
de.tudarmstadt.maki.simonstrator.api.Randoms
;
import
de.tudarmstadt.maki.simonstrator.api.Time
;
import
de.tudarmstadt.maki.simonstrator.api.component.core.MonitorComponent.AnalyzerNotAvailableException
;
import
de.tudarmstadt.maki.simonstrator.api.component.sensor.location.Location
;
import
de.tudarmstadt.maki.simonstrator.api.operation.AbstractOperation
;
/**
...
...
@@ -671,14 +672,12 @@ public class Ieee80211AdHocMac extends AbstractMacLayer {
/**
* Gets a copy of the real position of this host.
*
* Clone <strong>ONLY</strong> here.
*
* @return The position of this host.
*/
private
Position
getPosition
()
{
/*
* FIXME this leads to serious performance degradations. Do we REALLY
* need a copy?
*/
return
this
.
getHost
().
getTopologyComponent
().
getRealPosition
();
// .clone();
private
PositionVector
getPosition
()
{
return
this
.
getHost
().
getTopologyComponent
().
getRealPosition
().
clone
();
}
/**
...
...
@@ -919,9 +918,9 @@ public class Ieee80211AdHocMac extends AbstractMacLayer {
WifiMacEventInformation
eInfo
=
(
WifiMacEventInformation
)
eventInfo
;
// startPosition is from receiver (because ack come from this!)
Posi
tion
startPosition
=
((
Ieee80211AdHocMac
)
topoView
Loca
tion
startPosition
=
((
Ieee80211AdHocMac
)
topoView
.
getMac
(
eventInfo
.
getReceiver
())).
getPosition
();
Posi
tion
targetPosition
=
this
.
getPosition
();
Loca
tion
targetPosition
=
this
.
getPosition
();
double
ackSnr
=
rateManager
.
calculateActuallySNR
(
startPosition
,
targetPosition
,
eInfo
.
getAckMode
(),
txPowerDbm
);
rateManager
.
reportDataOk
(
eventInfo
.
getReceiver
(),
ackSnr
,
...
...
src/de/tud/kom/p2psim/impl/network/AbstractNetLayer.java
View file @
0c80da45
...
...
@@ -26,7 +26,6 @@ import java.util.List;
import
de.tud.kom.p2psim.api.analyzer.ConnectivityAnalyzer
;
import
de.tud.kom.p2psim.api.analyzer.MessageAnalyzer.Reason
;
import
de.tud.kom.p2psim.api.analyzer.NetlayerAnalyzer
;
import
de.tud.kom.p2psim.api.common.Position
;
import
de.tud.kom.p2psim.api.common.SimHost
;
import
de.tud.kom.p2psim.api.linklayer.mac.PhyType
;
import
de.tud.kom.p2psim.api.network.NetMessage
;
...
...
@@ -42,6 +41,7 @@ import de.tudarmstadt.maki.simonstrator.api.component.core.MonitorComponent.Anal
import
de.tudarmstadt.maki.simonstrator.api.component.network.Bandwidth
;
import
de.tudarmstadt.maki.simonstrator.api.component.network.NetID
;
import
de.tudarmstadt.maki.simonstrator.api.component.network.NetInterface
;
import
de.tudarmstadt.maki.simonstrator.api.component.sensor.location.Location
;
import
de.tudarmstadt.maki.simonstrator.api.component.transport.ConnectivityListener
;
/**
...
...
@@ -70,7 +70,7 @@ public abstract class AbstractNetLayer implements SimNetworkComponent,
private
boolean
online
;
private
Posi
tion
position
;
private
Loca
tion
position
;
Bandwidth
currentBandwidth
;
...
...
@@ -93,7 +93,7 @@ public abstract class AbstractNetLayer implements SimNetworkComponent,
* the NetPosition of the network layer
*/
public
AbstractNetLayer
(
SimHost
host
,
NetID
netId
,
Bandwidth
maxBandwidth
,
Posi
tion
position
,
NetMeasurementDB
.
Host
hostMeta
)
{
Loca
tion
position
,
NetMeasurementDB
.
Host
hostMeta
)
{
this
.
myID
=
netId
;
this
.
msgListeners
=
new
LinkedList
<
NetMessageListener
>();
this
.
connListeners
=
new
LinkedList
<
ConnectivityListener
>();
...
...
@@ -378,7 +378,7 @@ public abstract class AbstractNetLayer implements SimNetworkComponent,
* @see de.tud.kom.p2psim.api.api.network.NetLayer#getNetPosition()
*/
@Override
public
Posi
tion
getNetPosition
()
{
public
Loca
tion
getNetPosition
()
{
return
this
.
position
;
}
...
...
src/de/tud/kom/p2psim/impl/network/fairshareng/FairshareNode.java
View file @
0c80da45
...
...
@@ -7,7 +7,6 @@ import java.util.List;
import
java.util.Map
;
import
de.tud.kom.p2psim.api.analyzer.MessageAnalyzer.Reason
;
import
de.tud.kom.p2psim.api.common.Position
;
import
de.tud.kom.p2psim.api.common.SimHost
;
import
de.tud.kom.p2psim.api.network.BandwidthImpl
;
import
de.tud.kom.p2psim.api.network.FlowBasedNetlayer
;
...
...
@@ -22,6 +21,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.component.network.NetID
;
import
de.tudarmstadt.maki.simonstrator.api.component.sensor.location.Location
;
/**
* The Class Node.
...
...
@@ -48,7 +48,7 @@ public class FairshareNode extends AbstractNetLayer implements
* @param geoLoc
*/
public
FairshareNode
(
SimHost
host
,
FairshareSubnet
subnet
,
NetID
netID
,
BandwidthImpl
maxBandwidth
,
Posi
tion
position
,
BandwidthImpl
maxBandwidth
,
Loca
tion
position
,
NetMeasurementDB
.
Host
hostMeta
)
{
super
(
host
,
netID
,
maxBandwidth
,
position
,
hostMeta
);
this
.
subnet
=
subnet
;
...
...
src/de/tud/kom/p2psim/impl/network/gnp/GnpLatencyModel.java
View file @
0c80da45
...
...
@@ -23,8 +23,6 @@ package de.tud.kom.p2psim.impl.network.gnp;
import
java.util.Random
;
import
umontreal.iro.lecuyer.probdist.LognormalDist
;
import
de.tud.kom.p2psim.api.common.Position
;
import
de.tud.kom.p2psim.api.linklayer.mac.PhyType
;
import
de.tud.kom.p2psim.api.network.NetLatencyModel
;
import
de.tud.kom.p2psim.api.network.NetLayer
;
...
...
@@ -35,6 +33,8 @@ import de.tud.kom.p2psim.impl.network.gnp.topology.CountryLookup;
import
de.tud.kom.p2psim.impl.network.gnp.topology.PingErLookup
;
import
de.tudarmstadt.maki.simonstrator.api.Randoms
;
import
de.tudarmstadt.maki.simonstrator.api.Time
;
import
de.tudarmstadt.maki.simonstrator.api.component.sensor.location.Location
;
import
umontreal.iro.lecuyer.probdist.LognormalDist
;
public
class
GnpLatencyModel
implements
NetLatencyModel
{
...
...
@@ -71,9 +71,9 @@ public class GnpLatencyModel implements NetLatencyModel {
double
distance
=
GeoLocationOracle
.
getGeographicalDistance
(
sender
.
getNetID
(),
receiver
.
getNetID
());
minRtt
=
62
+
(
0.02
*
distance
);
}
else
{
Posi
tion
senderPos
=
sender
.
getNetPosition
();
Posi
tion
receiverPos
=
receiver
.
getNetPosition
();
minRtt
=
senderPos
.
getD
istance
(
receiverPos
);
Loca
tion
senderPos
=
sender
.
getNetPosition
();
Loca
tion
receiverPos
=
receiver
.
getNetPosition
();
minRtt
=
senderPos
.
d
istance
To
(
receiverPos
);
}
return
minRtt
;
}
...
...
src/de/tud/kom/p2psim/impl/network/gnp/topology/GeographicPosition.java
View file @
0c80da45
...
...
@@ -23,8 +23,8 @@ package de.tud.kom.p2psim.impl.network.gnp.topology;
import
de.tud.kom.p2psim.api.common.Position
;
import
de.tud.kom.p2psim.impl.topology.PositionVector
;
import
de.tudarmstadt.maki.simonstrator.api.component.sensor.location.Location
;
/**
* Implementation of NetPosition for Position and distance measurnment on the
...
...
@@ -55,7 +55,7 @@ public class GeographicPosition extends PositionVector {
/**
* @return geographical distance in km
*/
public
double
getD
istance
(
Posi
tion
point
)
{
public
double
d
istance
To
(
Loca
tion
point
)
{
double
pi
=
3.14159265
;
double
radConverter
=
pi
/
180
;
double
lat1
=
latitude
*
radConverter
;
...
...
@@ -68,12 +68,6 @@ public class GeographicPosition extends PositionVector {
return
2
*
6378.2
*
Math
.
atan2
(
Math
.
sqrt
(
temp
),
Math
.
sqrt
(
1
-
temp
));
}
@Override
public
double
getAngle
(
Position
target
)
{
throw
new
AssertionError
(
"getAngle is not defined for this Position-Type"
);
}
@Override
public
int
getTransmissionSize
()
{
return
16
;
// 2 * double
...
...
src/de/tud/kom/p2psim/impl/network/gnp/topology/GnpPosition.java
View file @
0c80da45
...
...
@@ -23,7 +23,6 @@ package de.tud.kom.p2psim.impl.network.gnp.topology;
import
java.util.ArrayList
;
import
de.tud.kom.p2psim.api.common.Position
;
import
de.tudarmstadt.maki.simonstrator.api.Randoms
;
import
de.tudarmstadt.maki.simonstrator.api.component.sensor.location.Location
;
...
...
@@ -37,7 +36,7 @@ import de.tudarmstadt.maki.simonstrator.api.component.sensor.location.Location;
*
*/
public
class
GnpPosition
implements
Posi
tion
,
Comparable
<
GnpPosition
>
{
public
class
GnpPosition
implements
Loca
tion
,
Comparable
<
GnpPosition
>
{
private
static
final
long
serialVersionUID
=
-
1103996725403557900L
;
...
...
@@ -165,7 +164,7 @@ public class GnpPosition implements Position, Comparable<GnpPosition> {
* @return error
*/
public
double
getDownhillSimplexError
(
GnpPosition
monitor
)
{
double
calculatedDistance
=
this
.
getD
istance
(
monitor
);
double
calculatedDistance
=
this
.
d
istance
To
(
monitor
);
double
measuredDistance
=
this
.
getMeasuredRtt
(
monitor
);
if
(
Double
.
compare
(
measuredDistance
,
Double
.
NaN
)
==
0
)
return
0.0
;
...
...
@@ -182,7 +181,7 @@ public class GnpPosition implements Position, Comparable<GnpPosition> {
* @return error value
*/
public
double
getDirectionalRelativError
(
GnpPosition
monitor
)
{
double
calculatedDistance
=
this
.
getD
istance
(
monitor
);
double
calculatedDistance
=
this
.
d
istance
To
(
monitor
);
double
measuredDistance
=
this
.
getMeasuredRtt
(
monitor
);
if
(
Double
.
compare
(
measuredDistance
,
Double
.
NaN
)
==
0
)
return
Double
.
NaN
;
...
...
@@ -236,7 +235,7 @@ public class GnpPosition implements Position, Comparable<GnpPosition> {
/**
* @return euclidean distance
*/
public
double
getDistance
(
Posi
tion
point
)
{
public
double
getDistance
(
Loca
tion
point
)
{
GnpPosition
coord
=
(
GnpPosition
)
point
;
double
distance
=
0.0
;
for
(
int
c
=
0
;
c
<
gnpCoordinates
.
length
;
c
++)
...
...
@@ -245,18 +244,6 @@ public class GnpPosition implements Position, Comparable<GnpPosition> {
return
Math
.
sqrt
(
distance
);
}
@Override
public
double
getAngle
(
Position
target
)
{
throw
new
AssertionError
(
"getAngle is not defined for this Position-Type"
);
}
@Override
public
Position
getTarget
(
double
distance
,
double
angle
)
{
throw
new
AssertionError
(
"getTarget is not defined for this Position-Type"
);
}
@Override
public
int
getTransmissionSize
()
{
return
16
;
// 2 * double
...
...
@@ -323,7 +310,7 @@ public class GnpPosition implements Position, Comparable<GnpPosition> {
@Override
public
double
distanceTo
(
Location
dest
)
{
return
getDistance
(
(
Position
)
dest
);
return
getDistance
(
dest
);
}
@Override
...
...
src/de/tud/kom/p2psim/impl/network/gnp/topology/HostMap.java
View file @
0c80da45
...
...
@@ -692,7 +692,7 @@ public class HostMap {
private
static
double
getGeographicalDistance
(
double
latitude1
,
double
longitude1
,
double
latitude2
,
double
longitude2
)
{
GeographicPosition
pos1
=
new
GeographicPosition
(
longitude1
,
latitude1
);
GeographicPosition
pos2
=
new
GeographicPosition
(
longitude2
,
latitude2
);
return
pos1
.
getD
istance
(
pos2
);
return
pos1
.
d
istance
To
(
pos2
);
}
/**
...
...
src/de/tud/kom/p2psim/impl/network/modular/ModularNetLayer.java
View file @
0c80da45
...
...
@@ -23,7 +23,6 @@ package de.tud.kom.p2psim.impl.network.modular;
import
java.util.Collection
;
import
de.tud.kom.p2psim.api.analyzer.MessageAnalyzer.Reason
;
import
de.tud.kom.p2psim.api.common.Position
;
import
de.tud.kom.p2psim.api.common.SimHost
;
import
de.tud.kom.p2psim.api.network.BandwidthImpl
;
import
de.tud.kom.p2psim.api.network.NetMessage
;
...
...
@@ -54,6 +53,7 @@ import de.tudarmstadt.maki.simonstrator.api.Monitor;
import
de.tudarmstadt.maki.simonstrator.api.Monitor.Level
;
import
de.tudarmstadt.maki.simonstrator.api.component.network.Bandwidth
;
import
de.tudarmstadt.maki.simonstrator.api.component.network.NetID
;
import
de.tudarmstadt.maki.simonstrator.api.component.sensor.location.Location
;
/**
* <p>
...
...
@@ -113,7 +113,8 @@ public class ModularNetLayer extends AbstractNetLayer {
* Device-Type of this Host
*/
ModularNetLayer
(
SimHost
host
,
AbstractModularSubnet
subnet
,
BandwidthImpl
maxBW
,
NetMeasurementDB
.
Host
hostMeta
,
Position
position
,
BandwidthImpl
maxBW
,
NetMeasurementDB
.
Host
hostMeta
,
Location
position
,
IPv4NetID
id
)
{
super
(
host
,
id
,
maxBW
,
position
,
hostMeta
);
this
.
subnet
=
subnet
;
...
...
src/de/tud/kom/p2psim/impl/network/modular/st/PositioningStrategy.java
View file @
0c80da45
...
...
@@ -21,9 +21,9 @@
package
de.tud.kom.p2psim.impl.network.modular.st
;
import
de.tud.kom.p2psim.api.common.Position
;
import
de.tud.kom.p2psim.api.common.SimHost
;
import
de.tud.kom.p2psim.impl.network.modular.db.NetMeasurementDB
;
import
de.tudarmstadt.maki.simonstrator.api.component.sensor.location.Location
;
/**
* This strategy determines an abstract network position of a given host
...
...
@@ -43,7 +43,7 @@ public interface PositioningStrategy extends ModNetLayerStrategy {
* @param hostMeta
* @return
*/
public
Posi
tion
getPosition
(
public
Loca
tion
getPosition
(
SimHost
host
,
NetMeasurementDB
db
,
NetMeasurementDB
.
Host
hostMeta
);
...
...
src/de/tud/kom/p2psim/impl/network/modular/st/latency/FootprintLatency.java
View file @
0c80da45
...
...
@@ -30,7 +30,8 @@ public class FootprintLatency implements LatencyStrategy {
throw
new
IllegalArgumentException
(
"FootprintLatency is incompatible with the NetMeasurementDB"
);
}
double
distance
=
nlSender
.
getNetPosition
().
getDistance
(
nlReceiver
.
getNetPosition
());
double
distance
=
nlSender
.
getNetPosition
()
.
distanceTo
(
nlReceiver
.
getNetPosition
());
return
(
staticPart
+
Math
.
round
(
geoDistFactor
*
distance
))
*
Time
.
MILLISECOND
;
...
...
src/de/tud/kom/p2psim/impl/network/modular/st/latency/SimpleLatencyModel.java
View file @
0c80da45
...
...
@@ -24,7 +24,6 @@ package de.tud.kom.p2psim.impl.network.modular.st.latency;
import
java.util.Random
;
import
de.tud.kom.p2psim.api.common.Position
;
import
de.tud.kom.p2psim.api.network.NetLayer
;
import
de.tud.kom.p2psim.api.network.NetMessage
;
import
de.tud.kom.p2psim.impl.network.AbstractNetLayer
;
...
...
@@ -33,6 +32,7 @@ import de.tud.kom.p2psim.impl.network.modular.st.LatencyStrategy;
import
de.tud.kom.p2psim.impl.network.simple.SimpleSubnet
;
import
de.tudarmstadt.maki.simonstrator.api.Randoms
;
import
de.tudarmstadt.maki.simonstrator.api.Time
;
import
de.tudarmstadt.maki.simonstrator.api.component.sensor.location.Location
;
/**
* This model is abstracting the details of the four lower OSI layers (UDP and
...
...
@@ -85,9 +85,9 @@ public class SimpleLatencyModel implements LatencyStrategy {
* @return the distance
*/
public
double
getDistance
(
NetLayer
sender
,
NetLayer
receiver
)
{
Posi
tion
ps
=
sender
.
getNetPosition
();
Posi
tion
pr
=
receiver
.
getNetPosition
();
return
ps
.
getD
istance
(
pr
);
Loca
tion
ps
=
sender
.
getNetPosition
();
Loca
tion
pr
=
receiver
.
getNetPosition
();
return
ps
.
d
istance
To
(
pr
);
}
/**
...
...
src/de/tud/kom/p2psim/impl/network/modular/st/latency/SimpleStaticLatencyModel.java
View file @
0c80da45
...
...
@@ -23,12 +23,12 @@
package
de.tud.kom.p2psim.impl.network.modular.st.latency
;
import
de.tud.kom.p2psim.api.common.Position
;
import
de.tud.kom.p2psim.api.network.NetMessage
;
import
de.tud.kom.p2psim.impl.network.AbstractNetLayer
;
import
de.tud.kom.p2psim.impl.network.modular.db.NetMeasurementDB
;
import
de.tud.kom.p2psim.impl.network.modular.st.LatencyStrategy
;
import
de.tudarmstadt.maki.simonstrator.api.Time
;
import
de.tudarmstadt.maki.simonstrator.api.component.sensor.location.Location
;
public
class
SimpleStaticLatencyModel
implements
LatencyStrategy
{
...
...
@@ -60,10 +60,10 @@ public class SimpleStaticLatencyModel implements LatencyStrategy {
*/
protected
double
getDistance
(
AbstractNetLayer
nlSender
,
AbstractNetLayer
nlReceiver
){
Posi
tion
ps
=
nlSender
.
getNetPosition
();
Posi
tion
pr
=
nlReceiver
.
getNetPosition
();
Loca
tion
ps
=
nlSender
.
getNetPosition
();
Loca
tion
pr
=
nlReceiver
.
getNetPosition
();
return
ps
.
getD
istance
(
pr
);
return
ps
.
d
istance
To
(
pr
);
}
...
...
Prev
1
2
3
4
Next
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment