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