Преглед изворни кода

minor improvements on msg feedback and extrapolation ports

Claudio Gomes пре 6 година
родитељ
комит
e830263ca8

Разлика између датотеке није приказан због своје велике величине
+ 2 - 0
HintCO/model/Candidates.genmodel


Разлика између датотеке није приказан због своје велике величине
+ 10 - 0
HintCO/model/hintco.ecore


+ 12 - 2
HintCO/src/ua/ansymo/hintco/CosimRunUtils.xtend

@@ -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)
 		}
 	}

+ 1 - 1
HintCO/src/ua/ansymo/hintco/ExtrapolationAdaptedPort.xtend

@@ -15,7 +15,7 @@ class ExtrapolationAdaptedPort extends ApproximationAdaptedPort {
 	}
 	
 	def extrapolate(double t, double dt, double h, double H) {
-		previous_val + ((current_val - previous_val)/H)*(H + dt + h)
+		current_val + ((current_val - previous_val)/H)*(dt + h)
 	}
 	
 }

+ 6 - 0
README.md

@@ -30,6 +30,12 @@ The build can be done in both Eclipse and Maven.
 Likewise, tests are run using either Eclipse (Junit 4) or Maven.
 We recommend running the Eclipse plugin tests.
 
+Maven command:
+
+```
+mvn install
+```
+
 ### Exporting an Application
 
 The binaries are exported as an Eclipse RCP Application.