В этом случае вы также можете использовать другой модуль движения в папке движения.Большинство из них основаны на перемещении по карте. Если вы можете предоставить соответствующие данные, основанные на карте, вы можете достичь «двигаться в течение некоторого времени и останавливаться после этого».
Между тем, написание собственного модуля движения является альтернативным методом, и в большинстве случаев он может быть более эффективным.В ОДНОМ симуляторе вы должны знать, что местоположение каждого узла обновляется в функции moveHosts(double timeIncrement)
в World.java
.Чтобы реализовать свою собственную логику движения, вам нужно переписать функцию move()
в DTNHost.java
.Также требуется новый модуль движения (например, MoveAndStop.java), который наследует MovementModel class
в MovementModel.java
и изменяет примерно Group.MovementModel=MoveAndStop.java
в default_settings.txt
.
Обратите внимание, что если вы хотите реализовать свое собственное движениеЛогика в соответствии с текущим временем симуляции, вы можете вызвать функцию SimClock.getTime()
, чтобы получить ее.
Надеюсь, мой ответ может вдохновить вас на решение вашей проблемы.