Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- model omTest_cs_st_FMU
- constant String fmuLocation = "/Volumes/Work/agx/CoSimulation/omTest.fmu";
- constant String fmuWorkingDir = "/private/var/folders/8x/2vdhp_nx64nb7qnb8yth7shw0000gn/T/OpenModelica_nils/OMEdit";
- parameter Integer logLevel = 3 "log level used during the loading of FMU" annotation (Dialog(tab="FMI", group="Enable logging"));
- parameter Boolean debugLogging = false "enables the FMU simulation logging" annotation (Dialog(tab="FMI", group="Enable logging"));
- constant String mimeType = "";
- constant Real timeout = 0.0;
- constant Boolean visible = false;
- constant Boolean interactive = false;
- parameter Real StartTime = 0.0 "start time used to initialize the slave" annotation (Dialog(tab="FMI", group="Step time"));
- parameter Real StopTime = 1.0 "stop time used to initialize the slave" annotation (Dialog(tab="FMI", group="Step time"));
- parameter Real communicationStepSize = (StopTime-StartTime)/500 "step size used by fmiDoStep" annotation (Dialog(tab="FMI", group="Step time"));
- constant Boolean stopTimeDefined = false;
- FMI1CoSimulation fmi1cs = FMI1CoSimulation(logLevel, fmuWorkingDir, "omTest", debugLogging, fmuLocation, mimeType, timeout, visible, interactive, StartTime, stopTimeDefined, StopTime);
- Modelica.Blocks.Interfaces.RealInput theInput(start=1.0,fixed=true) "The input, lol!" annotation(Placement(transformation(extent={{-120,60},{-100,80}})));
- Modelica.Blocks.Interfaces.RealOutput theOutput(start=1.0,fixed=true) "This is the output" annotation(Placement(transformation(extent={{100,60},{120,80}})));
- Real flowControl;
- equation
- flowControl = fmi1Functions.fmi1DoStep(fmi1cs, time, communicationStepSize, true);
- {theOutput} = fmi1Functions.fmi1GetReal(fmi1cs, {1.0}, flowControl);
- annotation(experiment(StartTime=0.0, StopTime=1.0, Tolerance=0.0001));
- annotation (Icon(graphics={
- Rectangle(
- extent={{-100,100},{100,-100}},
- lineColor={0,0,0},
- fillColor={240,240,240},
- fillPattern=FillPattern.Solid,
- lineThickness=0.5),
- Text(
- extent={{-100,40},{100,0}},
- lineColor={0,0,0},
- textString="%name"),
- Text(
- extent={{-100,-50},{100,-90}},
- lineColor={0,0,0},
- textString="V1.0")}));
- protected
- class FMI1CoSimulation
- extends ExternalObject;
- function constructor
- input Integer fmiLogLevel;
- input String workingDirectory;
- input String instanceName;
- input Boolean debugLogging;
- input String fmuLocation;
- input String mimeType;
- input Real timeOut;
- input Boolean visible;
- input Boolean interactive;
- input Real tStart;
- input Boolean stopTimeDefined;
- input Real tStop;
- output FMI1CoSimulation fmi1cs;
- external "C" fmi1cs = FMI1CoSimulationConstructor_OMC(fmiLogLevel, workingDirectory, instanceName, debugLogging, fmuLocation, mimeType, timeOut, visible, interactive, tStart, stopTimeDefined, tStop) annotation(Library = {"OpenModelicaFMIRuntimeC", "fmilib"});
- end constructor;
- function destructor
- input FMI1CoSimulation fmi1cs;
- external "C" FMI1CoSimulationDestructor_OMC(fmi1cs) annotation(Library = {"OpenModelicaFMIRuntimeC", "fmilib"});
- end destructor;
- end FMI1CoSimulation;
- package fmi1Functions
- function fmi1DoStep
- input FMI1CoSimulation fmi1cs;
- input Real currentCommunicationPoint;
- input Real communicationStepSize;
- input Boolean newStep;
- output Real outFlowControl;
- external "C" outFlowControl = fmi1DoStep_OMC(fmi1cs, currentCommunicationPoint, communicationStepSize, newStep) annotation(Library = {"OpenModelicaFMIRuntimeC", "fmilib"});
- end fmi1DoStep;
- function fmi1GetReal
- input FMI1CoSimulation fmi1cs;
- input Real realValuesReferences[:];
- input Real inFlowStatesInput;
- output Real realValues[size(realValuesReferences, 1)];
- external "C" fmi1GetReal_OMC(fmi1cs, size(realValuesReferences, 1), realValuesReferences, inFlowStatesInput, realValues, 2) annotation(Library = {"OpenModelicaFMIRuntimeC", "fmilib"});
- end fmi1GetReal;
- function fmi1SetReal
- input FMI1CoSimulation fmi1cs;
- input Real realValuesReferences[:];
- input Real realValues[size(realValuesReferences, 1)];
- output Real out_Values[size(realValuesReferences, 1)];
- external "C" fmi1SetReal_OMC(fmi1cs, size(realValuesReferences, 1), realValuesReferences, realValues, out_Values, 2) annotation(Library = {"OpenModelicaFMIRuntimeC", "fmilib"});
- end fmi1SetReal;
- function fmi1GetInteger
- input FMI1CoSimulation fmi1cs;
- input Real integerValuesReferences[:];
- input Real inFlowStatesInput;
- output Integer integerValues[size(integerValuesReferences, 1)];
- external "C" fmi1GetInteger_OMC(fmi1cs, size(integerValuesReferences, 1), integerValuesReferences, inFlowStatesInput, integerValues, 2) annotation(Library = {"OpenModelicaFMIRuntimeC", "fmilib"});
- end fmi1GetInteger;
- function fmi1SetInteger
- input FMI1CoSimulation fmi1cs;
- input Real integerValuesReferences[:];
- input Integer integerValues[size(integerValuesReferences, 1)];
- output Real out_Values[size(integerValuesReferences, 1)];
- external "C" fmi1SetInteger_OMC(fmi1cs, size(integerValuesReferences, 1), integerValuesReferences, integerValues, out_Values, 2) annotation(Library = {"OpenModelicaFMIRuntimeC", "fmilib"});
- end fmi1SetInteger;
- function fmi1GetBoolean
- input FMI1CoSimulation fmi1cs;
- input Real booleanValuesReferences[:];
- input Real inFlowStatesInput;
- output Boolean booleanValues[size(booleanValuesReferences, 1)];
- external "C" fmi1GetBoolean_OMC(fmi1cs, size(booleanValuesReferences, 1), booleanValuesReferences, inFlowStatesInput, booleanValues, 2) annotation(Library = {"OpenModelicaFMIRuntimeC", "fmilib"});
- end fmi1GetBoolean;
- function fmi1SetBoolean
- input FMI1CoSimulation fmi1cs;
- input Real booleanValuesReferences[:];
- input Boolean booleanValues[size(booleanValuesReferences, 1)];
- output Real out_Values[size(booleanValuesReferences, 1)];
- external "C" fmi1SetBoolean_OMC(fmi1cs, size(booleanValuesReferences, 1), booleanValuesReferences, booleanValues, out_Values, 2) annotation(Library = {"OpenModelicaFMIRuntimeC", "fmilib"});
- end fmi1SetBoolean;
- function fmi1GetString
- input FMI1CoSimulation fmi1cs;
- input Real stringValuesReferences[:];
- input Real inFlowStatesInput;
- output String stringValues[size(stringValuesReferences, 1)];
- external "C" fmi1GetString_OMC(fmi1cs, size(stringValuesReferences, 1), stringValuesReferences, inFlowStatesInput, stringValues, 2) annotation(Library = {"OpenModelicaFMIRuntimeC", "fmilib"});
- end fmi1GetString;
- function fmi1SetString
- input FMI1CoSimulation fmi1cs;
- input Real stringValuesReferences[:];
- input String stringValues[size(stringValuesReferences, 1)];
- output Real out_Values[size(stringValuesReferences, 1)];
- external "C" fmi1SetString_OMC(fmi1cs, size(stringValuesReferences, 1), stringValuesReferences, stringValues, out_Values, 2) annotation(Library = {"OpenModelicaFMIRuntimeC", "fmilib"});
- end fmi1SetString;
- end fmi1Functions;
- package fmiStatus
- constant Integer fmiOK=0;
- constant Integer fmiWarning=1;
- constant Integer fmiDiscard=2;
- constant Integer fmiError=3;
- constant Integer fmiFatal=4;
- constant Integer fmiPending=5;
- end fmiStatus;
- end omTest_cs_st_FMU;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement