Class StatementGeneratorContainer
java.lang.Object
org.intocps.maestro.plugin.initializer.spec.StatementGeneratorContainer
-
Field Summary
FieldsModifier and TypeFieldDescriptiondoubleorg.intocps.maestro.ast.node.PExpstatic final BiFunction<org.intocps.maestro.ast.node.PExp, String, org.intocps.maestro.ast.node.PStm> static final Integer[]doubleorg.intocps.maestro.ast.node.PExp -
Method Summary
Modifier and TypeMethodDescriptionList<org.intocps.maestro.ast.node.PStm> createFixedPointIteration(List<org.intocps.maestro.framework.fmi2.RelationVariable> loopVariables, int iterationMax, int sccNumber, org.intocps.maestro.framework.fmi2.Fmi2SimulationEnvironment env) org.intocps.maestro.ast.node.PStmcreateSetupExperimentStatement(String instanceName, boolean toleranceDefined, double tolerance, boolean stopTimeDefined) org.intocps.maestro.ast.node.PStmenterInitializationMode(String instanceName) org.intocps.maestro.ast.node.PStmexitInitializationMode(String instanceName) org.intocps.maestro.ast.node.SPrimitiveTypeBasefmiTypeToMablType(org.intocps.maestro.fmi.Fmi2ModelDescription.Types type) List<org.intocps.maestro.ast.node.PStm> generateAssignmentStmForSet(String instanceName, long[] longs, org.intocps.maestro.ast.LexIdentifier valueArray, org.intocps.maestro.ast.LexIdentifier valRefs, String setCommand) org.intocps.maestro.ast.node.PStmIntFunction<org.apache.commons.lang3.tuple.Pair<org.intocps.maestro.ast.node.PExp, List<org.intocps.maestro.ast.node.PStm>>> generateInstanceVariablesValueLocator(String instanceName, long[] valRefs, IntFunction<org.intocps.maestro.ast.node.PExp> literalExp, org.intocps.maestro.fmi.Fmi2ModelDescription.Types targetType) This creates a function (valueLocator) that is used to locate an output corresponding to the given input that is to be set.static StatementGeneratorContainerObject[]getValues(List<org.intocps.maestro.fmi.Fmi2ModelDescription.ScalarVariable> variables, org.intocps.maestro.framework.fmi2.ModelConnection.ModelInstance modelInstance) List<org.intocps.maestro.ast.node.PStm> getValueStm(String instanceName, org.intocps.maestro.ast.LexIdentifier valueArray, long[] longs, org.intocps.maestro.fmi.Fmi2ModelDescription.Types type) static voidreset()List<org.intocps.maestro.ast.node.PStm> setBooleansStm(String instanceName, long[] longs, boolean[] booleans) voidsetInputOutputMapping(Map<org.intocps.maestro.framework.fmi2.ModelConnection.ModelInstance, Map<org.intocps.maestro.fmi.Fmi2ModelDescription.ScalarVariable, AbstractMap.SimpleEntry<org.intocps.maestro.framework.fmi2.ModelConnection.ModelInstance, org.intocps.maestro.fmi.Fmi2ModelDescription.ScalarVariable>>> inputOutputMapping) List<org.intocps.maestro.ast.node.PStm> setIntegersStm(String instanceName, long[] longs, int[] ints) List<org.intocps.maestro.ast.node.PStm> setRealsStm(String instanceName, long[] longs, double[] doubles) List<org.intocps.maestro.ast.node.PStm> setStringsStm(String instanceName, long[] longs, String[] strings) List<org.intocps.maestro.ast.node.PStm> setValueOnPortStm(org.intocps.maestro.ast.LexIdentifier comp, org.intocps.maestro.fmi.Fmi2ModelDescription.Types type, List<org.intocps.maestro.fmi.Fmi2ModelDescription.ScalarVariable> variables, long[] scalarValueIndices, org.intocps.maestro.framework.fmi2.Fmi2SimulationEnvironment env) static org.intocps.maestro.ast.node.PStmstatusCheck(org.intocps.maestro.ast.node.PExp status, Integer[] statusCodes, String message, boolean breakOut, boolean setGlobalExecution) test()
-
Field Details
-
errorReporter
public static final BiFunction<org.intocps.maestro.ast.node.PExp,String, errorReporterorg.intocps.maestro.ast.node.PStm> -
FMIWARNINGANDFATALERRORCODES
-
startTime
public org.intocps.maestro.ast.node.PExp startTime -
endTime
public org.intocps.maestro.ast.node.PExp endTime -
absoluteTolerance
public double absoluteTolerance -
relativeTolerance
public double relativeTolerance -
modelParameters
-
-
Method Details
-
getInstance
-
reset
public static void reset() -
statusCheck
-
fmiTypeToMablType
public org.intocps.maestro.ast.node.SPrimitiveTypeBase fmiTypeToMablType(org.intocps.maestro.fmi.Fmi2ModelDescription.Types type) -
createSetupExperimentStatement
public org.intocps.maestro.ast.node.PStm createSetupExperimentStatement(String instanceName, boolean toleranceDefined, double tolerance, boolean stopTimeDefined) -
exitInitializationMode
-
createFixedPointIteration
public List<org.intocps.maestro.ast.node.PStm> createFixedPointIteration(List<org.intocps.maestro.framework.fmi2.RelationVariable> loopVariables, int iterationMax, int sccNumber, org.intocps.maestro.framework.fmi2.Fmi2SimulationEnvironment env) throws ExpandException - Throws:
ExpandException
-
setValueOnPortStm
public List<org.intocps.maestro.ast.node.PStm> setValueOnPortStm(org.intocps.maestro.ast.LexIdentifier comp, org.intocps.maestro.fmi.Fmi2ModelDescription.Types type, List<org.intocps.maestro.fmi.Fmi2ModelDescription.ScalarVariable> variables, long[] scalarValueIndices, org.intocps.maestro.framework.fmi2.Fmi2SimulationEnvironment env) throws ExpandException - Throws:
ExpandException
-
enterInitializationMode
-
setInputOutputMapping
public void setInputOutputMapping(Map<org.intocps.maestro.framework.fmi2.ModelConnection.ModelInstance, Map<org.intocps.maestro.fmi.Fmi2ModelDescription.ScalarVariable, AbstractMap.SimpleEntry<org.intocps.maestro.framework.fmi2.ModelConnection.ModelInstance, org.intocps.maestro.fmi.Fmi2ModelDescription.ScalarVariable>>> inputOutputMapping) -
generateInstanceVariablesValueLocator
public IntFunction<org.apache.commons.lang3.tuple.Pair<org.intocps.maestro.ast.node.PExp,List<org.intocps.maestro.ast.node.PStm>>> generateInstanceVariablesValueLocator(String instanceName, long[] valRefs, IntFunction<org.intocps.maestro.ast.node.PExp> literalExp, org.intocps.maestro.fmi.Fmi2ModelDescription.Types targetType) This creates a function (valueLocator) that is used to locate an output corresponding to the given input that is to be set. If the co-simulation has enteredinstancesLookupDependenciesthen it will determine the variable using the inputs to outputs map (inputOutputMapping2) and locate it usinginstanceVariables. Otherwise it uses the argumentliteralExpto return avalueLocator. It uses to- Parameters:
instanceName- name of the instance on which the FMI-function is invoked.valRefs- value reference argument to the FMI functionliteralExp- Function to apply the int to, if the co-simulation has not enteredinstancesLookupDependenciesmode.- Returns:
- a function (valueLocator) that, given an int representing the index of
valRefs, will locate the corresponding output
-
setRealsStm
-
setBooleansStm
-
setIntegersStm
-
setStringsStm
-
generateAssignmentStmForSet
-
generateIfConditionForSetGet
public org.intocps.maestro.ast.node.PStm generateIfConditionForSetGet() -
getValues
-
getValueStm
public List<org.intocps.maestro.ast.node.PStm> getValueStm(String instanceName, org.intocps.maestro.ast.LexIdentifier valueArray, long[] longs, org.intocps.maestro.fmi.Fmi2ModelDescription.Types type) throws ExpandException - Throws:
ExpandException
-
test
-