如何在One Simulator中停止特定节点的移动?速度设置在default_settings.txt。但是如何动态改变节点的速度呢?
2 回答
在移动文件夹中,存在"StationaryMovement"
模块,可以使特定节点停留在特定位置。
设置"default_settings.txt"
:要启用此模块,首先,您需要将此特定节点创建为单个组(例如,Group1
)。然后,您需要"movementModel"
将此组的设置更改为"StationaryMovement"
。
例如:
Group1.groupID = S
Group1.nrofHosts = 1
Group1.movementModel = StationaryMovement
Group1.nodeLocation = [X,Y]
...
...
在这种情况下,您也可以使用移动文件夹中的其他移动模块。大多是地图移动,如果能提供相应的地图数据,就可以实现“移动一段时间后停止”。
同时,编写自己的运动模块是另一种方法,在大多数情况下会更有效。在 ONE 模拟器中,您需要知道每个节点的位置moveHosts(double timeIncrement)
在World.java
. 要实现自己的运动逻辑,需要重写move()
. 还需要DTNHost.java
一个新的运动模块(例如,MoveAndStop.java),它继承MovementModel class
和MovementModel.java
改变Group.MovementModel=MoveAndStop.java
。default_settings.txt
注意,如果要根据当前仿真时间实现自己的运动逻辑,可以调用SimClock.getTime()
函数来获取。
我希望我的回答能启发你解决你的问题。