Изменить/установить новую позицию узла во время моделирования в Omnet++

У меня есть симуляция, в которой сейчас есть BonnMotionMobility, где я указываю, где будут находиться узлы во время симуляции. Но я хочу, чтобы в результате каких-то событий некоторые узлы меняли свое положение на другое положение во время симуляции. Есть ли какая-либо функция для «установки новой позиции», которую можно вызвать где-то в середине текущей симуляции (некоторая модель реактивной мобильности)?

Надеюсь, я достаточно ясно изложил свою проблему. Спасибо за ваши ответы.

Не могли бы вы показать минимальный воспроизводимый пример, пожалуйста? Трудно комментировать код, который вы не видите.

Jesper Juhl 23.07.2019 23:39

Я просто спрашиваю, есть ли способ установить новую позицию узла во время моделирования. но это может быть что-то вроде: if (istrue){ setnewposition(node[1], 10,10);}

João P. 23.07.2019 23:41

Учтите, что у вашей аудитории может быть без понятия, о какой симуляции вы говорите. Также ваш вопрос действительно должен рассказать аудитории, что такое «Омнет». И, наконец, без минимальный воспроизводимый пример большинству людей будет сложно ответить, даже если они знают все сокращения. Все, что я говорю, это: сделайте свой вопрос легким для ответа, помогая своей аудитории :)

Jesper Juhl 23.07.2019 23:45

Чтобы ответить на мою проблему, требуется немного знаний и опыта работы с omnet. Если они даже не знают, что такое омнет, то, к сожалению, ничем помочь не могут. В данном случае задаю прямой вопрос, мало ли толку от кода "минимально воспроизводимого примера". Спасибо :)

João P. 23.07.2019 23:55
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
4
266
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Не так. Если вы хотите реализовать собственную логику перемещения узлов, вам следует реализовать собственную модель мобильности (основанную на MovingMobilityBase или чем-то другом). Вы должны передавать всю необходимую информацию модулю мобильности, т.е. отправлять туда события или сигналы, а логика движения должна обрабатываться внутри модуля мобильности. В текущей архитектуре определение местоположения модуля является исключительной обязанностью модуля мобильности.

То, что вы предлагаете (ища функцию, подобную setCoordinates()), заключается в том, что вы хотите перенести эту ответственность на другие несвязанные модули, что обычно не является хорошим решением.

Короче говоря, вы должны написать свой собственный модуль мобильности, который делает это. Очевидно, вы можете написать простую модель с функцией setCoordinates() и вызывать ее из другого кода.

Другие вопросы по теме