JFMI, число скалярных переменных, передаваемая строка - PullRequest
0 голосов
/ 05 сентября 2018

Я использую JFMI (https://ptolemy.berkeley.edu/java/jfmi/) для связи с FMI (в C) из Java.

Для связи я использую существующие функции (например, Simulation.write (inPort.getName ()). With ((Double) value);).

Однако я сталкиваюсь с двумя проблемами:

  • fmuTemplate.c содержит глобальные переменные для настройки чисел с плавающей точкой, целых и других переменных. Однако конфигурация не кажется мне логичной. Например, если я напишу, что NUMBER_OF_REALS равно 2, а NUMBER_OF_INTEGERS равно 2, я могу использовать только два раза запись в вещественное число / число с плавающей запятой или два раза в целые числа. Если я хочу использовать 4 скалярные переменные (2 float, 2 int), мне нужно определить NUMBER_OF_REALS 2 и NUMBER_OF_INTEGERS 4. Как если бы порядок был инкрементным.
  • Запись строк из Java в FMI приводит к сбою программы («invalidState: fmi2SetString: Недопустимая последовательность вызовов.»).

Возможно, вы сталкивались с подобными проблемами? Если да, не могли бы вы поделиться своим опытом?

С наилучшими пожеланиями и спасибо.

1 Ответ

0 голосов
/ 08 сентября 2018

Разве JFMI не только для FMI 1.0?

В любом случае, я хотел бы рассмотреть возможность использования JavaFMI или FMI4j, так как они все еще активно поддерживаются и доступны из maven central.

JavaFMI поддерживает FMI 1.0 и 2.0 для совместного моделирования и имеет более стабильный API. FMI4j работает быстрее (JNI против JNA) и поддерживает FMI 2.0 для совместного моделирования и обмена моделями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...