Class StatementGeneratorContainer
- java.lang.Object
-
- org.intocps.maestro.plugin.initializer.spec.StatementGeneratorContainer
-
public class StatementGeneratorContainer extends Object
-
-
Field Summary
Fields Modifier and Type Field Description doubleabsoluteToleranceorg.intocps.maestro.ast.node.PExpendTimestatic BiFunction<org.intocps.maestro.ast.node.PExp,String,org.intocps.maestro.ast.node.PStm>errorReporterstatic Integer[]FMIWARNINGANDFATALERRORCODESList<ModelParameter>modelParametersdoublerelativeToleranceorg.intocps.maestro.ast.node.PExpstartTime
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description 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)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.PStmgenerateIfConditionForSetGet()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.static StatementGeneratorContainergetInstance()Object[]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)Objecttest()
-
-
-
Field Detail
-
errorReporter
public static final BiFunction<org.intocps.maestro.ast.node.PExp,String,org.intocps.maestro.ast.node.PStm> errorReporter
-
FMIWARNINGANDFATALERRORCODES
public static final Integer[] 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
public List<ModelParameter> modelParameters
-
-
Method Detail
-
getInstance
public static StatementGeneratorContainer getInstance()
-
reset
public static void reset()
-
statusCheck
public static org.intocps.maestro.ast.node.PStm statusCheck(org.intocps.maestro.ast.node.PExp status, Integer[] statusCodes, String message, boolean breakOut, boolean setGlobalExecution)
-
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
public org.intocps.maestro.ast.node.PStm exitInitializationMode(String instanceName)
-
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
public org.intocps.maestro.ast.node.PStm enterInitializationMode(String instanceName)
-
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
public List<org.intocps.maestro.ast.node.PStm> setRealsStm(String instanceName, long[] longs, double[] doubles)
-
setBooleansStm
public List<org.intocps.maestro.ast.node.PStm> setBooleansStm(String instanceName, long[] longs, boolean[] booleans)
-
setIntegersStm
public List<org.intocps.maestro.ast.node.PStm> setIntegersStm(String instanceName, long[] longs, int[] ints)
-
setStringsStm
public List<org.intocps.maestro.ast.node.PStm> setStringsStm(String instanceName, long[] longs, String[] strings)
-
generateAssignmentStmForSet
public 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)
-
generateIfConditionForSetGet
public org.intocps.maestro.ast.node.PStm generateIfConditionForSetGet()
-
getValues
public Object[] getValues(List<org.intocps.maestro.fmi.Fmi2ModelDescription.ScalarVariable> variables, org.intocps.maestro.framework.fmi2.ModelConnection.ModelInstance modelInstance)
-
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
public Object test()
-
-