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_ME_H_
33 #define _OMS_COMPONENT_FMU_ME_H_
45 #include <pugixml.hpp>
47 #include <unordered_map>
61 oms_status_enu_t
exportToSSD(pugi::xml_node& node,
Snapshot& snapshot, std::string variantName)
const;
62 oms_status_enu_t
exportToSSV(pugi::xml_node& ssvNode);
70 oms_status_enu_t
reset();
81 oms_status_enu_t
getBoolean(
const fmi2ValueReference& vr,
bool& value);
83 oms_status_enu_t
getInteger(
const fmi2ValueReference& vr,
int& value);
85 oms_status_enu_t
getReal(
const fmi2ValueReference& vr,
double& value);
87 oms_status_enu_t
getString(
const fmi2ValueReference& vr, std::string& value);
95 oms_status_enu_t
getDirectionalDerivativeHeper(
const int unknownIndex,
const int knownIndex,
const std::vector<int>& dependencyList,
double& value);
124 oms_status_enu_t
newResources(
const std::string& ssvFilename,
const std::string& ssmFilename,
bool externalResources);
163 std::map<fmi2ValueReference, oms_fault_type_t>
fib;
oms_status_enu_t getBoolean(const ComRef &cref, bool &value)
Definition: ComponentFMUME.cpp:923
Variable * getVariable(const ComRef &cref)
Definition: ComponentFMUME.cpp:1093
ComRef cref
Definition: Component.h:166
oms_status_enu_t getDerivatives(double *derivatives)
Definition: ComponentFMUME.cpp:1867
std::vector< unsigned int > outputs
Definition: ComponentFMUME.h:155
const char * annotation_type
Definition: Tags.cpp:34
~ComponentFMUME()
Definition: ComponentFMUME.cpp:53
oms_status_enu_t getContinuousStates(double *states)
Definition: ComponentFMUME.cpp:1849
oms_status_enu_t setFaultInjection(const ComRef &signal, oms_fault_type_enu_t faultType, double faultValue)
Definition: ComponentFMUME.cpp:1932
std::string getUniqueID() const
Definition: System.cpp:2902
FMUInfo fmuInfo
Definition: ComponentFMUME.h:149
size_t getNumberOfContinuousStates() const
Definition: ComponentFMUME.h:107
oms_status_enu_t setContinuousStates(double *states)
Definition: ComponentFMUME.cpp:1858
oms_status_enu_t getInteger(const ComRef &cref, int &value)
Definition: ComponentFMUME.cpp:1013
bool isTypeInteger() const
Definition: Variable.h:90
std::vector< Variable > allVariables
Definition: ComponentFMUME.h:151
oms_status_enu_t setResourcesHelper2(Values value)
Definition: ComponentFMUME.cpp:709
fmi2CallbackLogger omsfmi2logger
Definition: ComponentFMUME.h:143
ComRef - component reference.
Definition: ComRef.h:46
oms_status_enu_t getReal(const ComRef &cref, double &value)
Definition: ComponentFMUME.cpp:1142
fmi2ValueReference getValueReference() const
Definition: Variable.h:85
const char * component
Definition: Tags.cpp:45
System * parentSystem
Definition: Component.h:165
oms_status_enu_t newResources(const std::string &ssvFilename, const std::string &ssmFilename, bool externalResources)
Definition: ComponentFMUME.cpp:796
@ SignalType_INT
Definition: ResultWriter.h:44
void getFilteredUnitDefinitionsToSSD(std::map< std::string, std::map< std::string, std::string >> &unitDefinitions)
Definition: ComponentFMUME.cpp:383
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::unordered_map< unsigned int, unsigned int > resultFileMapping
Definition: ComponentFMUME.h:161
std::map< std::string, filesystem::path > fmuGuid
Definition: System.h:204
oms_status_enu_t setString(const ComRef &cref, const std::string &value)
Definition: ComponentFMUME.cpp:1649
oms_status_enu_t updateSignals(ResultWriter &resultWriter)
Definition: ComponentFMUME.cpp:1809
oms_status_enu_t setValuesResources(Values &values)
Definition: ComponentFMUME.cpp:1552
const FMUInfo * getFMUInfo() const
Definition: ComponentFMUME.h:59
bool getCanGetAndSetState()
Definition: ComponentFMUME.h:118
std::map< std::string, std::map< std::string, std::string > > modeldescriptionUnitDefinitions
<UnitDefinitions> list read from modeldescription.xml
Definition: Values.h:170
size_t nEventIndicators
Definition: ComponentFMUME.h:147
#define logError_InternalError
Definition: Logging.h:132
std::vector< unsigned int > calculatedParameters
Definition: ComponentFMUME.h:152
@ SignalType_REAL
Definition: ResultWriter.h:43
#define logError_ModelInWrongState(cref)
Definition: Logging.h:135
oms_status_enu_t initializeDependencyGraph_outputs()
Definition: ComponentFMUME.cpp:548
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
oms_status_enu_t getString(const ComRef &cref, std::string &value)
Definition: ComponentFMUME.cpp:1234
oms::ComRef getValidCref(ComRef cref)
Definition: ComponentFMUME.cpp:766
const char * parameter_bindings
Definition: Tags.cpp:74
#define logInfo(msg)
Definition: Logging.h:100
bool isTypeReal() const
Definition: Variable.h:91
Values & getValues()
Definition: ComponentFMUME.h:77
bool copyResources()
Definition: System.cpp:1984
bool getCanGetAndSetFMUstate() const
Definition: FMUInfo.h:56
oms_status_enu_t getEventindicators(double *eventindicators)
Definition: ComponentFMUME.cpp:1885
fmiHandle * fmu
Definition: ComponentFMUME.h:144
Values values
start values defined before instantiating the FMU and external inputs defined after initialization
Definition: ComponentFMUME.h:159
FMU info.
Definition: FMUInfo.h:44
@ 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
void getFilteredSignals(std::vector< Connector > &filteredSignals) const
Definition: ComponentFMUME.cpp:1955
oms_status_enu_t exportToSSMTemplate(pugi::xml_node &ssmNode)
Definition: ComponentFMUME.cpp:422
oms_status_enu_t removeSignalsFromResults(const char *regex)
Definition: ComponentFMUME.cpp:1913
oms_status_enu_t deleteResourcesInSSP(const std::string &filename)
Definition: ComponentFMUME.cpp:844
oms_status_enu_t getDirectionalDerivative(const ComRef &unknownCref, const ComRef &knownCref, double &value)
Definition: ComponentFMUME.cpp:1314
void oms_copy_file(const filesystem::path &from, const filesystem::path &to)
Definition: OMSFileSystem.cpp:89
#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 deleteStartValue(const ComRef &cref)
Definition: ComponentFMUME.cpp:1527
Definition: ResultWriter.h:48
oms_status_enu_t setUnit(const ComRef &cref, const std::string &value)
Definition: ComponentFMUME.cpp:1705
Definition: Component.h:59
oms_status_enu_t terminate()
Definition: ComponentFMUME.cpp:873
pugi::xml_node getResourceNode(const filesystem::path &filename) const
Definition: Snapshot.cpp:133
#define logWarning(msg)
Definition: Logging.h:101
oms_status_enu_t setResourcesHelper1(Values value)
Definition: ComponentFMUME.cpp:685
oms_status_enu_t getDirectionalDerivativeHeper(const int unknownIndex, const int knownIndex, const std::vector< int > &dependencyList, double &value)
Definition: ComponentFMUME.cpp:1396
bool isEmpty() const
Definition: ComRef.cpp:99
Definition: ElementGeometry.h:45
Definition: SystemSC.h:49
static bool WallTime()
Definition: Flags.h:76
Definition: Snapshot.h:46
#define logError_Termination(system)
Definition: Logging.h:150
bool isOutput() const
Definition: Variable.h:61
oms_status_enu_t initializeDependencyGraph_initialUnknowns()
Definition: ComponentFMUME.cpp:445
oms_status_enu_t addSignalsToResults(const char *regex)
Definition: ComponentFMUME.cpp:1894
oms_status_enu_t updateOrDeleteStartValueInReplacedComponent(std::vector< std::string > &warningList)
Definition: ComponentFMUME.cpp:1565
Definition: ResultWriter.h:68
std::map< ComRef, std::string > modelDescriptionVariableUnits
variable units read from modeldescription.xml
Definition: Values.h:158
static unsigned int MaxEventIteration()
Definition: Flags.h:90
Model & getModel()
Definition: System.cpp:1796
const char * connectors
Definition: Tags.cpp:51
#define logError_WrongSchema(name)
Definition: Logging.h:156
oms_status_enu_t setBoolean(const ComRef &cref, bool value)
Definition: ComponentFMUME.cpp:1424
oms_status_enu_t registerSignalsForResultFile(ResultWriter &resultFile)
Definition: ComponentFMUME.cpp:1746
#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::map< ComRef, int > integerStartValues
parameters and start values defined before instantiating the FMU
Definition: Values.h:137
const char * annotations
Definition: Tags.cpp:44
oms_status_enu_t initialize()
Definition: ComponentFMUME.cpp:852
const ComRef & getCref() const
Definition: Variable.h:82
ComponentFMUME & operator=(ComponentFMUME const ©)
not implemented
oms_status_enu_t importResourceFile(const filesystem::path &filename, const filesystem::path &root)
Definition: Snapshot.cpp:83
oms_status_enu_t renameValues(const ComRef &oldCref, const ComRef &newCref)
Definition: ComponentFMUME.cpp:1964
oms_status_enu_t getNominalsOfContinuousStates(double *nominals)
Definition: ComponentFMUME.cpp:1876
ComponentFMUME(const ComRef &cref, System *parentSystem, const std::string &fmuPath)
Definition: ComponentFMUME.cpp:48
oms_status_enu_t deleteReferencesInSSD(const std::string &filename)
Definition: ComponentFMUME.cpp:836
Definition: ComponentFMUME.h:52
void updateSignal(unsigned int id, SignalValue_t value)
Definition: ResultWriter.cpp:120
std::vector< unsigned int > derivatives
Definition: ComponentFMUME.h:153
oms_status_enu_t reset()
Definition: ComponentFMUME.cpp:885
oms_status_enu_t instantiate()
Definition: ComponentFMUME.cpp:628
oms_status_enu_t importFromSSD(const pugi::xml_node &node)
Definition: ElementGeometry.cpp:166
#define logError(msg)
Definition: Logging.h:102
oms_status_enu_t importFromSnapshot(const pugi::xml_node &node, const std::string &sspVersion, const Snapshot &snapshot, std::string variantName)
Definition: Values.cpp:858
const char * annotation
Definition: Tags.cpp:102
unsigned int addSignal(const ComRef &name, const std::string &description, SignalType_t type)
Definition: ResultWriter.cpp:50
oms_status_enu_t exportToSSVTemplate(pugi::xml_node &ssvNode, Snapshot &snapshot)
Definition: ComponentFMUME.cpp:415
int intValue
Definition: ResultWriter.h:51
fmiHandle * getFMU()
Definition: ComponentFMUME.h:115
static Component * NewComponent(const oms::ComRef &cref, System *parentSystem, const std::string &fmuPath, std::string replaceComponent="")
Definition: ComponentFMUME.cpp:63
std::map< ComRef, int > integerValues
input values defined after initialization
Definition: Values.h:142
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
fmi2EventInfo eventInfo
Definition: ComponentFMUME.h:146
Definition: Variable.h:45
Connector.
Definition: Connector.h:49
std::vector< bool > exportVariables
Definition: ComponentFMUME.h:157
std::map< fmi2ValueReference, oms_fault_type_t > fib
fault injection blocks
Definition: ComponentFMUME.h:163
oms_status_enu_t setInteger(const ComRef &cref, int value)
Definition: ComponentFMUME.cpp:1476
std::map< ComRef, bool > booleanStartValues
parameters and start values defined before instantiating the FMU
Definition: Values.h:135
#define logError_InvalidIdent(cref)
Definition: Logging.h:134
const char * signal
Definition: Tags.cpp:38
unsigned int getIndex() const
Definition: Variable.h:97
size_t getNumberOfEventIndicators() const
Definition: ComponentFMUME.h:108
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 getFilteredEnumerationDefinitionsToSSD(std::map< std::string, std::map< std::string, std::string >> &enumerationDefinitions)
Definition: ComponentFMUME.cpp:405
bool boolValue
Definition: ResultWriter.h:52
oms_status_enu_t exportToSSV(pugi::xml_node &ssvNode)
Definition: ComponentFMUME.cpp:410
std::vector< unsigned int > inputs
Definition: ComponentFMUME.h:154
oms_status_enu_t doEventIteration()
Definition: ComponentFMUME.cpp:776
oms_status_enu_t exportToSSD(pugi::xml_node &node, Snapshot &snapshot, std::string variantName) const
Definition: ComponentFMUME.cpp:350
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
fmi2EventInfo * getEventInfo()
Definition: ComponentFMUME.h:116
std::vector< unsigned int > parameters
Definition: ComponentFMUME.h:156
void dumpInitialUnknowns()
Definition: ComponentFMUME.cpp:428
oms_status_enu_t setReal(const ComRef &cref, double value)
Definition: ComponentFMUME.cpp:1591