停止一个模拟器中节点的移动



如何在One Simulator中停止特定节点的移动?速度设置可在default_settings.txt中找到。但是如何动态更改节点的速度?

在这种情况下,您还可以使用移动文件夹中的其他移动模块。它们大多是基于地图的移动,如果你能提供相应的基于地图的数据,你就可以实现"移动一段时间,然后停止"。

同时,编写自己的动作模块是一种替代方法,在大多数情况下它会更有效。在ONE模拟器中,您需要知道每个节点的位置在World.javamoveHosts(double timeIncrement)函数中更新。要实现自己的运动逻辑,需要在DTNHost.java中重写move()函数。还需要一个新的移动模块(例如MoveAndStop.java(,它继承了MovementModel.java中的MovementModel classdefault_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]
...
...

最新更新