43#include "OMSimulator/Types.h"
51#include <dcp/model/constant/DcpError.hpp>
52#include <dcp/model/constant/DcpState.hpp>
55#include <dcp/log/OstreamLog.hpp>
64class DcpManagerMaster;
66class SlaveDescription_t;
104 oms_status_enu_t
reduceSSV(
const std::string& ssvfile,
const std::string& ssmfile,
const std::string& filepath);
113 oms_status_enu_t
importSnapshot(
const char* snapshot,
char** newCref);
115 oms_status_enu_t
exportToFile(
const std::string& filename)
const;
116 oms_system_enu_t
getSystemType(
const pugi::xml_node& node,
const std::string& sspVersion);
117 oms_system_enu_t
getSystemTypeHelper(
const pugi::xml_node& node,
const std::string& sspVersion);
128 oms_status_enu_t
doStep();
131 oms_status_enu_t
reset();
138 oms_status_enu_t
setDcpPorts(
int masterPort,
int slavePort);
152 oms_status_enu_t
emit(
double time,
bool force=
false,
bool* emitted=NULL);
165 oms_status_enu_t
loadSnapshot(
const pugi::xml_node& node);
213 ctpl::thread_pool*
pool =
nullptr;
248 void dcpRun(DcpState currentState, uint8_t sender);
254 void dcpReceiveNAck(uint8_t sender, uint16_t pduSeqId, DcpError errorCode);
255 void dcpDataReceived(uint16_t dataId,
size_t length, uint8_t payload[]);
ComRef - component reference.
Definition ComRef.h:51
Definition ComponentDCP.h:62
Definition Component.h:65
**
Definition Connection.h:52
Element.
Definition Element.h:51
oms_status_enu_t setDcpPorts(int masterPort, int slavePort)
Definition Model.cpp:1623
oms_status_enu_t setStopTime(double value)
Definition Model.cpp:1168
oms_system_enu_t getSystemType(const pugi::xml_node &node, const std::string &sspVersion)
Definition Model.cpp:979
void dcpInitialize()
Definition Model.cpp:1959
double getLoggingInterval() const
Definition Model.h:149
void dcpDataReceived(uint16_t dataId, size_t length, uint8_t payload[])
Definition Model.cpp:1900
ResultWriter * resultFile
Definition Model.h:196
std::string tempDir
Definition Model.h:185
double loggingInterval
Definition Model.h:198
oms_status_enu_t reduceSSV(const std::string &ssvfile, const std::string &ssmfile, const std::string &filepath)
Definition Model.cpp:741
std::vector< std::string > externalResources
list of external ssv or ssm resources from filesystem
Definition Model.h:209
double getStartTime() const
Definition Model.h:143
void startDcpMasterThread()
Definition Model.cpp:1630
oms_status_enu_t addSystem(const ComRef &cref, oms_system_enu_t type)
Definition Model.cpp:823
oms_status_enu_t importSignalFilter(const std::string &filename, const Snapshot &snapshot)
Definition Model.cpp:1854
size_t dcpSlavesStopped
Definition Model.h:239
size_t dcpSlavesDeregistered
Definition Model.h:240
oms_status_enu_t importSnapshot(const char *snapshot, char **newCref)
Definition Model.cpp:323
port_t dcpSlavePort
Definition Model.h:220
uint8_t dcpIntializationRuns
Definition Model.h:234
Clock clock
Definition Model.h:200
bool useThreadPool()
Definition Model.h:162
std::map< uint8_t, uint64_t > dcpReceivedAcks
Definition Model.h:231
std::vector< std::string > importedResources
list of imported resources from ssp
Definition Model.h:167
uint8_t dcpMaxInitRuns
Definition Model.h:233
double dcpComStep
Definition Model.h:228
oms_status_enu_t updateParameterBindingsToSSD(pugi::xml_node &node, bool isTopSystemOrModel) const
Definition Model.cpp:640
oms_status_enu_t exportSSVTemplate(const ComRef &cref, const std::string &filename)
Definition Model.cpp:521
void dcpDoStep()
Definition Model.cpp:2035
oms_status_enu_t simulate()
Definition Model.cpp:1281
double getTime() const
Definition Model.cpp:1174
std::string getVariantName()
Definition Model.h:171
oms::Element ** getElements()
Definition Model.h:122
void dcpConfiguration()
Definition Model.cpp:1971
std::map< ComponentDCP *, size_t > dcpComponents
Definition Model.h:222
oms_status_enu_t importFromSnapshot(const Snapshot &snapshot)
Definition Model.cpp:889
oms_status_enu_t doStep()
Definition Model.cpp:1364
System * system
Definition Model.h:184
int bufferSize
Definition Model.h:199
UdpDriver * dcpDriver
Definition Model.h:218
oms_status_enu_t reset()
Definition Model.cpp:1441
OstreamLog dcpLog
Definition Model.h:227
System * getSystem(const ComRef &cref)
Definition Model.cpp:389
double startTime
Definition Model.h:193
uint8_t dcpSlavesWaitingForInitialize
Definition Model.h:235
void dcpReceiveAck(uint8_t sender, uint16_t)
Definition Model.cpp:1885
oms_modelState_enu_t getModelState() const
Definition Model.h:140
oms_status_enu_t registerSignalsForResultFile()
Definition Model.cpp:1650
oms_status_enu_t terminate()
Definition Model.cpp:1411
std::map< ComRef, char * > ssdVariants
list of all variants copied when user create a new variant using oms_duplicateVariant()
Definition Model.h:169
Component * getComponent(const ComRef &cref)
Definition Model.cpp:406
System * getTopLevelSystem() const
Definition Model.h:90
~Model()
Definition Model.cpp:76
oms_status_enu_t instantiate()
Definition Model.cpp:1181
std::string resultFilename
default <name>_res.mat
Definition Model.h:204
std::shared_ptr< SlaveDescription_t > dcpInternalSystemSlaveDescription
Definition Model.h:223
void dcpStop()
Definition Model.cpp:2049
oms_status_enu_t removeSignalsFromResults(const char *regex)
Definition Model.cpp:1747
std::string escapeSpecialCharacters(const std::string ®ex)
Definition Model.cpp:1833
void exportSignalFilter(Snapshot &snapshot) const
Definition Model.cpp:1755
oms_status_enu_t exportToFile(const std::string &filename) const
Definition Model.cpp:1053
oms_status_enu_t exportSSMTemplate(const ComRef &cref, const std::string &filename)
Definition Model.cpp:593
oms_modelState_enu_t modelState
Definition Model.h:190
void exportEnumerationDefinitionsToSSD(pugi::xml_node &node) const
Definition Model.cpp:1805
std::vector< oms::Element * > elements
Definition Model.h:187
double lastEmit
Definition Model.h:197
static Model * NewModel(const ComRef &cref)
Definition Model.cpp:104
Values values
Definition Model.h:202
oms_status_enu_t startDcpMaster()
Definition Model.cpp:1600
bool copyResources()
Definition Model.h:120
oms_status_enu_t addSignalsToResults(const char *regex)
Definition Model.cpp:1739
uint8_t serversRunPastStopTime
Definition Model.h:241
std::string signalFilterFilename
Definition Model.h:205
oms_system_enu_t getSystemTypeHelper(const pugi::xml_node &node, const std::string &sspVersion)
Definition Model.cpp:1030
oms_status_enu_t emit(double time, bool force=false, bool *emitted=NULL)
Definition Model.cpp:1661
ctpl::thread_pool * pool
Definition Model.h:213
void writeAllResourcesToFilesystem(std::vector< std::string > &resources, Snapshot &snapshot) const
Definition Model.cpp:1107
ctpl::thread_pool & getThreadPool()
Definition Model.h:163
uint8_t dcpSlavesWaitingForConfigure
Definition Model.h:237
DcpManagerMaster * dcpManager
Definition Model.h:217
oms_status_enu_t loadSnapshot(const pugi::xml_node &node)
Definition Model.cpp:177
oms_status_enu_t setLoggingInterval(double loggingInterval)
Definition Model.cpp:1642
void dcpDeregister(uint8_t sender)
Definition Model.cpp:2062
oms_status_enu_t dcpMasterThreadReturnValue
Definition Model.h:242
oms_status_enu_t deleteReferencesInSSD(const ComRef &cref)
Definition Model.cpp:784
void dcpReceiveStateChangedNotification(uint8_t sender, DcpState state)
Definition Model.cpp:1907
std::vector< DcpConnection > dcpConnections
Definition Model.h:226
double dcpTime
Definition Model.h:229
oms_status_enu_t rename(const ComRef &cref)
Definition Model.cpp:138
std::vector< std::shared_ptr< SlaveDescription_t > > dcpSlaveDescriptions
Definition Model.h:225
oms_status_enu_t addDcpConnection(oms::Connection *connection)
Definition Model.cpp:1521
void dcpConfigure()
Definition Model.cpp:2018
oms_status_enu_t referenceResources(const ComRef &cref, const std::string &ssmFile)
Definition Model.cpp:711
oms_status_enu_t configureDcpMaster()
Definition Model.cpp:1462
oms_status_enu_t stepUntil(double stopTime)
Definition Model.cpp:1384
bool isolatedFMU
Definition Model.h:211
uint8_t dcpSlavesWaitingForStep
Definition Model.h:238
double dcpStopTime
Definition Model.h:230
bool copy_resources
Definition Model.h:188
oms_status_enu_t addResources(const ComRef &cref, const std::string &path)
Definition Model.cpp:683
oms_status_enu_t duplicateVariant(const ComRef &crefA, const ComRef &crefB)
Definition Model.cpp:212
Model & operator=(Model const ©)
not implemented
oms_status_enu_t getResultFile(char **filename, int *bufferSize)
Definition Model.cpp:1731
oms_status_enu_t listVariants(const ComRef &cref, char **contents)
Definition Model.cpp:293
port_t dcpMasterPort
Definition Model.h:219
oms_status_enu_t setStartTime(double value)
Definition Model.cpp:1159
int dcpSlaveCount
Definition Model.h:221
void setIsolatedFMUModel()
Definition Model.h:160
oms_status_enu_t delete_(const ComRef &cref)
Definition Model.cpp:420
void dcpRun(DcpState currentState, uint8_t sender)
Definition Model.cpp:2029
std::map< uint8_t, uint8_t > dcpNumOfCmd
Definition Model.h:232
const ComRef & getCref() const
Definition Model.h:86
oms_status_enu_t exportToSSD(Snapshot &snapshot) const
Definition Model.cpp:849
std::string getTempDirectory() const
Definition Model.h:91
void copyResources(bool copy_resources)
Definition Model.h:119
oms_status_enu_t newResources(const ComRef &cref)
Definition Model.cpp:662
oms_status_enu_t activateVariant(const ComRef &crefA, const ComRef &crefB)
Definition Model.cpp:258
oms_status_enu_t addDcpSlave(ComponentDCP *component)
Definition Model.cpp:1499
ComRef new_root_cref
Definition Model.h:215
Model(Model const ©)
not implemented
double getStopTime() const
Definition Model.h:145
bool validState(int validStates) const
Definition Model.h:157
double stopTime
Definition Model.h:194
oms_status_enu_t list(const ComRef &cref, char **contents)
Definition Model.cpp:438
void dcpReceiveNAck(uint8_t sender, uint16_t pduSeqId, DcpError errorCode)
Definition Model.cpp:1893
ComRef cref
Definition Model.h:183
std::map< ComponentDCP *, std::shared_ptr< SlaveDescription_t > > dcpComponentToSlaveDescriptionMap
Definition Model.h:224
oms_status_enu_t deleteResourcesInSSP(const std::string &filename)
Definition Model.cpp:805
void dcpSendOutputs(DcpState currentState, uint8_t sender)
Definition Model.cpp:2067
void exportUnitDefinitionsToSSD(pugi::xml_node &node) const
Definition Model.cpp:1774
bool isIsolatedFMUModel() const
Definition Model.h:159
uint8_t dcpSlavesWaitingForConfiguration
Definition Model.h:236
oms_status_enu_t initialize()
Definition Model.cpp:1208
oms_status_enu_t setResultFile(const std::string &filename, int bufferSize)
Definition Model.cpp:1688
std::string variantName
default name
Definition Model.h:207
oms_status_enu_t exportSnapshot(const ComRef &cref, char **contents)
Definition Model.cpp:505
Definition ResultWriter.h:73
std::vector< size_t > toServers
Definition Model.h:60
size_t fromServer
Definition Model.h:59
std::vector< size_t > toVrs
Definition Model.h:60
size_t fromVr
Definition Model.h:59