OMSimulatorLib
The OMSimulator project is a FMI-based co-simulation environment that supports ordinary (i.e., non-delayed) and TLM connections.
Types.h
Go to the documentation of this file.
1 /*
2  * This file is part of OpenModelica.
3  *
4  * Copyright (c) 1998-CurrentYear, Open Source Modelica Consortium (OSMC),
5  * c/o Linköpings universitet, Department of Computer and Information Science,
6  * SE-58183 Linköping, Sweden.
7  *
8  * All rights reserved.
9  *
10  * THIS PROGRAM IS PROVIDED UNDER THE TERMS OF GPL VERSION 3 LICENSE OR
11  * THIS OSMC PUBLIC LICENSE (OSMC-PL) VERSION 1.2.
12  * ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS PROGRAM CONSTITUTES
13  * RECIPIENT'S ACCEPTANCE OF THE OSMC PUBLIC LICENSE OR THE GPL VERSION 3,
14  * ACCORDING TO RECIPIENTS CHOICE.
15  *
16  * The OpenModelica software and the Open Source Modelica
17  * Consortium (OSMC) Public License (OSMC-PL) are obtained
18  * from OSMC, either from the above address,
19  * from the URLs: http://www.ida.liu.se/projects/OpenModelica or
20  * http://www.openmodelica.org, and in the OpenModelica distribution.
21  * GNU version 3 is obtained from: http://www.gnu.org/copyleft/gpl.html.
22  *
23  * This program is distributed WITHOUT ANY WARRANTY; without
24  * even the implied warranty of MERCHANTABILITY or FITNESS
25  * FOR A PARTICULAR PURPOSE, EXCEPT AS EXPRESSLY SET FORTH
26  * IN THE BY RECIPIENT SELECTED SUBSIDIARY LICENSE CONDITIONS OF OSMC-PL.
27  *
28  * See the full OSMC Public License conditions for more details.
29  *
30  */
31 
32 #ifndef _OMSIMULATOR_TYPES_H_
33 #define _OMSIMULATOR_TYPES_H_
34 
35 #include <stdbool.h>
36 
37 #ifdef __cplusplus
38 extern "C"
39 {
40 #endif
41 
43 typedef enum {
51 
52 typedef enum {
60 
61 typedef enum {
69 
70 typedef enum {
75 
76 typedef enum {
81 
82 typedef struct {
83  oms_fault_type_enu_t faultType;
84  double faultValue;
86 
87 typedef enum {
95 
96 typedef enum {
109 
110 typedef enum {
115 
116 typedef enum {
120 
121 typedef enum {
127 
128 typedef enum {
134 
135 typedef enum {
143 
147 typedef enum {
152 
156 typedef enum {
163 
178 typedef struct {
179  /*
180  * Required attribute giving the x coordinate of the connector inside the
181  * special coordinate system.
182  */
183  double x;
184  /*
185  * Required attribute giving the y coordinate of the connector inside the
186  * special coordinate system.
187  */
188  double y;
190 
212 typedef struct {
217  double x1;
222  double y1;
227  double x2;
232  double y2;
238  double rotation;
245  char* iconSource;
250  double iconRotation;
255  bool iconFlip;
263 
277 typedef struct {
282  double* pointsX;
287  double* pointsY;
291  unsigned int n;
293 
310 typedef struct {
315  double x1;
320  double y1;
325  double x2;
330  double y2;
332 
336 typedef struct {
337  double delay;
338  double alpha;
342 
346 typedef struct {
347  oms_connection_type_enu_t type;
348  char* conA;
349  char* conB;
354 
358 typedef struct {
359  oms_causality_enu_t causality;
360  oms_signal_type_enu_t type;
361  char* owner;
362  char* name;
365 
369 typedef struct {
370  char* name;
371  char** connectors;
374 
378 typedef struct {
379  char* name;
381  oms_tlm_domain_t domain;
383  double delay;
384  oms_tlm_interpolation_t interpolation;
388 
392 typedef struct _oms_element_t{
393  oms_element_enu_t type;
394  char* name;
400 } oms_element_t;
401 
402 typedef enum {
408 
412 typedef struct {
416  char* author;
421  char* copyright;
425  char* description;
435  char* fmiVersion;
454  char* guid;
459  char* license;
464  char* modelName;
468  char* path;
472  char* version;
534 
538 typedef struct {
542  char* path;
546  char* startScript;
548 
549 #ifdef __cplusplus
550 }
551 #endif
552 
553 #endif
Definition: Types.h:97
oms_tlm_domain_t domain
Definition: Types.h:381
defined to be equal to (oms_fmi_kind_me|oms_fmi_kind_cs)
Definition: Types.h:406
oms_connection_type_enu_t type
Connection type, e.g. TLM.
Definition: Types.h:347
oms_solver_enu_t
Definition: Types.h:96
Definition: Types.h:93
oms_fmi_kind_enu_t fmiKind
Definition: Types.h:429
Strongly Coupled System.
Definition: Types.h:125
Definition: Types.h:44
Definition: Types.h:49
ssd_connector_geometry_t * geometry
Geometry information of the connector.
Definition: Types.h:363
Definition: Types.h:71
Definition: Types.h:55
char ** connectortypes
Definition: Types.h:386
double y1
Definition: Types.h:222
ssd_element_geometry_t * geometry
Geometry information of the element.
Definition: Types.h:399
Adaptive stepsize by .
Definition: Types.h:105
bool providesDirectionalDerivative
Definition: Types.h:521
Definition: Types.h:99
char * generationTool
Definition: Types.h:447
Definition: Types.h:92
bool canGetAndSetFMUstate
Definition: Types.h:485
char * name
Definition: Types.h:370
Error; Potentially critical issues.
Definition: Types.h:159
char ** connectors
Definition: Types.h:371
double linearimpedance
Definition: Types.h:339
bool canNotUseMemoryManagementFunctions
Definition: Types.h:491
FMU specific attributes.
Definition: Types.h:412
Connection between two connectors.
Definition: Types.h:346
y = faultValue
Definition: Types.h:79
double rotation
Definition: Types.h:238
double x
Definition: Types.h:183
char * iconSource
Definition: Types.h:245
Definition: Types.h:58
oms_causality_enu_t
Definition: Types.h:61
oms_tlm_interpolation_t
Definition: Types.h:70
Definition: Types.h:90
external model
Definition: Types.h:132
Definition: Types.h:102
Definition: Types.h:111
Debug message. (only in debug configuration)
Definition: Types.h:160
char * conB
Name of connector B.
Definition: Types.h:349
char * owner
Owner of the connector.
Definition: Types.h:361
Definition: Types.h:403
double iconRotation
Definition: Types.h:250
oms_status_enu_t
Definition: Types.h:43
bool canInterpolateInputs
Definition: Types.h:526
Fixed stepsize (default)
Definition: Types.h:103
double x2
Definition: Types.h:227
Definition: Types.h:67
char * conA
Name of connector A.
Definition: Types.h:348
oms_connector_t ** connectors
List (null-terminated array) of all interface variables: inputs, outputs, and parameters.
Definition: Types.h:396
Adaptive stepsize.
Definition: Types.h:104
double y2
Definition: Types.h:330
double angularimpedance
Definition: Types.h:340
struct _oms_element_t ** elements
List (null-terminated array) of all sub-elements.
Definition: Types.h:395
oms_modelState_enu_t
Definition: Types.h:52
Definition: Types.h:73
struct _oms_element_t oms_element_t
Element (aka ssd:Component)
5.3.4 ssd:SystemGeometry
Definition: Types.h:310
unsigned int maxOutputDerivativeOrder
Definition: Types.h:532
Definition: Types.h:122
Definition: Types.h:47
double y2
Definition: Types.h:232
Bus connector.
Definition: Types.h:369
Definition: Types.h:141
char * copyright
Definition: Types.h:421
Definition: Types.h:54
5.2.1.1 ssd:ConnectorGeometry
Definition: Types.h:178
Definition: Types.h:56
bool completedIntegratorStepNotNeeded
Definition: Types.h:506
Definition: Types.h:72
Kinsol solver.
Definition: Types.h:113
oms_tlm_interpolation_t interpolation
Definition: Types.h:384
char * name
Name of the connector.
Definition: Types.h:362
Definition: Types.h:117
oms_connection_type_enu_t
Connection type.
Definition: Types.h:147
Definition: Types.h:101
char * generationDateAndTime
Definition: Types.h:443
char * path
Definition: Types.h:542
double delay
Definition: Types.h:383
bool canBeInstantiatedOnlyOncePerProcess
Definition: Types.h:479
Trace message for detailed debug logging. (only in debug configuration)
Definition: Types.h:161
oms_tlm_connection_parameters_t * tlmparameters
TLM parameters (only for TLM connections)
Definition: Types.h:351
oms_system_enu_t
Definition: Types.h:121
oms_element_enu_t type
Element type, i.e. system or component.
Definition: Types.h:393
Definition: Types.h:107
double y1
Definition: Types.h:320
char ** connectornames
Definition: Types.h:385
oms_component_enu_t
Definition: Types.h:128
calculated parameter
Definition: Types.h:65
lookup table
Definition: Types.h:131
Definition: Types.h:137
Definition: Types.h:89
int dimensions
Definition: Types.h:382
FMI conncection (directed & undelayed signal connection)
Definition: Types.h:148
5.3.2.1 ssd:ConnectionGeometry
Definition: Types.h:277
oms_element_enu_t
Definition: Types.h:116
oms_message_type_enu_t
Message types used by the logging mechanism.
Definition: Types.h:156
double delay
Definition: Types.h:337
Definition: Types.h:138
double x2
Definition: Types.h:325
Definition: Types.h:98
bool suppressUnitConversion
boolean to specify automatic unit coversion between connections
Definition: Types.h:352
oms_signal_type_enu_t
Definition: Types.h:135
Definition: Types.h:82
oms_alg_solver_enu_t
Definition: Types.h:110
Definition: Types.h:140
default
Definition: Types.h:100
oms_busconnector_t ** busconnectors
List (null-terminated array) of all bus connectors.
Definition: Types.h:397
char * version
Definition: Types.h:472
Definition: Types.h:150
bool iconFixedAspectRatio
Definition: Types.h:261
Signal: input, output, and parameter.
Definition: Types.h:358
oms_fault_type_enu_t
Definition: Types.h:76
y = y.$original + faultValue
Definition: Types.h:77
Adaptive stepsize (double-step)
Definition: Types.h:106
Definition: Types.h:91
Definition: Types.h:139
Parameters for TLM connection.
Definition: Types.h:336
oms_fmi_kind_enu_t
Definition: Types.h:402
double x1
Definition: Types.h:217
char * author
Definition: Types.h:416
oms_tlm_domain_t
Definition: Types.h:87
char * description
Definition: Types.h:425
double faultValue
Definition: Types.h:84
char * path
Definition: Types.h:468
oms_causality_enu_t causality
input/output/parameter
Definition: Types.h:359
Definition: Types.h:129
Definition: Types.h:57
char * fmiVersion
Definition: Types.h:435
char * modelName
Definition: Types.h:464
Weakly Coupled System.
Definition: Types.h:124
Fixed-point-iteration (default)
Definition: Types.h:112
Bus connection.
Definition: Types.h:149
char * name
Definition: Types.h:379
char * startScript
Definition: Types.h:546
output
Definition: Types.h:63
bool iconFlip
Definition: Types.h:255
double x1
Definition: Types.h:315
ssd_connector_geometry_t * geometry
Definition: Types.h:380
double y
Definition: Types.h:188
input
Definition: Types.h:62
Definition: Types.h:53
Definition: Types.h:118
double * pointsY
Definition: Types.h:287
Definition: Types.h:88
TLM Bus connector.
Definition: Types.h:378
Definition: Types.h:136
Element (aka ssd:Component)
Definition: Types.h:392
FMI for Model Exchange.
Definition: Types.h:404
ssd_connector_geometry_t * geometry
Definition: Types.h:372
double alpha
Definition: Types.h:338
FMU.
Definition: Types.h:130
char * license
Definition: Types.h:459
Definition: Types.h:46
Definition: Types.h:48
bool canSerializeFMUstate
Definition: Types.h:498
ssd_connection_geometry_t * geometry
Geometry information of the connection.
Definition: Types.h:350
bidirecitonal
Definition: Types.h:66
Informative message.
Definition: Types.h:157
FMI for Co-Simulation.
Definition: Types.h:405
5.2.2 ssd:ElementGeometry
Definition: Types.h:212
unsigned int n
Definition: Types.h:291
oms_signal_type_enu_t type
Type of the connector.
Definition: Types.h:360
External model specific attributes.
Definition: Types.h:538
Definition: Types.h:45
y = y.$original * faultValue
Definition: Types.h:78
TLM System.
Definition: Types.h:123
oms_fault_type_enu_t faultType
Definition: Types.h:83
oms_tlmbusconnector_t ** tlmbusconnectors
List (null-terminated array) of all TLM bus connectors.
Definition: Types.h:398
bool needsExecutionTool
Definition: Types.h:516
Warning; Non-critical issues.
Definition: Types.h:158
parameter
Definition: Types.h:64
char * guid
Definition: Types.h:454
double * pointsX
Definition: Types.h:282
char * name
Name of the element.
Definition: Types.h:394