|
@@ -5,6 +5,8 @@ import java.util.Map
|
|
|
import java.util.Set
|
|
|
import org.slf4j.Logger
|
|
|
import org.slf4j.LoggerFactory
|
|
|
+import org.intocps.fmi.Fmi2Status
|
|
|
+import org.intocps.fmi.FmuInvocationException
|
|
|
|
|
|
class CosimRunUtils {
|
|
|
|
|
@@ -20,9 +22,13 @@ class CosimRunUtils {
|
|
|
}
|
|
|
|
|
|
def static exitInitMode(List<UnitInstance> units, Map<UnitInstance, IFmuInstance> fmuInstanceMap) {
|
|
|
+ logger.debug("Exiting initialization mode.")
|
|
|
// Exit init mode
|
|
|
for (unit : units) {
|
|
|
- fmuInstanceMap.get(unit).exitInitializationMode()
|
|
|
+ val result = fmuInstanceMap.get(unit).exitInitializationMode()
|
|
|
+ if (result !== Fmi2Status.OK){
|
|
|
+ throw new FmuInvocationException('''Unit «unit» exit initialization mode failed.''')
|
|
|
+ }
|
|
|
logger.debug("Unit {} exit initialization mode.", unit)
|
|
|
}
|
|
|
}
|
|
@@ -30,7 +36,11 @@ class CosimRunUtils {
|
|
|
def static intoInitMode(List<UnitInstance> units, Map<UnitInstance, IFmuInstance> fmuInstanceMap) {
|
|
|
for (unit: units){
|
|
|
val fmuInstance = fmuInstanceMap.get(unit)
|
|
|
- fmuInstance.enterInitializationMode()
|
|
|
+ val result = fmuInstance.enterInitializationMode()
|
|
|
+ if (result !== Fmi2Status.OK){
|
|
|
+ throw new FmuInvocationException('''Unit «unit» enter initialization mode failed.''')
|
|
|
+ }
|
|
|
+
|
|
|
logger.debug("Unit {} enter initialization mode", unit)
|
|
|
}
|
|
|
}
|