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.
44 static inline void ltrim(std::string &s)
46 s.erase(s.begin(), std::find_if(s.begin(), s.end(), [](
int ch) { return !std::isspace(ch); }));
51 static inline void rtrim(std::string &s)
53 s.erase(std::find_if(s.rbegin(), s.rend(), [](
int ch) { return !std::isspace(ch); }).base(), s.end());
58 static inline void trim(std::string &s)
70 double diff = fabs(a - b);
74 if (diff <= fmax(fabs(a), fabs(b)) * reltol)
84 for (
unsigned int start = 0, end = length-1; start < end; start++, end--)
87 array[start] = array[end];
oms_status_enu_t addSignalsToResults(const char *regex)
Definition: ExternalModel.cpp:146
std::vector< int > f
Definition: TLMBusConnector.h:60
const oms::ComRef getName() const
Definition: TLMBusConnector.h:117
oms_status_enu_t importFromSSD_SimulationInformationHelper(const pugi::xml_node &node)
Definition: SystemTLM.cpp:125
void setReal(int i, double value)
Definition: TLMBusConnector.cpp:136
const char * oms_buses
Definition: Tags.cpp:67
const char * annotation_type
Definition: Tags.cpp:34
int v
Definition: TLMBusConnector.h:28
Definition: SystemWC.h:48
void readFromSockets(SystemWC *system, double time, Component *component)
Definition: SystemTLM.cpp:691
const char * system
Definition: Tags.cpp:57
int v
Definition: TLMBusConnector.h:41
int c
Definition: TLMBusConnector.h:35
oms_status_enu_t addConnector(const oms::ComRef &cref, std::string vartype)
Definition: TLMBusConnector.cpp:210
int Zr
Definition: TLMBusConnector.h:90
oms_status_enu_t exportToSSD(pugi::xml_node &node, Snapshot &snapshot, std::string variantName) const
Definition: ExternalModel.cpp:90
ComRef - component reference.
Definition: ComRef.h:46
oms_status_enu_t terminate()
Definition: ExternalModel.cpp:126
oms_status_enu_t reset()
Definition: ExternalModel.cpp:131
static bool almostEqualRelativeAndAbs(double a, double b, double reltol=DOUBLEEQUAL_RELTOL, double abstol=DOUBLEEQUAL_ABSTOL)
Definition: Util.h:68
#define logError_NoConnectorsInTLMBus(cref)
Definition: Logging.h:137
~SystemTLM()
Definition: SystemTLM.cpp:58
const char * component
Definition: Tags.cpp:45
oms_status_enu_t deleteConnector(const oms::ComRef &cref)
Definition: TLMBusConnector.cpp:227
oms_status_enu_t instantiate()
Definition: ExternalModel.cpp:116
std::vector< int > A
Definition: TLMBusConnector.h:57
std::vector< int > v
Definition: TLMBusConnector.h:76
#define logError_NotImplemented
Definition: Logging.h:141
#define logTrace()
Definition: Logging.h:110
static void trim(std::string &s)
Definition: Util.h:58
const std::string getDomainString() const
Definition: TLMBusConnector.cpp:181
std::vector< oms::ComRef > getConnectors(std::vector< int > ids) const
Definition: TLMBusConnector.cpp:201
#define logWarning_deprecated
Definition: Logging.h:157
const oms_causality_enu_t getCausality() const
Definition: TLMBusConnector.h:121
std::vector< int > v
Definition: TLMBusConnector.h:66
#define logError_InternalError
Definition: Logging.h:132
void registerLogVariables(System *system, ResultWriter &resultFile)
Definition: SystemTLM.cpp:932
static void ltrim(std::string &s)
Definition: Util.h:44
@ SignalType_REAL
Definition: ResultWriter.h:43
#define logError_ModelInWrongState(cref)
Definition: Logging.h:135
const char * signals
Definition: Tags.cpp:37
#define logError_SubSystemNotInSystem(system, subsystem)
Definition: Logging.h:148
static bool isValidIdent(const std::string &ident)
Definition: ComRef.cpp:89
Definition: TLMBusConnector.h:22
double realValue
Definition: ResultWriter.h:50
#define logInfo(msg)
Definition: Logging.h:100
Definition: TLMBusConnector.h:55
std::vector< int > t
Definition: TLMBusConnector.h:88
int x
Definition: TLMBusConnector.h:27
oms::TLMBusConnector * getActualBus()
Definition: TLMBusConnector.cpp:322
oms_status_enu_t updateSignals(ResultWriter &resultWriter)
Definition: ExternalModel.cpp:141
std::vector< int > t
Definition: TLMBusConnector.h:43
std::vector< std::string > variableTypes
Definition: TLMBusConnector.h:149
oms_status_enu_t simulateSubSystem(ComRef cref, double stopTime)
Definition: SystemTLM.cpp:590
const char * connector
Definition: Tags.cpp:49
const char * oms_annotations
Definition: Tags.cpp:66
static std::vector< std::string > getVariableDescriptions(oms_tlm_domain_t domain, int dimensions, oms_tlm_interpolation_t interpolation)
Definition: TLMBusConnector.cpp:412
const double DOUBLEEQUAL_ABSTOL
Definition: Util.h:64
static std::vector< std::string > getVariableTypes(oms_tlm_domain_t domain, int dimensions, oms_tlm_interpolation_t interpolation)
Definition: TLMBusConnector.cpp:364
ExternalModel(const oms::ComRef &cref, System *parentSystem, const std::string &path, const std::string &startscript)
Definition: ExternalModel.cpp:43
Definition: ResultWriter.h:48
oms::Component * getComponent()
Recursively find component (i.e. FMU) connected to the TLM bus. Return NULL if not found.
Definition: TLMBusConnector.cpp:311
int Zt
Definition: TLMBusConnector.h:69
Definition: Component.h:59
void updateConnectors()
Definition: TLMBusConnector.cpp:566
oms_status_enu_t removeSignalsFromResults(const char *regex)
Definition: ExternalModel.cpp:151
TLMBusConnector(const oms::ComRef &name, oms_tlm_domain_t domain, const int dimensions, const oms_tlm_interpolation_t interpolation, System *parentSystem=nullptr, Component *component=nullptr)
Definition: TLMBusConnector.cpp:9
oms_status_enu_t doStep()
Definition: SystemTLM.cpp:282
#define logWarning(msg)
Definition: Logging.h:101
oms_status_enu_t stepUntil(double stopTime)
Definition: SystemTLM.cpp:287
oms_status_enu_t registerSignalsForResultFile(ResultWriter &resultFile)
Definition: ExternalModel.cpp:136
void sendValueToLogger(int varId, double time, double value)
Definition: SystemTLM.cpp:839
bool isEmpty() const
Definition: ComRef.cpp:99
const ComRef & getCref() const
Definition: System.h:84
int registerLogVariable()
Definition: SystemTLM.cpp:927
static const int getLoggingLevel()
Definition: Logging.cpp:288
void * model
Definition: SystemTLM.h:95
static bool WallTime()
Definition: Flags.h:76
Definition: Snapshot.h:46
oms_causality_enu_t causality
Definition: TLMBusConnector.h:146
oms_status_enu_t importFromSSD_SimulationInformation(const pugi::xml_node &node, const std::string &sspVersion)
Definition: SystemTLM.cpp:95
std::vector< int > x
Definition: TLMBusConnector.h:56
void setName(const oms::ComRef &name)
Definition: TLMBusConnector.cpp:114
#define logError_VariableTypeAlreadyInTLMBus(cref, vartype)
Definition: Logging.h:155
void setRealInputDerivatives(int i, int order, double value)
Definition: TLMBusConnector.cpp:176
Definition: TLMBusConnector.h:73
Definition: ResultWriter.h:68
oms_status_enu_t exportToSSD_SimulationInformation(pugi::xml_node &node) const
Definition: SystemTLM.cpp:81
void getReal(int i, double &value)
Definition: TLMBusConnector.cpp:144
int Z
Definition: TLMBusConnector.h:44
void getReals(std::vector< int > i, std::vector< double > &values)
Definition: TLMBusConnector.cpp:164
oms_status_enu_t initializeSubSystem(ComRef cref)
Definition: SystemTLM.cpp:576
Definition: TLMBusConnector.h:39
int Zt
Definition: TLMBusConnector.h:89
const char * connectors
Definition: Tags.cpp:51
const std::string & getPath() const
Definition: Component.h:117
TLMBusConnector & operator=(const TLMBusConnector &rhs)
Definition: TLMBusConnector.cpp:93
oms_status_enu_t setPositionAndOrientation(const ComRef &cref, std::vector< double > x, std::vector< double > A)
Definition: SystemTLM.cpp:435
oms_status_enu_t terminate()
Definition: SystemTLM.cpp:266
const double DOUBLEEQUAL_RELTOL
Definition: Util.h:65
Definition: TLMBusConnector.h:63
int f
Definition: TLMBusConnector.h:29
const std::string getStartScript() const
Definition: ExternalModel.h:60
Definition: ExternalModel.h:49
Definition: TLMBusConnector.h:32
const char * annotations
Definition: Tags.cpp:44
oms_status_enu_t initialize()
Definition: ExternalModel.cpp:121
double getDelay()
Definition: TLMBusConnector.h:124
void writeToSockets(oms::SystemWC *system, double time, Component *component)
Definition: SystemTLM.cpp:597
void setReals(std::vector< int > i, std::vector< double > values)
Definition: TLMBusConnector.cpp:152
oms_status_enu_t updateInitialValues(const oms::ComRef cref)
Definition: SystemTLM.cpp:495
#define logError_UnknownTLMVariableType(vartype)
Definition: Logging.h:154
oms_status_enu_t exportToSSD(pugi::xml_node &root) const
Definition: TLMBusConnector.cpp:49
std::vector< int > w
Definition: TLMBusConnector.h:59
void sendValuesToLogger(System *system, double time)
Definition: SystemTLM.cpp:955
const char * bus
Definition: Tags.cpp:36
const char * simulation_information
Definition: Tags.cpp:62
oms_status_enu_t setRealParameter(const std::string &var, double value)
Definition: ExternalModel.cpp:64
void updateSignal(unsigned int id, SignalValue_t value)
Definition: ResultWriter.cpp:120
oms_status_enu_t setSocketData(const std::string &address, int managerPort, int monitorPort)
Definition: SystemTLM.cpp:424
Definition: ConnectorGeometry.h:45
const char * c_str() const
Definition: ComRef.h:75
#define logError(msg)
Definition: Logging.h:102
#define logError_NotForTlmSystem
Definition: Logging.h:140
oms_status_enu_t registerToSockets(TLMPlugin *plugin)
Definition: TLMBusConnector.cpp:250
void sortConnectors()
Definition: TLMBusConnector.cpp:240
std::vector< int > c
Definition: TLMBusConnector.h:68
~TLMBusConnector()
Definition: TLMBusConnector.cpp:33
const char * annotation
Definition: Tags.cpp:102
const char * connections
Definition: Tags.cpp:48
unsigned int addSignal(const ComRef &name, const std::string &description, SignalType_t type)
Definition: ResultWriter.cpp:50
oms_status_enu_t reset()
Definition: SystemTLM.cpp:274
static ExternalModel * NewComponent(const oms::ComRef &cref, System *parentSystem, const std::string &path, const std::string &startscript)
Definition: ExternalModel.cpp:52
int Zr
Definition: TLMBusConnector.h:70
oms_status_enu_t initialize()
Definition: SystemTLM.cpp:150
static System * NewSystem(const oms::ComRef &cref, Model *parentModel, System *parentSystem)
Definition: SystemTLM.cpp:63
void setGeometry(const oms::ssd::ConnectorGeometry *newGeometry)
Definition: TLMBusConnector.cpp:124
oms_status_enu_t connectToSockets(const oms::ComRef cref, std::string server)
Definition: SystemTLM.cpp:352
int y
Definition: TLMBusConnector.h:23
const char * tlm_master
Definition: Tags.cpp:35
std::vector< int > w
Definition: TLMBusConnector.h:77
ComRef pop_front()
returns the first part of the ComRef and removed it from the current object
Definition: ComRef.cpp:184
oms_status_enu_t registerSignalsForResultFile(ResultWriter &resultFile)
Definition: SystemTLM.cpp:861
Definition: TLMBusConnector.h:26
const int getDimensions() const
Definition: TLMBusConnector.h:120
~ExternalModel()
Definition: ExternalModel.cpp:48
TLMBusConnector.
Definition: TLMBusConnector.h:96
oms_status_enu_t instantiate()
Definition: SystemTLM.cpp:142
oms::ComRef getConnector(int id) const
Definition: TLMBusConnector.cpp:196
std::vector< int > w
Definition: TLMBusConnector.h:67
void disconnectFromSockets(const oms::ComRef cref)
Definition: SystemTLM.cpp:409
void reverseArray(T *array, unsigned int length)
Definition: Util.h:81
oms_status_enu_t getRealParameter(const std::string &var, double &value)
Definition: ExternalModel.cpp:77
Definition: SystemTLM.h:45
oms_status_enu_t updateSignals(ResultWriter &resultFile)
Definition: SystemTLM.cpp:980
#define logError_InvalidIdent(cref)
Definition: Logging.h:134
oms_status_enu_t fetchInterfaces(const ComRef &cref, std::vector< std::string > &name, std::vector< int > &dimensions, std::vector< std::string > &domain)
Definition: SystemTLM.cpp:455
int Z
Definition: TLMBusConnector.h:36
const char * signal
Definition: Tags.cpp:38
std::vector< int > c
Definition: TLMBusConnector.h:42
**
Definition: Connection.h:47
SystemTLM(const ComRef &cref, Model *parentModel, System *parentSystem)
Definition: SystemTLM.cpp:45
static void rtrim(std::string &s)
Definition: Util.h:51
ComRef cref
Definition: System.h:241
const char * external_model
Definition: Tags.cpp:41
int v
Definition: TLMBusConnector.h:34
TLMBusConnector * getTLMBusConnector(const ComRef &cref)
Definition: System.cpp:1210
std::vector< std::vector< int > > c
Definition: TLMBusConnector.h:78
const char * annotation
Definition: Tags.cpp:43
const ComRef & getCref() const
Definition: Component.h:110
std::vector< int > v
Definition: TLMBusConnector.h:58