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 
353 typedef struct {
354  int dummy;
356 
360 typedef struct {
361  double delay;
362  double alpha;
366 
370 typedef struct {
371  oms_connection_type_enu_t type;
372  char* conA;
373  char* conB;
377 
381 typedef struct {
382  oms_causality_enu_t causality;
383  oms_signal_type_enu_t type;
384  char* name;
387 
391 typedef struct {
392  char* name;
393  char** connectors;
396 
400 typedef struct {
401  char* name;
403  oms_tlm_domain_t domain;
405  double delay;
406  oms_tlm_interpolation_t interpolation;
410 
414 typedef struct _oms_element_t{
415  oms_element_enu_t type;
416  char* name;
422 } oms_element_t;
423 
424 typedef enum {
430 
434 typedef struct {
438  char* author;
443  char* copyright;
447  char* description;
457  char* fmiVersion;
476  char* guid;
481  char* license;
486  char* modelName;
490  char* path;
494  char* version;
556 
560 typedef struct {
564  char* path;
568  char* startScript;
570 
571 #ifdef __cplusplus
572 }
573 #endif
574 
575 #endif
Definition: Types.h:97
oms_tlm_domain_t domain
Definition: Types.h:403
defined to be equal to (oms_fmi_kind_me|oms_fmi_kind_cs)
Definition: Types.h:428
oms_connection_type_enu_t type
Connection type, e.g. TLM.
Definition: Types.h:371
oms_solver_enu_t
Definition: Types.h:96
Definition: Types.h:93
oms_fmi_kind_enu_t fmiKind
Definition: Types.h:451
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:385
Definition: Types.h:71
Definition: Types.h:55
char ** connectortypes
Definition: Types.h:408
double y1
Definition: Types.h:222
ssd_element_geometry_t * geometry
Geometry information of the element.
Definition: Types.h:421
Adaptive stepsize by .
Definition: Types.h:105
bool providesDirectionalDerivative
Definition: Types.h:543
Definition: Types.h:99
char * generationTool
Definition: Types.h:469
Definition: Types.h:92
bool canGetAndSetFMUstate
Definition: Types.h:507
char * name
Definition: Types.h:392
Error; Potentially critical issues.
Definition: Types.h:159
char ** connectors
Definition: Types.h:393
double linearimpedance
Definition: Types.h:363
bool canNotUseMemoryManagementFunctions
Definition: Types.h:513
FMU specific attributes.
Definition: Types.h:434
Connection between two connectors.
Definition: Types.h:370
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:373
Definition: Types.h:425
double iconRotation
Definition: Types.h:250
oms_status_enu_t
Definition: Types.h:43
bool canInterpolateInputs
Definition: Types.h:548
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:372
oms_connector_t ** connectors
List (null-terminated array) of all interface variables: inputs, outputs, and parameters.
Definition: Types.h:418
Adaptive stepsize.
Definition: Types.h:104
5.3.6 ssd:SimulationInformation
Definition: Types.h:353
double y2
Definition: Types.h:330
double angularimpedance
Definition: Types.h:364
struct _oms_element_t ** elements
List (null-terminated array) of all sub-elements.
Definition: Types.h:417
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:554
Definition: Types.h:122
Definition: Types.h:47
double y2
Definition: Types.h:232
Bus connector.
Definition: Types.h:391
Definition: Types.h:141
char * copyright
Definition: Types.h:443
Definition: Types.h:54
5.2.1.1 ssd:ConnectorGeometry
Definition: Types.h:178
Definition: Types.h:56
bool completedIntegratorStepNotNeeded
Definition: Types.h:528
Definition: Types.h:72
Kinsol solver.
Definition: Types.h:113
oms_tlm_interpolation_t interpolation
Definition: Types.h:406
char * name
Name of the connector.
Definition: Types.h:384
Definition: Types.h:117
oms_connection_type_enu_t
Connection type.
Definition: Types.h:147
Definition: Types.h:101
char * generationDateAndTime
Definition: Types.h:465
char * path
Definition: Types.h:564
double delay
Definition: Types.h:405
bool canBeInstantiatedOnlyOncePerProcess
Definition: Types.h:501
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:375
oms_system_enu_t
Definition: Types.h:121
oms_element_enu_t type
Element type, i.e. system or component.
Definition: Types.h:415
Definition: Types.h:107
double y1
Definition: Types.h:320
char ** connectornames
Definition: Types.h:407
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:404
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:361
Definition: Types.h:138
double x2
Definition: Types.h:325
Definition: Types.h:98
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:419
char * version
Definition: Types.h:494
Definition: Types.h:150
bool iconFixedAspectRatio
Definition: Types.h:261
Signal: input, output, and parameter.
Definition: Types.h:381
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:360
oms_fmi_kind_enu_t
Definition: Types.h:424
double x1
Definition: Types.h:217
char * author
Definition: Types.h:438
oms_tlm_domain_t
Definition: Types.h:87
char * description
Definition: Types.h:447
double faultValue
Definition: Types.h:84
char * path
Definition: Types.h:490
oms_causality_enu_t causality
input/output/parameter
Definition: Types.h:382
Definition: Types.h:129
Definition: Types.h:57
char * fmiVersion
Definition: Types.h:457
char * modelName
Definition: Types.h:486
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:401
char * startScript
Definition: Types.h:568
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:402
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:400
Definition: Types.h:136
Element (aka ssd:Component)
Definition: Types.h:414
FMI for Model Exchange.
Definition: Types.h:426
int dummy
just to make msvc happy
Definition: Types.h:354
ssd_connector_geometry_t * geometry
Definition: Types.h:394
double alpha
Definition: Types.h:362
FMU.
Definition: Types.h:130
char * license
Definition: Types.h:481
Definition: Types.h:46
Definition: Types.h:48
bool canSerializeFMUstate
Definition: Types.h:520
ssd_connection_geometry_t * geometry
Geometry information of the connection.
Definition: Types.h:374
bidirecitonal
Definition: Types.h:66
Informative message.
Definition: Types.h:157
FMI for Co-Simulation.
Definition: Types.h:427
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:383
External model specific attributes.
Definition: Types.h:560
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:420
bool needsExecutionTool
Definition: Types.h:538
Warning; Non-critical issues.
Definition: Types.h:158
parameter
Definition: Types.h:64
char * guid
Definition: Types.h:476
double * pointsX
Definition: Types.h:282
char * name
Name of the element.
Definition: Types.h:416