Class StatementGeneratorContainer
- java.lang.Object
-
- org.intocps.maestro.plugin.initializer.spec.StatementGeneratorContainer
-
public class StatementGeneratorContainer extends java.lang.Object
-
-
Field Summary
Fields Modifier and Type Field Description doubleabsoluteToleranceorg.intocps.maestro.ast.node.PExpendTimestatic java.util.function.BiFunction<org.intocps.maestro.ast.node.PExp,java.lang.String,org.intocps.maestro.ast.node.PStm>errorReporterstatic java.lang.Integer[]FMIWARNINGANDFATALERRORCODESjava.util.List<ModelParameter>modelParametersdoublerelativeToleranceorg.intocps.maestro.ast.node.PExpstartTime
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description java.util.List<org.intocps.maestro.ast.node.PStm>createFixedPointIteration(java.util.List<org.intocps.maestro.framework.fmi2.Fmi2SimulationEnvironment.Variable> loopVariables, int iterationMax, int sccNumber, org.intocps.maestro.framework.fmi2.Fmi2SimulationEnvironment env)org.intocps.maestro.ast.node.PStmcreateSetupExperimentStatement(java.lang.String instanceName, boolean toleranceDefined, double tolerance, boolean stopTimeDefined)org.intocps.maestro.ast.node.PStmenterInitializationMode(java.lang.String instanceName)org.intocps.maestro.ast.node.PStmexitInitializationMode(java.lang.String instanceName)org.intocps.maestro.ast.node.SPrimitiveTypeBasefmiTypeToMablType(org.intocps.maestro.fmi.Fmi2ModelDescription.Types type)java.util.List<org.intocps.maestro.ast.node.PStm>generateAssignmentStmForSet(java.lang.String instanceName, long[] longs, org.intocps.maestro.ast.LexIdentifier valueArray, org.intocps.maestro.ast.LexIdentifier valRefs, java.lang.String setCommand)org.intocps.maestro.ast.node.PStmgenerateIfConditionForSetGet()java.util.function.IntFunction<org.apache.commons.lang3.tuple.Pair<org.intocps.maestro.ast.node.PExp,java.util.List<org.intocps.maestro.ast.node.PStm>>>generateInstanceVariablesValueLocator(java.lang.String instanceName, long[] valRefs, java.util.function.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()java.lang.Object[]getValues(java.util.List<org.intocps.maestro.fmi.Fmi2ModelDescription.ScalarVariable> variables, org.intocps.maestro.framework.fmi2.ModelConnection.ModelInstance modelInstance)java.util.List<org.intocps.maestro.ast.node.PStm>getValueStm(java.lang.String instanceName, org.intocps.maestro.ast.LexIdentifier valueArray, long[] longs, org.intocps.maestro.fmi.Fmi2ModelDescription.Types type)static voidreset()java.util.List<org.intocps.maestro.ast.node.PStm>setBooleansStm(java.lang.String instanceName, long[] longs, boolean[] booleans)voidsetInputOutputMapping(java.util.Map<org.intocps.maestro.framework.fmi2.ModelConnection.ModelInstance,java.util.Map<org.intocps.maestro.fmi.Fmi2ModelDescription.ScalarVariable,java.util.AbstractMap.SimpleEntry<org.intocps.maestro.framework.fmi2.ModelConnection.ModelInstance,org.intocps.maestro.fmi.Fmi2ModelDescription.ScalarVariable>>> inputOutputMapping)java.util.List<org.intocps.maestro.ast.node.PStm>setIntegersStm(java.lang.String instanceName, long[] longs, int[] ints)java.util.List<org.intocps.maestro.ast.node.PStm>setRealsStm(java.lang.String instanceName, long[] longs, double[] doubles)java.util.List<org.intocps.maestro.ast.node.PStm>setStringsStm(java.lang.String instanceName, long[] longs, java.lang.String[] strings)java.util.List<org.intocps.maestro.ast.node.PStm>setValueOnPortStm(org.intocps.maestro.ast.LexIdentifier comp, org.intocps.maestro.fmi.Fmi2ModelDescription.Types type, java.util.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, java.lang.Integer[] statusCodes, java.lang.String message, boolean breakOut, boolean setGlobalExecution)java.lang.Objecttest()
-
-
-
Field Detail
-
errorReporter
public static final java.util.function.BiFunction<org.intocps.maestro.ast.node.PExp,java.lang.String,org.intocps.maestro.ast.node.PStm> errorReporter
-
FMIWARNINGANDFATALERRORCODES
public static final java.lang.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 java.util.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, java.lang.Integer[] statusCodes, java.lang.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(java.lang.String instanceName, boolean toleranceDefined, double tolerance, boolean stopTimeDefined)
-
exitInitializationMode
public org.intocps.maestro.ast.node.PStm exitInitializationMode(java.lang.String instanceName)
-
createFixedPointIteration
public java.util.List<org.intocps.maestro.ast.node.PStm> createFixedPointIteration(java.util.List<org.intocps.maestro.framework.fmi2.Fmi2SimulationEnvironment.Variable> loopVariables, int iterationMax, int sccNumber, org.intocps.maestro.framework.fmi2.Fmi2SimulationEnvironment env) throws org.intocps.maestro.plugin.ExpandException- Throws:
org.intocps.maestro.plugin.ExpandException
-
setValueOnPortStm
public java.util.List<org.intocps.maestro.ast.node.PStm> setValueOnPortStm(org.intocps.maestro.ast.LexIdentifier comp, org.intocps.maestro.fmi.Fmi2ModelDescription.Types type, java.util.List<org.intocps.maestro.fmi.Fmi2ModelDescription.ScalarVariable> variables, long[] scalarValueIndices, org.intocps.maestro.framework.fmi2.Fmi2SimulationEnvironment env) throws org.intocps.maestro.plugin.ExpandException- Throws:
org.intocps.maestro.plugin.ExpandException
-
enterInitializationMode
public org.intocps.maestro.ast.node.PStm enterInitializationMode(java.lang.String instanceName)
-
setInputOutputMapping
public void setInputOutputMapping(java.util.Map<org.intocps.maestro.framework.fmi2.ModelConnection.ModelInstance,java.util.Map<org.intocps.maestro.fmi.Fmi2ModelDescription.ScalarVariable,java.util.AbstractMap.SimpleEntry<org.intocps.maestro.framework.fmi2.ModelConnection.ModelInstance,org.intocps.maestro.fmi.Fmi2ModelDescription.ScalarVariable>>> inputOutputMapping)
-
generateInstanceVariablesValueLocator
public java.util.function.IntFunction<org.apache.commons.lang3.tuple.Pair<org.intocps.maestro.ast.node.PExp,java.util.List<org.intocps.maestro.ast.node.PStm>>> generateInstanceVariablesValueLocator(java.lang.String instanceName, long[] valRefs, java.util.function.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 java.util.List<org.intocps.maestro.ast.node.PStm> setRealsStm(java.lang.String instanceName, long[] longs, double[] doubles)
-
setBooleansStm
public java.util.List<org.intocps.maestro.ast.node.PStm> setBooleansStm(java.lang.String instanceName, long[] longs, boolean[] booleans)
-
setIntegersStm
public java.util.List<org.intocps.maestro.ast.node.PStm> setIntegersStm(java.lang.String instanceName, long[] longs, int[] ints)
-
setStringsStm
public java.util.List<org.intocps.maestro.ast.node.PStm> setStringsStm(java.lang.String instanceName, long[] longs, java.lang.String[] strings)
-
generateAssignmentStmForSet
public java.util.List<org.intocps.maestro.ast.node.PStm> generateAssignmentStmForSet(java.lang.String instanceName, long[] longs, org.intocps.maestro.ast.LexIdentifier valueArray, org.intocps.maestro.ast.LexIdentifier valRefs, java.lang.String setCommand)
-
generateIfConditionForSetGet
public org.intocps.maestro.ast.node.PStm generateIfConditionForSetGet()
-
getValues
public java.lang.Object[] getValues(java.util.List<org.intocps.maestro.fmi.Fmi2ModelDescription.ScalarVariable> variables, org.intocps.maestro.framework.fmi2.ModelConnection.ModelInstance modelInstance)
-
getValueStm
public java.util.List<org.intocps.maestro.ast.node.PStm> getValueStm(java.lang.String instanceName, org.intocps.maestro.ast.LexIdentifier valueArray, long[] longs, org.intocps.maestro.fmi.Fmi2ModelDescription.Types type) throws org.intocps.maestro.plugin.ExpandException- Throws:
org.intocps.maestro.plugin.ExpandException
-
test
public java.lang.Object test()
-
-