OMSimulatorLib
The OMSimulator project is a FMI-based co-simulation environment that supports ordinary (i.e., non-delayed) and TLM connections.
|
Go to the documentation of this file.
32 #ifndef _OMS_COMPONENT_FMU_CS_H_
33 #define _OMS_COMPONENT_FMU_CS_H_
44 #include <pugixml.hpp>
46 #include <unordered_map>
63 oms_status_enu_t
exportToSSD(pugi::xml_node& node,
Snapshot& snapshot, std::string variantName)
const;
64 oms_status_enu_t
exportToSSV(pugi::xml_node& ssvNode);
72 oms_status_enu_t
reset();
74 oms_status_enu_t
stepUntil(
double stopTime);
85 oms_status_enu_t
getBoolean(
const fmi2ValueReference& vr,
bool& value);
87 oms_status_enu_t
getInteger(
const fmi2ValueReference& vr,
int& value);
89 oms_status_enu_t
getReal(
const fmi2ValueReference& vr,
double& value);
91 oms_status_enu_t
getString(
const fmi2ValueReference& vr, std::string& value);
99 oms_status_enu_t
getDirectionalDerivativeHeper(
const int unknownIndex,
const int knownindex,
const std::vector<int>& dependencyList,
double& value);
125 oms_status_enu_t
newResources(
const std::string& ssvFilename,
const std::string& ssmFilename,
bool externalResources);
166 std::map<fmi2ValueReference, oms_fault_type_t>
fib;
ComRef cref
Definition: Component.h:166
oms::ComRef getValidCref(ComRef cref)
Definition: ComponentFMUCS.cpp:732
fmi2CallbackLogger omsfmi2logger
Definition: ComponentFMUCS.h:145
oms_status_enu_t deleteReferencesInSSD(const std::string &filename)
Definition: ComponentFMUCS.cpp:784
oms_status_enu_t initializeDependencyGraph_initialUnknowns()
Definition: ComponentFMUCS.cpp:447
oms_status_enu_t initializeDependencyGraph_outputs()
Definition: ComponentFMUCS.cpp:550
Values values
start values defined before instantiating the FMU and external inputs defined after initialization
Definition: ComponentFMUCS.h:157
const char * annotation_type
Definition: Tags.cpp:34
std::map< fmi2ValueReference, oms_fault_type_t > fib
fault injection blocks
Definition: ComponentFMUCS.h:166
Definition: SignalDerivative.h:41
oms_status_enu_t restoreState()
Definition: ComponentFMUCS.cpp:1940
#define logError_OnlyForRealInputs(cref)
Definition: Logging.h:144
oms_status_enu_t updateOrDeleteStartValueInReplacedComponent(std::vector< std::string > &warningList)
Definition: ComponentFMUCS.cpp:1752
std::string getUniqueID() const
Definition: System.cpp:2902
oms_status_enu_t setValuesResources(Values &values)
Definition: ComponentFMUCS.cpp:1739
Definition: SystemWC.h:48
oms_status_enu_t getBoolean(const ComRef &cref, bool &value)
Definition: ComponentFMUCS.cpp:899
void readFromSockets(SystemWC *system, double time, Component *component)
Definition: SystemTLM.cpp:691
bool isTypeInteger() const
Definition: Variable.h:90
Definition: ComponentFMUCS.h:54
oms_status_enu_t setRealInputDerivatives(fmiHandle *fmu, fmi2ValueReference vr) const
Definition: SignalDerivative.cpp:122
oms_status_enu_t exportToSSD(pugi::xml_node &node, Snapshot &snapshot, std::string variantName) const
Definition: ComponentFMUCS.cpp:352
ComRef - component reference.
Definition: ComRef.h:46
fmi2ValueReference getValueReference() const
Definition: Variable.h:85
oms_status_enu_t deleteResourcesInSSP(const std::string &filename)
Definition: ComponentFMUCS.cpp:792
const char * component
Definition: Tags.cpp:45
oms_status_enu_t newResources(const std::string &ssvFilename, const std::string &ssmFilename, bool externalResources)
Definition: ComponentFMUCS.cpp:742
oms_status_enu_t reset()
Definition: ComponentFMUCS.cpp:827
System * parentSystem
Definition: Component.h:165
oms_status_enu_t setUnit(const ComRef &cref, const std::string &value)
Definition: ComponentFMUCS.cpp:1673
double fmuStateTime
Definition: ComponentFMUCS.h:164
oms_status_enu_t getInteger(const ComRef &cref, int &value)
Definition: ComponentFMUCS.cpp:989
@ SignalType_INT
Definition: ResultWriter.h:44
std::string ssmFile
mapped ssm files associated with ssv files;
Definition: Values.h:179
bool isContinuousTimeDer() const
Definition: Variable.h:68
const char * real_type
Definition: Tags.cpp:85
std::vector< unsigned int > outputs
Definition: ComponentFMUCS.h:153
fmi2FMUstate fmuState
Definition: ComponentFMUCS.h:163
std::map< std::string, filesystem::path > fmuGuid
Definition: System.h:204
oms_status_enu_t getRealOutputDerivative(const ComRef &cref, SignalDerivative &der)
Definition: ComponentFMUCS.cpp:1408
ComponentFMUCS & operator=(ComponentFMUCS const ©)
not implemented
std::map< std::string, std::map< std::string, std::string > > modeldescriptionUnitDefinitions
<UnitDefinitions> list read from modeldescription.xml
Definition: Values.h:170
#define logError_InternalError
Definition: Logging.h:132
void copyModelDescriptionUnit(Values &value)
@ SignalType_REAL
Definition: ResultWriter.h:43
#define logError_ModelInWrongState(cref)
Definition: Logging.h:135
oms_status_enu_t stepUntil(double stopTime)
Definition: ComponentFMUCS.cpp:846
oms_status_enu_t terminate()
Definition: ComponentFMUCS.cpp:813
static bool isValidIdent(const std::string &ident)
Definition: ComRef.cpp:89
const char * enumeration_type
Definition: Tags.cpp:89
double realValue
Definition: ResultWriter.h:50
#define logError_FMUCall(call, fmu)
Definition: Logging.h:130
const char * parameter_bindings
Definition: Tags.cpp:74
#define logInfo(msg)
Definition: Logging.h:100
bool isTypeReal() const
Definition: Variable.h:91
fmiHandle * getFMU()
Definition: ComponentFMUCS.h:105
bool getCanGetAndSetState()
Definition: ComponentFMUCS.h:116
bool copyResources()
Definition: System.cpp:1984
bool getCanGetAndSetFMUstate() const
Definition: FMUInfo.h:56
oms_status_enu_t setReal(const ComRef &cref, double value)
Definition: ComponentFMUCS.cpp:1560
std::vector< unsigned int > calculatedParameters
Definition: ComponentFMUCS.h:150
FMU info.
Definition: FMUInfo.h:44
oms_status_enu_t exportToSSMTemplate(pugi::xml_node &ssmNode)
Definition: ComponentFMUCS.cpp:424
@ SignalType_BOOL
Definition: ResultWriter.h:45
std::map< std::string, Values > allresources
mapped resources either inline or ssv
Definition: Values.h:178
static bool IgnoreInitialUnknowns()
Definition: Flags.h:68
bool isTypeBoolean() const
Definition: Variable.h:89
const char * connector
Definition: Tags.cpp:49
oms_system_enu_t getType() const
Definition: System.h:91
std::vector< unsigned int > parameters
Definition: ComponentFMUCS.h:154
oms_status_enu_t setInteger(const ComRef &cref, int value)
Definition: ComponentFMUCS.cpp:1509
void oms_copy_file(const filesystem::path &from, const filesystem::path &to)
Definition: OMSFileSystem.cpp:89
oms_status_enu_t exportToSSVTemplate(pugi::xml_node &ssvNode, Snapshot &snapshot)
Definition: ComponentFMUCS.cpp:417
#define logError_ResetFailed(system)
Definition: Logging.h:147
std::string getTempDirectory() const
Definition: Model.h:68
static Connector * NewConnector(const pugi::xml_node &node, const std::string &sspVersion, const oms::ComRef &owner)
Definition: Connector.cpp:124
#define logDebug(msg)
Definition: Logging.h:109
oms_status_enu_t updateSignals(ResultWriter &resultWriter)
Definition: ComponentFMUCS.cpp:1841
oms_status_enu_t setResourcesHelper2(Values value)
Definition: ComponentFMUCS.cpp:675
oms_status_enu_t saveState()
Definition: ComponentFMUCS.cpp:1919
fmiHandle * fmu
Definition: ComponentFMUCS.h:146
Definition: ResultWriter.h:48
Definition: Component.h:59
pugi::xml_node getResourceNode(const filesystem::path &filename) const
Definition: Snapshot.cpp:133
#define logWarning(msg)
Definition: Logging.h:101
bool isEmpty() const
Definition: ComRef.cpp:99
Definition: ElementGeometry.h:45
oms_status_enu_t addSignalsToResults(const char *regex)
Definition: ComponentFMUCS.cpp:1881
static bool WallTime()
Definition: Flags.h:76
Definition: Snapshot.h:46
std::vector< unsigned int > derivatives
Definition: ComponentFMUCS.h:151
void dumpInitialUnknowns()
Definition: ComponentFMUCS.cpp:430
#define logError_Termination(system)
Definition: Logging.h:150
bool isOutput() const
Definition: Variable.h:61
oms_status_enu_t deleteStartValue(const ComRef &cref)
Definition: ComponentFMUCS.cpp:1714
ComponentFMUCS(const ComRef &cref, System *parentSystem, const std::string &fmuPath)
Definition: ComponentFMUCS.cpp:50
oms_status_enu_t setResourcesHelper1(Values value)
Definition: ComponentFMUCS.cpp:651
Definition: ResultWriter.h:68
oms_status_enu_t freeState()
Definition: ComponentFMUCS.cpp:1928
std::map< ComRef, std::string > modelDescriptionVariableUnits
variable units read from modeldescription.xml
Definition: Values.h:158
Model & getModel()
Definition: System.cpp:1796
oms_status_enu_t getDirectionalDerivative(const ComRef &unknownCref, const ComRef &knownCref, double &value)
Definition: ComponentFMUCS.cpp:1291
const char * connectors
Definition: Tags.cpp:51
#define logError_WrongSchema(name)
Definition: Logging.h:156
oms_status_enu_t registerSignalsForResultFile(ResultWriter &resultFile)
Definition: ComponentFMUCS.cpp:1778
#define logError_UnknownSignal(cref)
Definition: Logging.h:153
bool isInitialUnknown() const
Definition: Variable.h:75
std::map< ComRef, double > realStartValues
parameters and start values defined before instantiating the FMU
Definition: Values.h:136
std::vector< bool > exportVariables
Definition: ComponentFMUCS.h:155
oms_status_enu_t setFaultInjection(const ComRef &signal, oms_fault_type_enu_t faultType, double faultValue)
Definition: ComponentFMUCS.cpp:1949
std::map< ComRef, int > integerStartValues
parameters and start values defined before instantiating the FMU
Definition: Values.h:137
const char * annotations
Definition: Tags.cpp:44
Values & getValues()
Definition: ComponentFMUCS.h:81
oms_status_enu_t renameValues(const ComRef &oldCref, const ComRef &newCref)
Definition: ComponentFMUCS.cpp:1981
void getFilteredEnumerationDefinitionsToSSD(std::map< std::string, std::map< std::string, std::string >> &enumerationDefinitions)
Definition: ComponentFMUCS.cpp:407
oms_status_enu_t initialize()
Definition: ComponentFMUCS.cpp:800
oms_status_enu_t setString(const ComRef &cref, const std::string &value)
Definition: ComponentFMUCS.cpp:1618
const ComRef & getCref() const
Definition: Variable.h:82
oms_status_enu_t setRealInputDerivative(const ComRef &cref, const SignalDerivative &der)
Definition: ComponentFMUCS.cpp:1429
oms_status_enu_t importResourceFile(const filesystem::path &filename, const filesystem::path &root)
Definition: Snapshot.cpp:83
double time
Definition: ComponentFMUCS.h:161
Variable * getVariable(const ComRef &cref)
Definition: ComponentFMUCS.cpp:1069
~ComponentFMUCS()
Definition: ComponentFMUCS.cpp:55
oms_status_enu_t setFmuTime(double time)
Definition: ComponentFMUCS.h:104
void updateSignal(unsigned int id, SignalValue_t value)
Definition: ResultWriter.cpp:120
oms_status_enu_t importFromSSD(const pugi::xml_node &node)
Definition: ElementGeometry.cpp:166
oms_status_enu_t instantiate()
Definition: ComponentFMUCS.cpp:600
#define logError(msg)
Definition: Logging.h:102
oms_status_enu_t setBoolean(const ComRef &cref, bool value)
Definition: ComponentFMUCS.cpp:1458
oms_status_enu_t importFromSnapshot(const pugi::xml_node &node, const std::string &sspVersion, const Snapshot &snapshot, std::string variantName)
Definition: Values.cpp:858
void getFilteredUnitDefinitionsToSSD(std::map< std::string, std::map< std::string, std::string >> &unitDefinitions)
Definition: ComponentFMUCS.cpp:385
oms_status_enu_t getDirectionalDerivativeHeper(const int unknownIndex, const int knownindex, const std::vector< int > &dependencyList, double &value)
Definition: ComponentFMUCS.cpp:1380
const char * annotation
Definition: Tags.cpp:102
unsigned int addSignal(const ComRef &name, const std::string &description, SignalType_t type)
Definition: ResultWriter.cpp:50
int intValue
Definition: ResultWriter.h:51
std::map< ComRef, int > integerValues
input values defined after initialization
Definition: Values.h:142
std::vector< Variable > allVariables
Definition: ComponentFMUCS.h:149
const FMUInfo * getFMUInfo() const
Definition: ComponentFMUCS.h:61
ComRef pop_front()
returns the first part of the ComRef and removed it from the current object
Definition: ComRef.cpp:184
oms::Connector makeConnector(const oms::ComRef &owner) const
Definition: Variable.h:98
Definition: Variable.h:45
std::unordered_map< unsigned int, unsigned int > resultFileMapping
Definition: ComponentFMUCS.h:159
FMUInfo fmuInfo
Definition: ComponentFMUCS.h:147
Connector.
Definition: Connector.h:49
static Component * NewComponent(const ComRef &cref, System *parentSystem, const std::string &fmuPath, std::string replaceComponent="")
Definition: ComponentFMUCS.cpp:65
std::vector< unsigned int > inputs
Definition: ComponentFMUCS.h:152
std::map< ComRef, bool > booleanStartValues
parameters and start values defined before instantiating the FMU
Definition: Values.h:135
Definition: SystemTLM.h:45
oms_status_enu_t exportToSSV(pugi::xml_node &ssvNode)
Definition: ComponentFMUCS.cpp:412
#define logError_InvalidIdent(cref)
Definition: Logging.h:134
const char * signal
Definition: Tags.cpp:38
unsigned int getIndex() const
Definition: Variable.h:97
oms_status_enu_t getString(const ComRef &cref, std::string &value)
Definition: ComponentFMUCS.cpp:1211
void fmi2logger(fmi2ComponentEnvironment env, fmi2String instanceName, fmi2Status status, fmi2String category, fmi2String message,...)
Definition: Component.cpp:42
std::vector< Values > parameterResources
list of parameter resources provided inline or .ssv files
Definition: Values.h:177
void getFilteredSignals(std::vector< Connector > &filteredSignals) const
Definition: ComponentFMUCS.cpp:1972
bool boolValue
Definition: ResultWriter.h:52
oms_status_enu_t getReal(const ComRef &cref, double &value)
Definition: ComponentFMUCS.cpp:1118
oms_status_enu_t removeSignalsFromResults(const char *regex)
Definition: ComponentFMUCS.cpp:1900
void addParameter(const ComRef &name, const std::string &description, SignalType_t type, SignalValue_t value)
Definition: ResultWriter.cpp:73
const char * element_geometry
Definition: Tags.cpp:53
std::vector< Variable > getAllVariables()
Definition: ComponentFMUCS.h:106