У меня есть симуляция, в которой сейчас есть BonnMotionMobility, где я указываю, где будут находиться узлы во время симуляции. Но я хочу, чтобы в результате каких-то событий некоторые узлы меняли свое положение на другое положение во время симуляции. Есть ли какая-либо функция для «установки новой позиции», которую можно вызвать где-то в середине текущей симуляции (некоторая модель реактивной мобильности)?
Надеюсь, я достаточно ясно изложил свою проблему. Спасибо за ваши ответы.
Я просто спрашиваю, есть ли способ установить новую позицию узла во время моделирования. но это может быть что-то вроде: if (istrue){ setnewposition(node[1], 10,10);}
Учтите, что у вашей аудитории может быть без понятия, о какой симуляции вы говорите. Также ваш вопрос действительно должен рассказать аудитории, что такое «Омнет». И, наконец, без минимальный воспроизводимый пример большинству людей будет сложно ответить, даже если они знают все сокращения. Все, что я говорю, это: сделайте свой вопрос легким для ответа, помогая своей аудитории :)
Чтобы ответить на мою проблему, требуется немного знаний и опыта работы с omnet. Если они даже не знают, что такое омнет, то, к сожалению, ничем помочь не могут. В данном случае задаю прямой вопрос, мало ли толку от кода "минимально воспроизводимого примера". Спасибо :)
Не так. Если вы хотите реализовать собственную логику перемещения узлов, вам следует реализовать собственную модель мобильности (основанную на MovingMobilityBase или чем-то другом). Вы должны передавать всю необходимую информацию модулю мобильности, т.е. отправлять туда события или сигналы, а логика движения должна обрабатываться внутри модуля мобильности. В текущей архитектуре определение местоположения модуля является исключительной обязанностью модуля мобильности.
То, что вы предлагаете (ища функцию, подобную setCoordinates()), заключается в том, что вы хотите перенести эту ответственность на другие несвязанные модули, что обычно не является хорошим решением.
Короче говоря, вы должны написать свой собственный модуль мобильности, который делает это. Очевидно, вы можете написать простую модель с функцией setCoordinates() и вызывать ее из другого кода.
Не могли бы вы показать минимальный воспроизводимый пример, пожалуйста? Трудно комментировать код, который вы не видите.