我正在使用 JFMI ( https://ptolemy.berkeley.edu/java/jfmi/ ) 从 Java 与 FMI ( 在 C 中) 进行通信。
对于通信,我使用现有函数(例如,simulation.write(inPort.getName()).with((Double) value);)。
但是,我面临两个问题:
- fmuTemplate.c 包含用于配置浮点数、整数和其他变量的全局变量。但是,配置对我来说似乎不合逻辑。例如,如果我写 NUMBER_OF_REALS 是 2,而 NUMBER_OF_INTEGERS 是 2,我只能使用两次写入实数/浮点数或两次写入整数。如果我想使用 4 个标量变量(2 个浮点数,2 个整数),我需要定义 NUMBER_OF_REALS 2 和 NUMBER_OF_INTEGERS 4。就好像顺序是递增的一样。
- 将字符串从 Java 写入 FMI 似乎会使程序崩溃(“invalidState:fmi2SetString: Illegal call sequence.”)。
您是否遇到过类似的问题?如果是的话,你能分享你的经验吗?
最好的问候,谢谢。