Можно ли обновлять и использовать обновленные файлы .ini и .ned во время моделирования Omnet ++?

Я пытаюсь запустить программное обеспечение Omnet ++ и Matlab параллельно и хочу, чтобы они обменивались данными. Когда Omnet ++ работает, я хочу обновить положение узла, и для этого я хочу постоянно редактировать файлы .ned и .int с результатами Matlab. Во время моделирования я хочу сгенерировать файл результатов, используя обновленные файлы. Я хочу просто обновить позицию и не хочу добавлять или удалять какой-либо узел. Пожалуйста, предложите мне способ продолжения?

matlab_loop
{
 matlab_writes_position_in_ned_file;
 delay(100ms);
 }
omnet_loop
 {
   omnet_loads_ned_and_simulates;
   //sca and vec should update;
   delay(100ms);
 }    

Спасибо.


person sgk    schedule 15.07.2015    source источник
comment
чем этот вопрос отличается от предыдущего, который вы задали? stackoverflow.com/ questions / 31418184 / ... Удалите другой вопрос, если он вам не нужен !. предоставьте дополнительную информацию о примере и конкретных .ned файлах и .ini файлах, которые вы хотите использовать. Разве это не сработает для вас, если вы запустите все симуляции с разными позициями, а затем загрузите свои результаты в Matlab после того, как все симуляции будут завершены, есть ли конкретная цель для параллелизма, которого вы хотите достичь.   -  person user4786271    schedule 16.07.2015
comment
то, что вы ищете, - довольно сложная задача, по которой практически невозможно помочь, учитывая небольшой объем информации, которую вы нам предоставляете ...   -  person user4786271    schedule 16.07.2015
comment
Я хочу запустить V-REP, matlab и omnet ++ параллельно. Это будет похоже на структуру совместного моделирования. Matlab - это основное программное обеспечение для управления. matlab может считывать позицию из V-REP на основе позиций узлов в V-REP, я хочу вызвать Omnet ++ и обновить положение узлов в Omnet ++. Но положение узлов в V-REP постоянно меняется, и я хочу установить это изменение положения моих узлов в Omnet ++ с помощью Matlab. Поскольку положение узлов в V-REP меняется, я не знаю все позиции в начале, поэтому я не могу установить их в начале моделирования в Omnet ++.   -  person sgk    schedule 16.07.2015
comment
И поэтому я хочу, чтобы все они (программное обеспечение) работали параллельно. Так что вся эта настройка будет работать как каркас совместного моделирования. На данном этапе файлы .ned и .ini являются простыми (без каких-либо модификаций). Надеюсь, это понятно. Если вам нужно больше объяснений, дайте мне знать, я постараюсь их прояснить. Спасибо   -  person sgk    schedule 16.07.2015
comment
Обязательно включите в свой исходный вопрос (отредактировав его) дополнительную информацию, которую вы предоставляете в разделах комментариев. Это поможет будущим читателям понять общую задачу и даст более полный ответ.   -  person user4786271    schedule 17.07.2015


Ответы (2)


Файлы NED и Ini читаются только во время инициализации модели. Вы не можете «прочитать» их снова после запуска симуляции. С другой стороны, вы можете изменять свои параметры и создавать / удалять модули, используя API C ++ OMNeT ++. В основном вы хотите добиться: установите позицию узла на основе некоторых вычислений, выполненных кодом Matlab. Как это сделать:

  • Сгенерируйте код C из вашего кода Matlab.
  • Свяжите этот код с вашей моделью OMNeT ++
  • Создайте новую модель мобильности (при условии, что вы используете INET), которая использует код Matlab
person Rudi    schedule 16.07.2015
comment
Спасибо, Руди. Я пытаюсь понять ваш ответ. Я использую MiXiM. Я добавил еще кое-что в комментарии выше. Я хочу использовать Matlab в фоновом режиме для анализа результатов, поэтому преобразование кода C может ограничить мои возможности для работы. Вместо этого я думаю, что первый вариант, который вы предложили, может работать лучше. Я работаю над этим сейчас, но я не получаю много полезной помощи из Интернета по Omnet ++ API. Не могли бы вы предложить какой-нибудь документ, который я должен прочитать по API? - person sgk; 16.07.2015
comment
Кроме того, если я использую C ++ API Omnet ++, можно ли обновить параметры (например, положение узлов) во время моделирования? И мне нужно генерировать результаты в соответствии с этими изменениями после каждого определенного временного интервала во время текущего моделирования, могу я это сделать? - person sgk; 17.07.2015
comment
Я не предлагал выполнить один из этих пунктов, скорее, они должны быть выполнены ВСЕ в таком порядке. Я не предлагал переписать ваш код на C, а скорее преобразовал ваш существующий код Matlab в C. Есть инструменты для этого AFAIK (никогда не использовал Matlab), но преобразование может быть выполнено автоматически. - person Rudi; 17.07.2015
comment
Также обратите внимание, что параметры определяют начальную позицию узла. Изменение параметров не повлияет на положение узла. Чтобы разместить узел в соответствии с вашими собственными критериями (возможно, на основе некоторых вычислений в matab), вам необходимо создать новый алгоритм мобильности, реализующий интерфейс IMobility. И напоследок: я бы серьезно изучил INET 3.0 и посмотрел, соответствует ли он вашим потребностям. Почти все функции MiXiM были объединены / повторно реализованы, и MiXiM больше не поддерживается. - person Rudi; 17.07.2015
comment
При обновлении позиции на самом деле я хочу изменить позицию в файле .ned (например, в этом коде я хочу обновить отображение ---- node1 [numNodes]: Host802154A {@display (p = 92,66);). Я хочу использовать удаленный API только для редактирования этого отображения в файле .ned. И все это нужно делать в процессе симуляции. - person sgk; 20.07.2015
comment
Еще одна вещь, даже если я создам новый алгоритм мобильности, реализующий интерфейс IMobility, могу ли я отредактировать его во время симуляции? - person sgk; 20.07.2015

То, что вы ищете, кажется скорее проектом, чем вопросом / проблемой, которую можно решить на сайте вопросов и ответов, например, stackoverflow.

К сожалению, я плохо разбираюсь в matlab и V-REP, чтобы дать вам удовлетворительный ответ. Однако похоже, что вам нужно будет поиграться с API на более низких уровнях.

В качестве примера объединения различных инструментов моделирования для формирования структуры моделирования в случае необходимости рассмотрите возможность чтения этот документ и этот

Также обратите внимание на ответ @Rudi. Кажется, он знает, о чем говорит.

person user4786271    schedule 17.07.2015