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
568a9508
Commit
568a9508
authored
May 14, 2020
by
Julian Zobel
Browse files
Adaptions for mobile attraction points
parent
1ca1a44e
Changes
4
Hide whitespace changes
Inline
Side-by-side
src/de/tud/kom/p2psim/impl/topology/movement/modularosm/ModularMovementModel.java
View file @
568a9508
...
...
@@ -39,6 +39,7 @@ import de.tud.kom.p2psim.impl.topology.DefaultTopology;
import
de.tud.kom.p2psim.impl.topology.TopologyFactory
;
import
de.tud.kom.p2psim.impl.topology.movement.modularosm.attraction.AttractionPointViz
;
import
de.tud.kom.p2psim.impl.topology.movement.modularosm.attraction.IAttractionProvider
;
import
de.tud.kom.p2psim.impl.topology.movement.modularosm.attraction.MobileAttractionPoint
;
import
de.tud.kom.p2psim.impl.topology.movement.modularosm.mapvisualization.IMapVisualization
;
import
de.tud.kom.p2psim.impl.topology.movement.modularosm.transition.IAttractionAssigmentStrategy
;
import
de.tud.kom.p2psim.impl.topology.movement.modularosm.transition.IAttractionAssigmentStrategy.AttractionAssignmentListener
;
...
...
@@ -275,6 +276,12 @@ public class ModularMovementModel implements MovementModel, EventHandler, Attrac
doLocalMovement
(
component
,
currentTargets
.
get
(
component
));
}
for
(
IAttractionPoint
aps
:
getAttractionPoints
())
{
if
(
aps
instanceof
MobileAttractionPoint
)
{
((
MobileAttractionPoint
)
aps
).
move
();
}
}
Event
.
scheduleWithDelay
(
timeBetweenMoveOperation
,
this
,
null
,
EVENT_MOVE
);
}
...
...
src/de/tud/kom/p2psim/impl/topology/movement/modularosm/attraction/AttractionPoint.java
View file @
568a9508
...
...
@@ -20,16 +20,21 @@
package
de.tud.kom.p2psim.impl.topology.movement.modularosm.attraction
;
import
java.lang.annotation.Annotation
;
import
java.util.LinkedHashMap
;
import
java.util.Map
;
import
java.util.Random
;
import
org.jboss.logging.annotations.Pos
;
import
org.jboss.logging.annotations.Transform
;
import
de.tud.kom.p2psim.impl.topology.movement.modularosm.IAttractionBasedMovementAnalyzer
;
import
de.tud.kom.p2psim.impl.topology.movement.modularosm.ISocialGroupMovementAnalyzer
;
import
de.tud.kom.p2psim.impl.topology.util.PositionVector
;
import
de.tudarmstadt.maki.simonstrator.api.Monitor
;
import
de.tudarmstadt.maki.simonstrator.api.Randoms
;
import
de.tudarmstadt.maki.simonstrator.api.component.sensor.location.IAttractionPoint
;
import
de.tudarmstadt.maki.simonstrator.api.util.XMLConfigurableConstructor
;
/**
* In the current implementation, {@link IAttractionPoint}s cannot move anymore.
...
...
@@ -49,6 +54,12 @@ public class AttractionPoint extends BasicAttractionPoint {
protected
double
weight
=
0
;
protected
double
radius
=
0
;
@XMLConfigurableConstructor
({
"name"
,
"x"
,
"y"
})
public
AttractionPoint
(
String
name
,
double
x
,
double
y
)
{
this
(
name
,
new
PositionVector
(
x
,
y
));
}
public
AttractionPoint
(
String
name
,
PositionVector
posVec
)
{
super
(
name
,
posVec
);
...
...
src/de/tud/kom/p2psim/impl/topology/movement/modularosm/attraction/MobileAttractionPoint.java
0 → 100644
View file @
568a9508
/*
* 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.impl.topology.movement.modularosm.attraction
;
import
java.util.LinkedList
;
import
de.tud.kom.p2psim.impl.topology.util.PositionVector
;
import
de.tudarmstadt.maki.simonstrator.api.Time
;
import
de.tudarmstadt.maki.simonstrator.api.util.XMLConfigurableConstructor
;
public
class
MobileAttractionPoint
extends
AttractionPoint
{
private
LinkedList
<
PositionVector
>
waypoints
;
private
double
speed
=
0.5
;
private
boolean
move
=
false
;
private
long
pausetime
=
Time
.
MINUTE
*
10
;
private
long
timer
=
0L
;
@XMLConfigurableConstructor
({
"name"
,
"x"
,
"y"
})
public
MobileAttractionPoint
(
String
name
,
double
x
,
double
y
)
{
super
(
name
,
x
,
y
);
waypoints
=
new
LinkedList
<
PositionVector
>();
waypoints
.
add
(
new
PositionVector
(
250
,
250
));
waypoints
.
add
(
new
PositionVector
(
250
,
400
));
waypoints
.
add
(
new
PositionVector
(
750
,
400
));
waypoints
.
add
(
new
PositionVector
(
750
,
250
));
}
public
void
move
()
{
if
(
move
)
{
PositionVector
destination
=
waypoints
.
getFirst
();
if
(
destination
.
distanceTo
(
this
)
>
speed
)
{
this
.
set
(
this
.
moveStep
(
destination
,
speed
));
}
else
{
this
.
set
(
destination
);
waypoints
.
add
(
waypoints
.
removeFirst
());
timer
=
0
;
move
=
false
;
}
}
else
{
timer
+=
Time
.
SECOND
;
if
(
timer
>=
pausetime
)
{
timer
=
0
;
move
=
true
;
}
}
}
}
src/de/tud/kom/p2psim/impl/topology/movement/modularosm/transition/InAreaRoamingTransitionStrategy.java
View file @
568a9508
...
...
@@ -86,7 +86,8 @@ public class InAreaRoamingTransitionStrategy extends AbstractAttractionBasedAssi
this
.
roamingStates
.
put
(
comp
,
roamingTransitionState
.
PAUSE
);
// schedule roaming
Event
.
scheduleWithDelay
(
gaussianDistributionPauseTime
(
5
*
Time
.
MINUTE
,
Time
.
MINUTE
),
this
,
comp
,
EVENT_ROAMING_PAUSE_ENDED
);
//Event.scheduleWithDelay(gaussianDistributionPauseTime(5 * Time.MINUTE, Time.MINUTE), this, comp, EVENT_ROAMING_PAUSE_ENDED);
Event
.
scheduleWithDelay
(
15
*
Time
.
SECOND
,
this
,
comp
,
EVENT_ROAMING_PAUSE_ENDED
);
}
...
...
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