-
Notifications
You must be signed in to change notification settings - Fork 0
/
dsmodel_fmu.h
40 lines (36 loc) · 1.19 KB
/
dsmodel_fmu.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
/* A header for the dsmodel.c variant generated for FMU source code export. */
#include "util.h"
/* to e.g. get logging through the FMI logger function */
#define BUILDFMU
/* to make some necessary definitions available */
#define FMU
#include "dlldata.h"
#ifdef FMU_SOURCE_SINGLE_UNIT
static Component* globalComponent = NULL;
static Component* globalComponent2 = NULL;
#else
extern Component* globalComponent;
extern Component* globalComponent2;
/* Code copied from libds */
DYMOLA_STATIC struct BasicIDymosimStruct*getBasicIDymosimStruct() {
return dymosimGetThreadData()->modelData.basicI;
}
DYMOLA_STATIC struct BasicDDymosimStruct*getBasicDDymosimStruct() {
return dymosimGetThreadData()->modelData.basicD;
}
#endif /* FMU_SOURCE_SINGLE_UNIT */
/* Local version of this function from libds */
static void aprintLine(int type, const char *str) {
FMIStatus stat;
Component* comp=globalComponent;
if (comp == NULL) comp=globalComponent2;
if (comp == NULL) {
return;
}
switch (type) {
case 0: stat = FMIWarning; break;
case 1: stat = FMIWarning; break;
case 2: stat = FMIError; break;
}
util_logger(comp, comp->instanceName, stat, "", "%s", str);
}