epanet-plus 0.1.0__cp314-cp314t-musllinux_1_2_x86_64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of epanet-plus might be problematic. Click here for more details.
- docs/conf.py +67 -0
- epanet-msx-src/dispersion.h +27 -0
- epanet-msx-src/hash.c +107 -0
- epanet-msx-src/hash.h +28 -0
- epanet-msx-src/include/epanetmsx.h +104 -0
- epanet-msx-src/include/epanetmsx_export.h +42 -0
- epanet-msx-src/mathexpr.c +937 -0
- epanet-msx-src/mathexpr.h +39 -0
- epanet-msx-src/mempool.c +204 -0
- epanet-msx-src/mempool.h +24 -0
- epanet-msx-src/msxchem.c +1285 -0
- epanet-msx-src/msxcompiler.c +368 -0
- epanet-msx-src/msxdict.h +42 -0
- epanet-msx-src/msxdispersion.c +586 -0
- epanet-msx-src/msxerr.c +116 -0
- epanet-msx-src/msxfile.c +260 -0
- epanet-msx-src/msxfuncs.c +175 -0
- epanet-msx-src/msxfuncs.h +35 -0
- epanet-msx-src/msxinp.c +1504 -0
- epanet-msx-src/msxout.c +398 -0
- epanet-msx-src/msxproj.c +791 -0
- epanet-msx-src/msxqual.c +2011 -0
- epanet-msx-src/msxrpt.c +400 -0
- epanet-msx-src/msxtank.c +422 -0
- epanet-msx-src/msxtoolkit.c +1164 -0
- epanet-msx-src/msxtypes.h +551 -0
- epanet-msx-src/msxutils.c +524 -0
- epanet-msx-src/msxutils.h +56 -0
- epanet-msx-src/newton.c +158 -0
- epanet-msx-src/newton.h +34 -0
- epanet-msx-src/rk5.c +287 -0
- epanet-msx-src/rk5.h +39 -0
- epanet-msx-src/ros2.c +293 -0
- epanet-msx-src/ros2.h +35 -0
- epanet-msx-src/smatrix.c +816 -0
- epanet-msx-src/smatrix.h +29 -0
- epanet-src/AUTHORS +60 -0
- epanet-src/LICENSE +21 -0
- epanet-src/enumstxt.h +151 -0
- epanet-src/epanet.c +5937 -0
- epanet-src/epanet2.c +961 -0
- epanet-src/epanet2.def +131 -0
- epanet-src/errors.dat +79 -0
- epanet-src/flowbalance.c +186 -0
- epanet-src/funcs.h +219 -0
- epanet-src/genmmd.c +1000 -0
- epanet-src/hash.c +177 -0
- epanet-src/hash.h +28 -0
- epanet-src/hydcoeffs.c +1303 -0
- epanet-src/hydraul.c +1164 -0
- epanet-src/hydsolver.c +781 -0
- epanet-src/hydstatus.c +442 -0
- epanet-src/include/epanet2.h +466 -0
- epanet-src/include/epanet2_2.h +1962 -0
- epanet-src/include/epanet2_enums.h +518 -0
- epanet-src/inpfile.c +884 -0
- epanet-src/input1.c +672 -0
- epanet-src/input2.c +970 -0
- epanet-src/input3.c +2265 -0
- epanet-src/leakage.c +527 -0
- epanet-src/mempool.c +146 -0
- epanet-src/mempool.h +24 -0
- epanet-src/output.c +853 -0
- epanet-src/project.c +1691 -0
- epanet-src/quality.c +695 -0
- epanet-src/qualreact.c +800 -0
- epanet-src/qualroute.c +696 -0
- epanet-src/report.c +1559 -0
- epanet-src/rules.c +1500 -0
- epanet-src/smatrix.c +871 -0
- epanet-src/text.h +508 -0
- epanet-src/types.h +928 -0
- epanet-src/util/cstr_helper.c +59 -0
- epanet-src/util/cstr_helper.h +38 -0
- epanet-src/util/errormanager.c +92 -0
- epanet-src/util/errormanager.h +39 -0
- epanet-src/util/filemanager.c +212 -0
- epanet-src/util/filemanager.h +81 -0
- epanet-src/validate.c +408 -0
- epanet.cpython-314t-x86_64-linux-musl.so +0 -0
- epanet_plus/VERSION +1 -0
- epanet_plus/__init__.py +8 -0
- epanet_plus/epanet_plus.c +118 -0
- epanet_plus/epanet_toolkit.py +2730 -0
- epanet_plus/epanet_wrapper.py +2429 -0
- epanet_plus/include/epanet_plus.h +9 -0
- epanet_plus-0.1.0.dist-info/METADATA +153 -0
- epanet_plus-0.1.0.dist-info/RECORD +106 -0
- epanet_plus-0.1.0.dist-info/WHEEL +5 -0
- epanet_plus-0.1.0.dist-info/licenses/LICENSE +21 -0
- epanet_plus-0.1.0.dist-info/top_level.txt +11 -0
- examples/basic_usage.py +35 -0
- examples/epanet_msx.py +35 -0
- python-extension/ext.c +344 -0
- python-extension/pyepanet.c +2150 -0
- python-extension/pyepanet.h +144 -0
- python-extension/pyepanet2.c +1835 -0
- python-extension/pyepanet2.h +142 -0
- python-extension/pyepanet_plus.c +37 -0
- python-extension/pyepanet_plus.h +4 -0
- python-extension/pyepanetmsx.c +388 -0
- python-extension/pyepanetmsx.h +35 -0
- tests/test_epanet.py +16 -0
- tests/test_epanetmsx.py +36 -0
- tests/test_epyt.py +114 -0
- tests/test_load_inp_from_buffer.py +18 -0
|
@@ -0,0 +1,2150 @@
|
|
|
1
|
+
#include <Python.h>
|
|
2
|
+
#include "epanet2_2.h"
|
|
3
|
+
#include "types.h"
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
PyObject* method_EN_createproject(PyObject* self, PyObject* Py_UNUSED(args))
|
|
10
|
+
{
|
|
11
|
+
EN_Project ph;
|
|
12
|
+
int err = EN_createproject(&ph);
|
|
13
|
+
|
|
14
|
+
return Py_BuildValue("(iK)", err, (uintptr_t)&(*ph));
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
PyObject* method_EN_deleteproject(PyObject* self, PyObject* args)
|
|
18
|
+
{
|
|
19
|
+
uintptr_t ptr;
|
|
20
|
+
if(!PyArg_ParseTuple(args, "K", &ptr)) {
|
|
21
|
+
return NULL;
|
|
22
|
+
}
|
|
23
|
+
EN_Project ph = (EN_Project) ptr;
|
|
24
|
+
|
|
25
|
+
int err = EN_deleteproject(ph);
|
|
26
|
+
|
|
27
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
PyObject* method_EN_init(PyObject* self, PyObject* args)
|
|
31
|
+
{
|
|
32
|
+
uintptr_t ptr;
|
|
33
|
+
char* rptFile = NULL;
|
|
34
|
+
char* outFile = NULL;
|
|
35
|
+
int unitsType, headLossType;
|
|
36
|
+
|
|
37
|
+
if(!PyArg_ParseTuple(args, "Kssii", &ptr, &rptFile, &outFile, &unitsType, &headLossType)) {
|
|
38
|
+
return NULL;
|
|
39
|
+
}
|
|
40
|
+
EN_Project ph = (EN_Project) ptr;
|
|
41
|
+
|
|
42
|
+
int err = EN_init(ph, rptFile, outFile, unitsType, headLossType);
|
|
43
|
+
|
|
44
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
PyObject* method_EN_open(PyObject* self, PyObject* args)
|
|
48
|
+
{
|
|
49
|
+
uintptr_t ptr;
|
|
50
|
+
char* inpFile = NULL;
|
|
51
|
+
char* rptFile = NULL;
|
|
52
|
+
char* outFile = NULL;
|
|
53
|
+
|
|
54
|
+
if(!PyArg_ParseTuple(args, "Ksss", &ptr, &inpFile, &rptFile, &outFile)) {
|
|
55
|
+
return NULL;
|
|
56
|
+
}
|
|
57
|
+
EN_Project ph = (EN_Project) ptr;
|
|
58
|
+
|
|
59
|
+
int err = EN_open(ph, inpFile, rptFile, outFile);
|
|
60
|
+
|
|
61
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
PyObject* method_EN_openX(PyObject* self, PyObject* args)
|
|
65
|
+
{
|
|
66
|
+
uintptr_t ptr;
|
|
67
|
+
char* inpFile = NULL;
|
|
68
|
+
char* rptFile = NULL;
|
|
69
|
+
char* outFile = NULL;
|
|
70
|
+
|
|
71
|
+
if(!PyArg_ParseTuple(args, "Ksss", &ptr, &inpFile, &rptFile, &outFile)) {
|
|
72
|
+
return NULL;
|
|
73
|
+
}
|
|
74
|
+
EN_Project ph = (EN_Project) ptr;
|
|
75
|
+
|
|
76
|
+
int err = EN_openX(ph, inpFile, rptFile, outFile);
|
|
77
|
+
|
|
78
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
PyObject* method_EN_gettitle(PyObject* self, PyObject* args)
|
|
82
|
+
{
|
|
83
|
+
uintptr_t ptr;
|
|
84
|
+
if(!PyArg_ParseTuple(args, "K", &ptr)) {
|
|
85
|
+
return NULL;
|
|
86
|
+
}
|
|
87
|
+
EN_Project ph = (EN_Project) ptr;
|
|
88
|
+
|
|
89
|
+
char out_line1[TITLELEN + 1];
|
|
90
|
+
char out_line2[TITLELEN + 1];
|
|
91
|
+
char out_line3[TITLELEN + 1];
|
|
92
|
+
int err = EN_gettitle(ph, &out_line1[0], &out_line2[0], &out_line3[0]);
|
|
93
|
+
|
|
94
|
+
return Py_BuildValue("(isss)", err, out_line1, &out_line2, &out_line3);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
PyObject* method_EN_settitle(PyObject* self, PyObject* args)
|
|
98
|
+
{
|
|
99
|
+
uintptr_t ptr;
|
|
100
|
+
char* line1 = NULL;
|
|
101
|
+
char* line2 = NULL;
|
|
102
|
+
char* line3 = NULL;
|
|
103
|
+
if(!PyArg_ParseTuple(args, "Ksss", &ptr, &line1, &line2, &line3)) {
|
|
104
|
+
return NULL;
|
|
105
|
+
}
|
|
106
|
+
EN_Project ph = (EN_Project) ptr;
|
|
107
|
+
|
|
108
|
+
int err = EN_settitle(ph, line1, line2, line3);
|
|
109
|
+
|
|
110
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
PyObject* method_EN_getcomment(PyObject* self, PyObject* args)
|
|
114
|
+
{
|
|
115
|
+
uintptr_t ptr;
|
|
116
|
+
int object, index;
|
|
117
|
+
if(!PyArg_ParseTuple(args, "Kii", &ptr, &object, &index)) {
|
|
118
|
+
return NULL;
|
|
119
|
+
}
|
|
120
|
+
EN_Project ph = (EN_Project) ptr;
|
|
121
|
+
|
|
122
|
+
char out_comment[MAXLINE + 1];
|
|
123
|
+
int err = EN_getcomment(ph, object, index, &out_comment[0]);
|
|
124
|
+
|
|
125
|
+
return Py_BuildValue("(is)", err, out_comment);
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
PyObject* method_EN_setcomment(PyObject* self, PyObject* args)
|
|
129
|
+
{
|
|
130
|
+
uintptr_t ptr;
|
|
131
|
+
int object, index;
|
|
132
|
+
char* comment = NULL;
|
|
133
|
+
if(!PyArg_ParseTuple(args, "Kiis", &ptr, &object, &index, &comment)) {
|
|
134
|
+
return NULL;
|
|
135
|
+
}
|
|
136
|
+
EN_Project ph = (EN_Project) ptr;
|
|
137
|
+
|
|
138
|
+
int err = EN_setcomment(ph, object, index, comment);
|
|
139
|
+
|
|
140
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
PyObject* method_EN_getcount(PyObject* self, PyObject* args)
|
|
144
|
+
{
|
|
145
|
+
uintptr_t ptr;
|
|
146
|
+
int object;
|
|
147
|
+
if(!PyArg_ParseTuple(args, "Ki", &ptr, &object)) {
|
|
148
|
+
return NULL;
|
|
149
|
+
}
|
|
150
|
+
EN_Project ph = (EN_Project) ptr;
|
|
151
|
+
|
|
152
|
+
int count;
|
|
153
|
+
int err = EN_getcount(ph, object, &count);
|
|
154
|
+
|
|
155
|
+
return Py_BuildValue("(ii)", err, count);
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
PyObject* method_EN_saveinpfile(PyObject* self, PyObject* args)
|
|
159
|
+
{
|
|
160
|
+
uintptr_t ptr;
|
|
161
|
+
char* filename = NULL;
|
|
162
|
+
if(!PyArg_ParseTuple(args, "Ks", &ptr, &filename)) {
|
|
163
|
+
return NULL;
|
|
164
|
+
}
|
|
165
|
+
EN_Project ph = (EN_Project) ptr;
|
|
166
|
+
|
|
167
|
+
int err = EN_saveinpfile(ph, filename);
|
|
168
|
+
|
|
169
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
PyObject* method_EN_close(PyObject* self, PyObject* args)
|
|
173
|
+
{
|
|
174
|
+
uintptr_t ptr;
|
|
175
|
+
if(!PyArg_ParseTuple(args, "K", &ptr)) {
|
|
176
|
+
return NULL;
|
|
177
|
+
}
|
|
178
|
+
EN_Project ph = (EN_Project) ptr;
|
|
179
|
+
|
|
180
|
+
int err = EN_close(ph);
|
|
181
|
+
|
|
182
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
PyObject* method_EN_solveH(PyObject* self, PyObject* args)
|
|
186
|
+
{
|
|
187
|
+
uintptr_t ptr;
|
|
188
|
+
if(!PyArg_ParseTuple(args, "K", &ptr)) {
|
|
189
|
+
return NULL;
|
|
190
|
+
}
|
|
191
|
+
EN_Project ph = (EN_Project) ptr;
|
|
192
|
+
|
|
193
|
+
int err = EN_solveH(ph);
|
|
194
|
+
|
|
195
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
PyObject* method_EN_usehydfile(PyObject* self, PyObject* args)
|
|
199
|
+
{
|
|
200
|
+
uintptr_t ptr;
|
|
201
|
+
char* filename = NULL;
|
|
202
|
+
if(!PyArg_ParseTuple(args, "Ks", &ptr, &filename)) {
|
|
203
|
+
return NULL;
|
|
204
|
+
}
|
|
205
|
+
EN_Project ph = (EN_Project) ptr;
|
|
206
|
+
|
|
207
|
+
int err = EN_usehydfile(ph, filename);
|
|
208
|
+
|
|
209
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
PyObject* method_EN_openH(PyObject* self, PyObject* args)
|
|
213
|
+
{
|
|
214
|
+
uintptr_t ptr;
|
|
215
|
+
if(!PyArg_ParseTuple(args, "K", &ptr)) {
|
|
216
|
+
return NULL;
|
|
217
|
+
}
|
|
218
|
+
EN_Project ph = (EN_Project) ptr;
|
|
219
|
+
|
|
220
|
+
int err = EN_openH(ph);
|
|
221
|
+
|
|
222
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
PyObject* method_EN_initH(PyObject* self, PyObject* args)
|
|
226
|
+
{
|
|
227
|
+
uintptr_t ptr;
|
|
228
|
+
int initFlag;
|
|
229
|
+
if(!PyArg_ParseTuple(args, "Ki", &ptr, &initFlag)) {
|
|
230
|
+
return NULL;
|
|
231
|
+
}
|
|
232
|
+
EN_Project ph = (EN_Project) ptr;
|
|
233
|
+
|
|
234
|
+
int err = EN_initH(ph, initFlag);
|
|
235
|
+
|
|
236
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
PyObject* method_EN_runH(PyObject* self, PyObject* args)
|
|
240
|
+
{
|
|
241
|
+
uintptr_t ptr;
|
|
242
|
+
if(!PyArg_ParseTuple(args, "K", &ptr)) {
|
|
243
|
+
return NULL;
|
|
244
|
+
}
|
|
245
|
+
EN_Project ph = (EN_Project) ptr;
|
|
246
|
+
|
|
247
|
+
long currentTime;
|
|
248
|
+
int err = EN_runH(ph, ¤tTime);
|
|
249
|
+
|
|
250
|
+
return PyTuple_Pack(2, PyLong_FromLong(err), PyLong_FromLong(currentTime));
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
PyObject* method_EN_nextH(PyObject* self, PyObject* args)
|
|
254
|
+
{
|
|
255
|
+
uintptr_t ptr;
|
|
256
|
+
if(!PyArg_ParseTuple(args, "K", &ptr)) {
|
|
257
|
+
return NULL;
|
|
258
|
+
}
|
|
259
|
+
EN_Project ph = (EN_Project) ptr;
|
|
260
|
+
|
|
261
|
+
long tStep;
|
|
262
|
+
int err = EN_nextH(ph, &tStep);
|
|
263
|
+
|
|
264
|
+
return PyTuple_Pack(2, PyLong_FromLong(err), PyLong_FromLong(tStep));
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
PyObject* method_EN_saveH(PyObject* self, PyObject* args)
|
|
268
|
+
{
|
|
269
|
+
uintptr_t ptr;
|
|
270
|
+
if(!PyArg_ParseTuple(args, "K", &ptr)) {
|
|
271
|
+
return NULL;
|
|
272
|
+
}
|
|
273
|
+
EN_Project ph = (EN_Project) ptr;
|
|
274
|
+
|
|
275
|
+
int err = EN_saveH(ph);
|
|
276
|
+
|
|
277
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
PyObject* method_EN_savehydfile(PyObject* self, PyObject* args)
|
|
281
|
+
{
|
|
282
|
+
uintptr_t ptr;
|
|
283
|
+
char* filename = NULL;
|
|
284
|
+
if(!PyArg_ParseTuple(args, "Ks", &ptr, &filename)) {
|
|
285
|
+
return NULL;
|
|
286
|
+
}
|
|
287
|
+
EN_Project ph = (EN_Project) ptr;
|
|
288
|
+
|
|
289
|
+
int err = EN_savehydfile(ph, filename);
|
|
290
|
+
|
|
291
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
PyObject* method_EN_closeH(PyObject* self, PyObject* args)
|
|
295
|
+
{
|
|
296
|
+
uintptr_t ptr;
|
|
297
|
+
if(!PyArg_ParseTuple(args, "K", &ptr)) {
|
|
298
|
+
return NULL;
|
|
299
|
+
}
|
|
300
|
+
EN_Project ph = (EN_Project) ptr;
|
|
301
|
+
|
|
302
|
+
int err = EN_closeH(ph);
|
|
303
|
+
|
|
304
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
PyObject* method_EN_solveQ(PyObject* self, PyObject* args)
|
|
308
|
+
{
|
|
309
|
+
uintptr_t ptr;
|
|
310
|
+
if(!PyArg_ParseTuple(args, "K", &ptr)) {
|
|
311
|
+
return NULL;
|
|
312
|
+
}
|
|
313
|
+
EN_Project ph = (EN_Project) ptr;
|
|
314
|
+
|
|
315
|
+
int err = EN_solveQ(ph);
|
|
316
|
+
|
|
317
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
PyObject* method_EN_openQ(PyObject* self, PyObject* args)
|
|
321
|
+
{
|
|
322
|
+
uintptr_t ptr;
|
|
323
|
+
if(!PyArg_ParseTuple(args, "K", &ptr)) {
|
|
324
|
+
return NULL;
|
|
325
|
+
}
|
|
326
|
+
EN_Project ph = (EN_Project) ptr;
|
|
327
|
+
|
|
328
|
+
int err = EN_openQ(ph);
|
|
329
|
+
|
|
330
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
PyObject* method_EN_initQ(PyObject* self, PyObject* args)
|
|
334
|
+
{
|
|
335
|
+
uintptr_t ptr;
|
|
336
|
+
int saveFlag;
|
|
337
|
+
if(!PyArg_ParseTuple(args, "Ki", &ptr, &saveFlag)) {
|
|
338
|
+
return NULL;
|
|
339
|
+
}
|
|
340
|
+
EN_Project ph = (EN_Project) ptr;
|
|
341
|
+
|
|
342
|
+
int err = EN_initQ(ph, saveFlag);
|
|
343
|
+
|
|
344
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
PyObject* method_EN_runQ(PyObject* self, PyObject* args)
|
|
348
|
+
{
|
|
349
|
+
uintptr_t ptr;
|
|
350
|
+
if(!PyArg_ParseTuple(args, "K", &ptr)) {
|
|
351
|
+
return NULL;
|
|
352
|
+
}
|
|
353
|
+
EN_Project ph = (EN_Project) ptr;
|
|
354
|
+
|
|
355
|
+
long currentTime;
|
|
356
|
+
int err = EN_runQ(ph, ¤tTime);
|
|
357
|
+
|
|
358
|
+
return PyTuple_Pack(2, PyLong_FromLong(err), PyLong_FromLong(currentTime));
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
PyObject* method_EN_nextQ(PyObject* self, PyObject* args)
|
|
362
|
+
{
|
|
363
|
+
uintptr_t ptr;
|
|
364
|
+
if(!PyArg_ParseTuple(args, "K", &ptr)) {
|
|
365
|
+
return NULL;
|
|
366
|
+
}
|
|
367
|
+
EN_Project ph = (EN_Project) ptr;
|
|
368
|
+
|
|
369
|
+
long tStep;
|
|
370
|
+
int err = EN_nextQ(ph, &tStep);
|
|
371
|
+
|
|
372
|
+
return PyTuple_Pack(2, PyLong_FromLong(err), PyLong_FromLong(tStep));
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
PyObject* method_EN_stepQ(PyObject* self, PyObject* args)
|
|
376
|
+
{
|
|
377
|
+
uintptr_t ptr;
|
|
378
|
+
if(!PyArg_ParseTuple(args, "K", &ptr)) {
|
|
379
|
+
return NULL;
|
|
380
|
+
}
|
|
381
|
+
EN_Project ph = (EN_Project) ptr;
|
|
382
|
+
|
|
383
|
+
long timeLeft;
|
|
384
|
+
int err = EN_stepQ(ph, &timeLeft);
|
|
385
|
+
|
|
386
|
+
return PyTuple_Pack(2, PyLong_FromLong(err), PyLong_FromLong(timeLeft));
|
|
387
|
+
}
|
|
388
|
+
|
|
389
|
+
PyObject* method_EN_closeQ(PyObject* self, PyObject* args)
|
|
390
|
+
{
|
|
391
|
+
uintptr_t ptr;
|
|
392
|
+
if(!PyArg_ParseTuple(args, "K", &ptr)) {
|
|
393
|
+
return NULL;
|
|
394
|
+
}
|
|
395
|
+
EN_Project ph = (EN_Project) ptr;
|
|
396
|
+
|
|
397
|
+
int err = EN_closeQ(ph);
|
|
398
|
+
|
|
399
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
400
|
+
}
|
|
401
|
+
|
|
402
|
+
PyObject* method_EN_writeline(PyObject* self, PyObject* args)
|
|
403
|
+
{
|
|
404
|
+
uintptr_t ptr;
|
|
405
|
+
char* line = NULL;
|
|
406
|
+
if(!PyArg_ParseTuple(args, "Ks", &ptr, &line)) {
|
|
407
|
+
return NULL;
|
|
408
|
+
}
|
|
409
|
+
EN_Project ph = (EN_Project) ptr;
|
|
410
|
+
|
|
411
|
+
int err = EN_writeline(ph, line);
|
|
412
|
+
|
|
413
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
PyObject* method_EN_report(PyObject* self, PyObject* args)
|
|
417
|
+
{
|
|
418
|
+
uintptr_t ptr;
|
|
419
|
+
if(!PyArg_ParseTuple(args, "K", &ptr)) {
|
|
420
|
+
return NULL;
|
|
421
|
+
}
|
|
422
|
+
EN_Project ph = (EN_Project) ptr;
|
|
423
|
+
|
|
424
|
+
int err = EN_report(ph);
|
|
425
|
+
|
|
426
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
427
|
+
}
|
|
428
|
+
|
|
429
|
+
PyObject* method_EN_copyreport(PyObject* self, PyObject* args)
|
|
430
|
+
{
|
|
431
|
+
uintptr_t ptr;
|
|
432
|
+
char* filename = NULL;
|
|
433
|
+
if(!PyArg_ParseTuple(args, "K", &ptr, &filename)) {
|
|
434
|
+
return NULL;
|
|
435
|
+
}
|
|
436
|
+
EN_Project ph = (EN_Project) ptr;
|
|
437
|
+
|
|
438
|
+
int err = EN_copyreport(ph, filename);
|
|
439
|
+
|
|
440
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
441
|
+
}
|
|
442
|
+
|
|
443
|
+
PyObject* method_EN_clearreport(PyObject* self, PyObject* args)
|
|
444
|
+
{
|
|
445
|
+
uintptr_t ptr;
|
|
446
|
+
if(!PyArg_ParseTuple(args, "K", &ptr)) {
|
|
447
|
+
return NULL;
|
|
448
|
+
}
|
|
449
|
+
EN_Project ph = (EN_Project) ptr;
|
|
450
|
+
|
|
451
|
+
int err = EN_clearreport(ph);
|
|
452
|
+
|
|
453
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
454
|
+
}
|
|
455
|
+
|
|
456
|
+
PyObject* method_EN_resetreport(PyObject* self, PyObject* args)
|
|
457
|
+
{
|
|
458
|
+
uintptr_t ptr;
|
|
459
|
+
if(!PyArg_ParseTuple(args, "K", &ptr)) {
|
|
460
|
+
return NULL;
|
|
461
|
+
}
|
|
462
|
+
EN_Project ph = (EN_Project) ptr;
|
|
463
|
+
|
|
464
|
+
int err = EN_resetreport(ph);
|
|
465
|
+
|
|
466
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
467
|
+
}
|
|
468
|
+
|
|
469
|
+
PyObject* method_EN_setreport(PyObject* self, PyObject* args)
|
|
470
|
+
{
|
|
471
|
+
uintptr_t ptr;
|
|
472
|
+
char* format = NULL;
|
|
473
|
+
if(!PyArg_ParseTuple(args, "Ks", &ptr, &format)) {
|
|
474
|
+
return NULL;
|
|
475
|
+
}
|
|
476
|
+
EN_Project ph = (EN_Project) ptr;
|
|
477
|
+
|
|
478
|
+
int err = EN_setreport(ph, format);
|
|
479
|
+
|
|
480
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
481
|
+
}
|
|
482
|
+
|
|
483
|
+
PyObject* method_EN_setstatusreport(PyObject* self, PyObject* args)
|
|
484
|
+
{
|
|
485
|
+
uintptr_t ptr;
|
|
486
|
+
int level;
|
|
487
|
+
if(!PyArg_ParseTuple(args, "Ki", &ptr, &level)) {
|
|
488
|
+
return NULL;
|
|
489
|
+
}
|
|
490
|
+
EN_Project ph = (EN_Project) ptr;
|
|
491
|
+
|
|
492
|
+
int err = EN_setstatusreport(ph, level);
|
|
493
|
+
|
|
494
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
495
|
+
}
|
|
496
|
+
|
|
497
|
+
PyObject* method_EN_getversion(PyObject* self, PyObject* args)
|
|
498
|
+
{
|
|
499
|
+
int version;
|
|
500
|
+
int err = EN_getversion(&version);
|
|
501
|
+
|
|
502
|
+
return PyTuple_Pack(2, PyLong_FromLong(err), PyLong_FromLong(version));
|
|
503
|
+
}
|
|
504
|
+
|
|
505
|
+
PyObject* method_EN_geterror(PyObject* self, PyObject* args)
|
|
506
|
+
{
|
|
507
|
+
int errcode;
|
|
508
|
+
if(!PyArg_ParseTuple(args, "i", &errcode)) {
|
|
509
|
+
return NULL;
|
|
510
|
+
}
|
|
511
|
+
|
|
512
|
+
char out_errmsg[MAXMSG + 1];
|
|
513
|
+
int err = EN_geterror(errcode, &out_errmsg[0], MAXMSG + 1);
|
|
514
|
+
|
|
515
|
+
return PyTuple_Pack(2, PyLong_FromLong(err), PyUnicode_FromString(&out_errmsg[0]));
|
|
516
|
+
}
|
|
517
|
+
|
|
518
|
+
PyObject* method_EN_getstatistic(PyObject* self, PyObject* args)
|
|
519
|
+
{
|
|
520
|
+
uintptr_t ptr;
|
|
521
|
+
int type;
|
|
522
|
+
if(!PyArg_ParseTuple(args, "Kii", &ptr, &type)) {
|
|
523
|
+
return NULL;
|
|
524
|
+
}
|
|
525
|
+
EN_Project ph = (EN_Project) ptr;
|
|
526
|
+
|
|
527
|
+
double value;
|
|
528
|
+
int err = EN_getstatistic(ph, type, &value);
|
|
529
|
+
|
|
530
|
+
return PyTuple_Pack(2, PyLong_FromLong(err), PyFloat_FromDouble(value));
|
|
531
|
+
}
|
|
532
|
+
|
|
533
|
+
PyObject* method_EN_getresultindex(PyObject* self, PyObject* args)
|
|
534
|
+
{
|
|
535
|
+
int type, index, value;
|
|
536
|
+
uintptr_t ptr;
|
|
537
|
+
if(!PyArg_ParseTuple(args, "Kii", &ptr, &type, &index)) {
|
|
538
|
+
return NULL;
|
|
539
|
+
}
|
|
540
|
+
EN_Project ph = (EN_Project) ptr;
|
|
541
|
+
|
|
542
|
+
int err = EN_getresultindex(ph, type, index, &value);
|
|
543
|
+
|
|
544
|
+
return Py_BuildValue("(ii)", err, value);
|
|
545
|
+
return PyTuple_Pack(2, PyLong_FromLong(err), PyLong_FromLong(value));
|
|
546
|
+
}
|
|
547
|
+
|
|
548
|
+
PyObject* method_EN_getoption(PyObject* self, PyObject* args)
|
|
549
|
+
{
|
|
550
|
+
uintptr_t ptr;
|
|
551
|
+
int option;
|
|
552
|
+
if(!PyArg_ParseTuple(args, "Ki", &ptr, &option)) {
|
|
553
|
+
return NULL;
|
|
554
|
+
}
|
|
555
|
+
EN_Project ph = (EN_Project) ptr;
|
|
556
|
+
|
|
557
|
+
double value;
|
|
558
|
+
int err = EN_getoption(ph, option, &value);
|
|
559
|
+
|
|
560
|
+
return PyTuple_Pack(2, PyLong_FromLong(err), PyFloat_FromDouble(value));
|
|
561
|
+
}
|
|
562
|
+
|
|
563
|
+
PyObject* method_EN_setoption(PyObject* self, PyObject* args)
|
|
564
|
+
{
|
|
565
|
+
uintptr_t ptr;
|
|
566
|
+
int option;
|
|
567
|
+
double value;
|
|
568
|
+
if(!PyArg_ParseTuple(args, "Kid", &ptr, &option, &value)) {
|
|
569
|
+
return NULL;
|
|
570
|
+
}
|
|
571
|
+
EN_Project ph = (EN_Project) ptr;
|
|
572
|
+
|
|
573
|
+
int err = EN_setoption(ph, option, value);
|
|
574
|
+
|
|
575
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
576
|
+
}
|
|
577
|
+
|
|
578
|
+
PyObject* method_EN_getflowunits(PyObject* self, PyObject* args)
|
|
579
|
+
{
|
|
580
|
+
uintptr_t ptr;
|
|
581
|
+
if(!PyArg_ParseTuple(args, "K", &ptr)) {
|
|
582
|
+
return NULL;
|
|
583
|
+
}
|
|
584
|
+
EN_Project ph = (EN_Project) ptr;
|
|
585
|
+
|
|
586
|
+
int units;
|
|
587
|
+
int err = EN_getflowunits(ph, &units);
|
|
588
|
+
|
|
589
|
+
return PyTuple_Pack(2, PyLong_FromLong(err), PyLong_FromLong(units));
|
|
590
|
+
}
|
|
591
|
+
|
|
592
|
+
PyObject* method_EN_setflowunits(PyObject* self, PyObject* args)
|
|
593
|
+
{
|
|
594
|
+
uintptr_t ptr;
|
|
595
|
+
int units;
|
|
596
|
+
if(!PyArg_ParseTuple(args, "Ki", &ptr, &units)) {
|
|
597
|
+
return NULL;
|
|
598
|
+
}
|
|
599
|
+
EN_Project ph = (EN_Project) ptr;
|
|
600
|
+
|
|
601
|
+
int err = EN_setflowunits(ph, units);
|
|
602
|
+
|
|
603
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
604
|
+
}
|
|
605
|
+
|
|
606
|
+
PyObject* method_EN_gettimeparam(PyObject* self, PyObject* args)
|
|
607
|
+
{
|
|
608
|
+
uintptr_t ptr;
|
|
609
|
+
int param;
|
|
610
|
+
if(!PyArg_ParseTuple(args, "Ki", &ptr, ¶m)) {
|
|
611
|
+
return NULL;
|
|
612
|
+
}
|
|
613
|
+
EN_Project ph = (EN_Project) ptr;
|
|
614
|
+
|
|
615
|
+
long value;
|
|
616
|
+
int err = EN_gettimeparam(ph, param, &value);
|
|
617
|
+
|
|
618
|
+
return PyTuple_Pack(2, PyLong_FromLong(err), PyLong_FromLong(value));
|
|
619
|
+
}
|
|
620
|
+
|
|
621
|
+
PyObject* method_EN_settimeparam(PyObject* self, PyObject* args)
|
|
622
|
+
{
|
|
623
|
+
uintptr_t ptr;
|
|
624
|
+
int param;
|
|
625
|
+
long value;
|
|
626
|
+
if(!PyArg_ParseTuple(args, "Kil", &ptr, ¶m, &value)) {
|
|
627
|
+
return NULL;
|
|
628
|
+
}
|
|
629
|
+
EN_Project ph = (EN_Project) ptr;
|
|
630
|
+
|
|
631
|
+
int err = EN_settimeparam(ph, param, value);
|
|
632
|
+
|
|
633
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
634
|
+
}
|
|
635
|
+
|
|
636
|
+
PyObject* method_EN_getqualinfo(PyObject* self, PyObject* args)
|
|
637
|
+
{
|
|
638
|
+
uintptr_t ptr;
|
|
639
|
+
if(!PyArg_ParseTuple(args, "K", &ptr)) {
|
|
640
|
+
return NULL;
|
|
641
|
+
}
|
|
642
|
+
EN_Project ph = (EN_Project) ptr;
|
|
643
|
+
|
|
644
|
+
int qualType, traceNode;
|
|
645
|
+
char out_chemName[MAXID + 1];
|
|
646
|
+
char out_chemUnits[MAXID + 1];
|
|
647
|
+
int err = EN_getqualinfo(ph, &qualType, &out_chemName[0], &out_chemUnits[0], &traceNode);
|
|
648
|
+
|
|
649
|
+
return PyTuple_Pack(5, PyLong_FromLong(err), PyLong_FromLong(qualType), PyUnicode_FromString(&out_chemName[0]), PyUnicode_FromString(&out_chemUnits[0]), PyLong_FromLong(traceNode));
|
|
650
|
+
}
|
|
651
|
+
|
|
652
|
+
PyObject* method_EN_getqualtype(PyObject* self, PyObject* args)
|
|
653
|
+
{
|
|
654
|
+
uintptr_t ptr;
|
|
655
|
+
if(!PyArg_ParseTuple(args, "K", &ptr)) {
|
|
656
|
+
return NULL;
|
|
657
|
+
}
|
|
658
|
+
EN_Project ph = (EN_Project) ptr;
|
|
659
|
+
|
|
660
|
+
int qualType, traceNode;
|
|
661
|
+
int err = EN_getqualtype(ph, &qualType, &traceNode);
|
|
662
|
+
|
|
663
|
+
return PyTuple_Pack(3, PyLong_FromLong(err), PyLong_FromLong(qualType), PyLong_FromLong(traceNode));
|
|
664
|
+
}
|
|
665
|
+
|
|
666
|
+
PyObject* method_EN_setqualtype(PyObject* self, PyObject* args)
|
|
667
|
+
{
|
|
668
|
+
uintptr_t ptr;
|
|
669
|
+
int qualType;
|
|
670
|
+
char* chemName = NULL;
|
|
671
|
+
char* chemUnits = NULL;
|
|
672
|
+
char* traceNode = NULL;
|
|
673
|
+
if(!PyArg_ParseTuple(args, "Kisss", &ptr, &qualType, &chemName, &chemUnits, &traceNode)) {
|
|
674
|
+
return NULL;
|
|
675
|
+
}
|
|
676
|
+
EN_Project ph = (EN_Project) ptr;
|
|
677
|
+
|
|
678
|
+
int err = EN_setqualtype(ph, qualType, chemName, chemUnits, traceNode);
|
|
679
|
+
|
|
680
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
681
|
+
}
|
|
682
|
+
|
|
683
|
+
PyObject* method_EN_addnode(PyObject* self, PyObject* args)
|
|
684
|
+
{
|
|
685
|
+
uintptr_t ptr;
|
|
686
|
+
char* id = NULL;
|
|
687
|
+
int nodeType;
|
|
688
|
+
if(!PyArg_ParseTuple(args, "Ksi", &ptr, &id, &nodeType)) {
|
|
689
|
+
return NULL;
|
|
690
|
+
}
|
|
691
|
+
EN_Project ph = (EN_Project) ptr;
|
|
692
|
+
|
|
693
|
+
int index;
|
|
694
|
+
int err = EN_addnode(ph, id, nodeType, &index);
|
|
695
|
+
|
|
696
|
+
return Py_BuildValue("(ii)", err, index);
|
|
697
|
+
return PyTuple_Pack(2, PyLong_FromLong(err), PyLong_FromLong(index));
|
|
698
|
+
}
|
|
699
|
+
|
|
700
|
+
PyObject* method_EN_deletenode(PyObject* self, PyObject* args)
|
|
701
|
+
{
|
|
702
|
+
uintptr_t ptr;
|
|
703
|
+
int index, actionCode;
|
|
704
|
+
if(!PyArg_ParseTuple(args, "Kii", &ptr, &index, &actionCode)) {
|
|
705
|
+
return NULL;
|
|
706
|
+
}
|
|
707
|
+
EN_Project ph = (EN_Project) ptr;
|
|
708
|
+
|
|
709
|
+
int err = EN_deletenode(ph, index, actionCode);
|
|
710
|
+
|
|
711
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
712
|
+
}
|
|
713
|
+
|
|
714
|
+
PyObject* method_EN_getnodeindex(PyObject* self, PyObject* args)
|
|
715
|
+
{
|
|
716
|
+
uintptr_t ptr;
|
|
717
|
+
char* id = NULL;
|
|
718
|
+
if(!PyArg_ParseTuple(args, "Ks", &ptr, &id)) {
|
|
719
|
+
return NULL;
|
|
720
|
+
}
|
|
721
|
+
EN_Project ph = (EN_Project) ptr;
|
|
722
|
+
|
|
723
|
+
int index;
|
|
724
|
+
int err = EN_getnodeindex(ph, id, &index);
|
|
725
|
+
|
|
726
|
+
return PyTuple_Pack(2, PyLong_FromLong(err), PyLong_FromLong(index));
|
|
727
|
+
}
|
|
728
|
+
|
|
729
|
+
PyObject* method_EN_getnodeid(PyObject* self, PyObject* args)
|
|
730
|
+
{
|
|
731
|
+
uintptr_t ptr;
|
|
732
|
+
int index;
|
|
733
|
+
if(!PyArg_ParseTuple(args, "Ki", &ptr, &index)) {
|
|
734
|
+
return NULL;
|
|
735
|
+
}
|
|
736
|
+
EN_Project ph = (EN_Project) ptr;
|
|
737
|
+
|
|
738
|
+
char out_id[MAXID + 1];
|
|
739
|
+
int err = EN_getnodeid(ph, index, &out_id[0]);
|
|
740
|
+
|
|
741
|
+
return PyTuple_Pack(2, PyLong_FromLong(err), PyUnicode_FromString(&out_id[0]));
|
|
742
|
+
}
|
|
743
|
+
|
|
744
|
+
PyObject* method_EN_setnodeid(PyObject* self, PyObject* args)
|
|
745
|
+
{
|
|
746
|
+
uintptr_t ptr;
|
|
747
|
+
int index;
|
|
748
|
+
char* newid = NULL;
|
|
749
|
+
if(!PyArg_ParseTuple(args, "Kis", &ptr, &index, &newid)) {
|
|
750
|
+
return NULL;
|
|
751
|
+
}
|
|
752
|
+
EN_Project ph = (EN_Project) ptr;
|
|
753
|
+
|
|
754
|
+
int err = EN_setnodeid(ph, index, newid);
|
|
755
|
+
|
|
756
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
757
|
+
}
|
|
758
|
+
|
|
759
|
+
PyObject* method_EN_getnodetype(PyObject* self, PyObject* args)
|
|
760
|
+
{
|
|
761
|
+
uintptr_t ptr;
|
|
762
|
+
int index;
|
|
763
|
+
if(!PyArg_ParseTuple(args, "Ki", &ptr, &index)) {
|
|
764
|
+
return NULL;
|
|
765
|
+
}
|
|
766
|
+
EN_Project ph = (EN_Project) ptr;
|
|
767
|
+
|
|
768
|
+
int nodeType;
|
|
769
|
+
int err = EN_getnodetype(ph, index, &nodeType);
|
|
770
|
+
|
|
771
|
+
return PyTuple_Pack(2, PyLong_FromLong(err), PyLong_FromLong(nodeType));
|
|
772
|
+
}
|
|
773
|
+
|
|
774
|
+
PyObject* method_EN_getnodevalue(PyObject* self, PyObject* args)
|
|
775
|
+
{
|
|
776
|
+
uintptr_t ptr;
|
|
777
|
+
int index, property;
|
|
778
|
+
if(!PyArg_ParseTuple(args, "Kii", &ptr, &index, &property)) {
|
|
779
|
+
return NULL;
|
|
780
|
+
}
|
|
781
|
+
EN_Project ph = (EN_Project) ptr;
|
|
782
|
+
|
|
783
|
+
double value;
|
|
784
|
+
int err = EN_getnodevalue(ph, index, property, &value);
|
|
785
|
+
|
|
786
|
+
return PyTuple_Pack(2, PyLong_FromLong(err), PyFloat_FromDouble(value));
|
|
787
|
+
}
|
|
788
|
+
|
|
789
|
+
PyObject* method_EN_setnodevalue(PyObject* self, PyObject* args)
|
|
790
|
+
{
|
|
791
|
+
uintptr_t ptr;
|
|
792
|
+
int index, property;
|
|
793
|
+
double value;
|
|
794
|
+
if(!PyArg_ParseTuple(args, "Kiid", &ptr, &index, &property, &value)) {
|
|
795
|
+
return NULL;
|
|
796
|
+
}
|
|
797
|
+
EN_Project ph = (EN_Project) ptr;
|
|
798
|
+
|
|
799
|
+
int err = EN_setnodevalue(ph, index, property, value);
|
|
800
|
+
|
|
801
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
802
|
+
}
|
|
803
|
+
|
|
804
|
+
PyObject* method_EN_setjuncdata(PyObject* self, PyObject* args)
|
|
805
|
+
{
|
|
806
|
+
uintptr_t ptr;
|
|
807
|
+
int index;
|
|
808
|
+
double elev, dmnd;
|
|
809
|
+
char* dmndpat = NULL;
|
|
810
|
+
if(!PyArg_ParseTuple(args, "Kidds", &ptr, &index, &elev, &dmnd, &dmndpat)) {
|
|
811
|
+
return NULL;
|
|
812
|
+
}
|
|
813
|
+
EN_Project ph = (EN_Project) ptr;
|
|
814
|
+
|
|
815
|
+
int err = EN_setjuncdata(ph, index, elev, dmnd, dmndpat);
|
|
816
|
+
|
|
817
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
818
|
+
}
|
|
819
|
+
|
|
820
|
+
PyObject* method_EN_settankdata(PyObject* self, PyObject* args)
|
|
821
|
+
{
|
|
822
|
+
uintptr_t ptr;
|
|
823
|
+
int index;
|
|
824
|
+
double elev, initlvl, minlvl, maxlvl, diam, minvol;
|
|
825
|
+
char* volcurve = NULL;
|
|
826
|
+
if(!PyArg_ParseTuple(args, "Kiddddds", &ptr, &index, &elev, &initlvl, &minlvl, &maxlvl, &diam, &minvol, &volcurve)) {
|
|
827
|
+
return NULL;
|
|
828
|
+
}
|
|
829
|
+
EN_Project ph = (EN_Project) ptr;
|
|
830
|
+
|
|
831
|
+
int err = EN_settankdata(ph, index, elev, initlvl, minlvl, maxlvl, diam, minvol, volcurve);
|
|
832
|
+
|
|
833
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
834
|
+
}
|
|
835
|
+
|
|
836
|
+
PyObject* method_EN_getcoord(PyObject* self, PyObject* args)
|
|
837
|
+
{
|
|
838
|
+
uintptr_t ptr;
|
|
839
|
+
int index;
|
|
840
|
+
if(!PyArg_ParseTuple(args, "Ki", &ptr, &index)) {
|
|
841
|
+
return NULL;
|
|
842
|
+
}
|
|
843
|
+
EN_Project ph = (EN_Project) ptr;
|
|
844
|
+
|
|
845
|
+
double x, y;
|
|
846
|
+
int err = EN_getcoord(ph, index, &x, &y);
|
|
847
|
+
|
|
848
|
+
return PyTuple_Pack(3, PyLong_FromLong(err), PyFloat_FromDouble(x), PyFloat_FromDouble(y));
|
|
849
|
+
}
|
|
850
|
+
|
|
851
|
+
PyObject* method_EN_setcoord(PyObject* self, PyObject* args)
|
|
852
|
+
{
|
|
853
|
+
uintptr_t ptr;
|
|
854
|
+
int index;
|
|
855
|
+
double x, y;
|
|
856
|
+
if(!PyArg_ParseTuple(args, "Kidd", &ptr, &index, &x, &y)) {
|
|
857
|
+
return NULL;
|
|
858
|
+
}
|
|
859
|
+
EN_Project ph = (EN_Project) ptr;
|
|
860
|
+
|
|
861
|
+
int err = EN_setcoord(ph, index, x, y);
|
|
862
|
+
|
|
863
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
864
|
+
}
|
|
865
|
+
|
|
866
|
+
PyObject* method_EN_getdemandmodel(PyObject* self, PyObject* args)
|
|
867
|
+
{
|
|
868
|
+
uintptr_t ptr;
|
|
869
|
+
if(!PyArg_ParseTuple(args, "K", &ptr)) {
|
|
870
|
+
return NULL;
|
|
871
|
+
}
|
|
872
|
+
EN_Project ph = (EN_Project) ptr;
|
|
873
|
+
|
|
874
|
+
int type;
|
|
875
|
+
double pmin, preq, pexp;
|
|
876
|
+
int err = EN_getdemandmodel(ph, &type, &pmin, &preq, &pexp);
|
|
877
|
+
|
|
878
|
+
return PyTuple_Pack(5, PyLong_FromLong(err), PyLong_FromLong(type), PyFloat_FromDouble(pmin), PyFloat_FromDouble(preq), PyFloat_FromDouble(pexp));
|
|
879
|
+
}
|
|
880
|
+
|
|
881
|
+
PyObject* method_EN_setdemandmodel(PyObject* self, PyObject* args)
|
|
882
|
+
{
|
|
883
|
+
uintptr_t ptr;
|
|
884
|
+
int type;
|
|
885
|
+
double pmin, preq, pexp;
|
|
886
|
+
if(!PyArg_ParseTuple(args, "Kiddd", &ptr, &type, &pmin, &preq, &pexp)) {
|
|
887
|
+
return NULL;
|
|
888
|
+
}
|
|
889
|
+
EN_Project ph = (EN_Project) ptr;
|
|
890
|
+
|
|
891
|
+
int err = EN_setdemandmodel(ph, type, pmin, preq, pexp);
|
|
892
|
+
|
|
893
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
894
|
+
}
|
|
895
|
+
|
|
896
|
+
PyObject* method_EN_adddemand(PyObject* self, PyObject* args)
|
|
897
|
+
{
|
|
898
|
+
uintptr_t ptr;
|
|
899
|
+
int nodeIndex;
|
|
900
|
+
double baseDemand;
|
|
901
|
+
char* demandPattern = NULL;
|
|
902
|
+
char* demandName = NULL;
|
|
903
|
+
if(!PyArg_ParseTuple(args, "Kidss", &ptr, &nodeIndex, &baseDemand, &demandPattern, &demandName)) {
|
|
904
|
+
return NULL;
|
|
905
|
+
}
|
|
906
|
+
EN_Project ph = (EN_Project) ptr;
|
|
907
|
+
|
|
908
|
+
int err = EN_adddemand(ph, nodeIndex, baseDemand, demandPattern, demandName);
|
|
909
|
+
|
|
910
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
911
|
+
}
|
|
912
|
+
|
|
913
|
+
PyObject* method_EN_deletedemand(PyObject* self, PyObject* args)
|
|
914
|
+
{
|
|
915
|
+
uintptr_t ptr;
|
|
916
|
+
int nodeIndex, demandIndex;
|
|
917
|
+
if(!PyArg_ParseTuple(args, "Kii", &ptr, &nodeIndex, &demandIndex)) {
|
|
918
|
+
return NULL;
|
|
919
|
+
}
|
|
920
|
+
EN_Project ph = (EN_Project) ptr;
|
|
921
|
+
|
|
922
|
+
int err = EN_deletedemand(ph, nodeIndex, demandIndex);
|
|
923
|
+
|
|
924
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
925
|
+
}
|
|
926
|
+
|
|
927
|
+
PyObject* method_EN_getdemandindex(PyObject* self, PyObject* args)
|
|
928
|
+
{
|
|
929
|
+
uintptr_t ptr;
|
|
930
|
+
int nodeIndex;
|
|
931
|
+
char* demandName = NULL;
|
|
932
|
+
if(!PyArg_ParseTuple(args, "Ki", &ptr, &nodeIndex, &demandName)) {
|
|
933
|
+
return NULL;
|
|
934
|
+
}
|
|
935
|
+
EN_Project ph = (EN_Project) ptr;
|
|
936
|
+
|
|
937
|
+
int demandIndex;
|
|
938
|
+
int err = EN_getdemandindex(ph, nodeIndex, demandName, &demandIndex);
|
|
939
|
+
|
|
940
|
+
return PyTuple_Pack(2, PyLong_FromLong(err), PyLong_FromLong(demandIndex));
|
|
941
|
+
}
|
|
942
|
+
|
|
943
|
+
PyObject* method_EN_getnumdemands(PyObject* self, PyObject* args)
|
|
944
|
+
{
|
|
945
|
+
uintptr_t ptr;
|
|
946
|
+
int nodeIndex;
|
|
947
|
+
if(!PyArg_ParseTuple(args, "Ki", &ptr, &nodeIndex)) {
|
|
948
|
+
return NULL;
|
|
949
|
+
}
|
|
950
|
+
EN_Project ph = (EN_Project) ptr;
|
|
951
|
+
|
|
952
|
+
int numDemands;
|
|
953
|
+
int err = EN_getnumdemands(ph, nodeIndex, &numDemands);
|
|
954
|
+
|
|
955
|
+
return PyTuple_Pack(2, PyLong_FromLong(err), PyLong_FromLong(numDemands));
|
|
956
|
+
}
|
|
957
|
+
|
|
958
|
+
PyObject* method_EN_getbasedemand(PyObject* self, PyObject* args)
|
|
959
|
+
{
|
|
960
|
+
uintptr_t ptr;
|
|
961
|
+
int nodeIndex, demandIndex;
|
|
962
|
+
if(!PyArg_ParseTuple(args, "Kii", &ptr, &nodeIndex, &demandIndex)) {
|
|
963
|
+
return NULL;
|
|
964
|
+
}
|
|
965
|
+
EN_Project ph = (EN_Project) ptr;
|
|
966
|
+
|
|
967
|
+
double baseDemand;
|
|
968
|
+
int err = EN_getbasedemand(ph, nodeIndex, demandIndex, &baseDemand);
|
|
969
|
+
|
|
970
|
+
return PyTuple_Pack(2, PyLong_FromLong(err), PyFloat_FromDouble(baseDemand));
|
|
971
|
+
}
|
|
972
|
+
|
|
973
|
+
PyObject* method_EN_setbasedemand(PyObject* self, PyObject* args)
|
|
974
|
+
{
|
|
975
|
+
uintptr_t ptr;
|
|
976
|
+
int nodeIndex, demandIndex;
|
|
977
|
+
double baseDemand;
|
|
978
|
+
if(!PyArg_ParseTuple(args, "Kiid", &ptr, &nodeIndex, &demandIndex, &baseDemand)) {
|
|
979
|
+
return NULL;
|
|
980
|
+
}
|
|
981
|
+
EN_Project ph = (EN_Project) ptr;
|
|
982
|
+
|
|
983
|
+
int err = EN_setbasedemand(ph, nodeIndex, demandIndex, baseDemand);
|
|
984
|
+
|
|
985
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
986
|
+
}
|
|
987
|
+
|
|
988
|
+
PyObject* method_EN_getdemandpattern(PyObject* self, PyObject* args)
|
|
989
|
+
{
|
|
990
|
+
uintptr_t ptr;
|
|
991
|
+
int nodeIndex, demandIndex;
|
|
992
|
+
if(!PyArg_ParseTuple(args, "Kii", &ptr, &nodeIndex, &demandIndex)) {
|
|
993
|
+
return NULL;
|
|
994
|
+
}
|
|
995
|
+
EN_Project ph = (EN_Project) ptr;
|
|
996
|
+
|
|
997
|
+
int patIndex;
|
|
998
|
+
int err = EN_getdemandpattern(ph, nodeIndex, demandIndex, &patIndex);
|
|
999
|
+
|
|
1000
|
+
return PyTuple_Pack(2, PyLong_FromLong(err), PyLong_FromLong(patIndex));
|
|
1001
|
+
}
|
|
1002
|
+
|
|
1003
|
+
PyObject* method_EN_setdemandpattern(PyObject* self, PyObject* args)
|
|
1004
|
+
{
|
|
1005
|
+
uintptr_t ptr;
|
|
1006
|
+
int nodeIndex, demandIndex, patIndex;
|
|
1007
|
+
if(!PyArg_ParseTuple(args, "Kiii", &ptr, &nodeIndex, &demandIndex, &patIndex)) {
|
|
1008
|
+
return NULL;
|
|
1009
|
+
}
|
|
1010
|
+
EN_Project ph = (EN_Project) ptr;
|
|
1011
|
+
|
|
1012
|
+
int err = EN_setdemandpattern(ph, nodeIndex, demandIndex, patIndex);
|
|
1013
|
+
|
|
1014
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
1015
|
+
}
|
|
1016
|
+
|
|
1017
|
+
PyObject* method_EN_getdemandname(PyObject* self, PyObject* args)
|
|
1018
|
+
{
|
|
1019
|
+
uintptr_t ptr;
|
|
1020
|
+
int nodeIndex, demandIndex;
|
|
1021
|
+
if(!PyArg_ParseTuple(args, "Kii", &ptr, &nodeIndex, &demandIndex)) {
|
|
1022
|
+
return NULL;
|
|
1023
|
+
}
|
|
1024
|
+
EN_Project ph = (EN_Project) ptr;
|
|
1025
|
+
|
|
1026
|
+
char out_demandName[MAXID + 1];
|
|
1027
|
+
int err = EN_getdemandname(ph, nodeIndex, demandIndex, &out_demandName[0]);
|
|
1028
|
+
|
|
1029
|
+
return PyTuple_Pack(2, PyLong_FromLong(err), PyUnicode_FromString(&out_demandName[0]));
|
|
1030
|
+
}
|
|
1031
|
+
|
|
1032
|
+
PyObject* method_EN_setdemandname(PyObject* self, PyObject* args)
|
|
1033
|
+
{
|
|
1034
|
+
uintptr_t ptr;
|
|
1035
|
+
int nodeIndex, demandIndex;
|
|
1036
|
+
char* demandName = NULL;
|
|
1037
|
+
if(!PyArg_ParseTuple(args, "Kiis", &ptr, &nodeIndex, &demandIndex, &demandName)) {
|
|
1038
|
+
return NULL;
|
|
1039
|
+
}
|
|
1040
|
+
EN_Project ph = (EN_Project) ptr;
|
|
1041
|
+
|
|
1042
|
+
int err = EN_setdemandname(ph, nodeIndex, demandIndex, demandName);
|
|
1043
|
+
|
|
1044
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
1045
|
+
}
|
|
1046
|
+
|
|
1047
|
+
PyObject* method_EN_addlink(PyObject* self, PyObject* args)
|
|
1048
|
+
{
|
|
1049
|
+
uintptr_t ptr;
|
|
1050
|
+
char* id = NULL;
|
|
1051
|
+
int linkType;
|
|
1052
|
+
char* fromNode = NULL;
|
|
1053
|
+
char* toNode = NULL;
|
|
1054
|
+
if(!PyArg_ParseTuple(args, "Ksiss", &ptr, &id, &linkType, &fromNode, &toNode)) {
|
|
1055
|
+
return NULL;
|
|
1056
|
+
}
|
|
1057
|
+
EN_Project ph = (EN_Project) ptr;
|
|
1058
|
+
|
|
1059
|
+
int index;
|
|
1060
|
+
int err = EN_addlink(ph, id, linkType, fromNode, toNode, &index);
|
|
1061
|
+
|
|
1062
|
+
return PyTuple_Pack(2, PyLong_FromLong(err), PyLong_FromLong(index));
|
|
1063
|
+
}
|
|
1064
|
+
|
|
1065
|
+
PyObject* method_EN_deletelink(PyObject* self, PyObject* args)
|
|
1066
|
+
{
|
|
1067
|
+
uintptr_t ptr;
|
|
1068
|
+
int index, actionCode;
|
|
1069
|
+
if(!PyArg_ParseTuple(args, "Kii", &ptr, &index, &actionCode)) {
|
|
1070
|
+
return NULL;
|
|
1071
|
+
}
|
|
1072
|
+
EN_Project ph = (EN_Project) ptr;
|
|
1073
|
+
|
|
1074
|
+
int err = EN_deletelink(ph, index, actionCode);
|
|
1075
|
+
|
|
1076
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
1077
|
+
}
|
|
1078
|
+
|
|
1079
|
+
PyObject* method_EN_getlinkindex(PyObject* self, PyObject* args)
|
|
1080
|
+
{
|
|
1081
|
+
uintptr_t ptr;
|
|
1082
|
+
char* id = NULL;
|
|
1083
|
+
if(!PyArg_ParseTuple(args, "Ks", &ptr, &id)) {
|
|
1084
|
+
return NULL;
|
|
1085
|
+
}
|
|
1086
|
+
EN_Project ph = (EN_Project) ptr;
|
|
1087
|
+
|
|
1088
|
+
int index;
|
|
1089
|
+
int err = EN_getlinkindex(ph, id, &index);
|
|
1090
|
+
|
|
1091
|
+
return PyTuple_Pack(2, PyLong_FromLong(err), PyLong_FromLong(index));
|
|
1092
|
+
}
|
|
1093
|
+
|
|
1094
|
+
PyObject* method_EN_getlinkid(PyObject* self, PyObject* args)
|
|
1095
|
+
{
|
|
1096
|
+
uintptr_t ptr;
|
|
1097
|
+
int index;
|
|
1098
|
+
if(!PyArg_ParseTuple(args, "Ki", &ptr, &index)) {
|
|
1099
|
+
return NULL;
|
|
1100
|
+
}
|
|
1101
|
+
EN_Project ph = (EN_Project) ptr;
|
|
1102
|
+
|
|
1103
|
+
char out_id[MAXID + 1];
|
|
1104
|
+
int err = EN_getlinkid(ph, index, &out_id[0]);
|
|
1105
|
+
|
|
1106
|
+
return PyTuple_Pack(2, PyLong_FromLong(err), PyUnicode_FromString(&out_id[0]));
|
|
1107
|
+
}
|
|
1108
|
+
|
|
1109
|
+
PyObject* method_EN_setlinkid(PyObject* self, PyObject* args)
|
|
1110
|
+
{
|
|
1111
|
+
uintptr_t ptr;
|
|
1112
|
+
int index;
|
|
1113
|
+
char* newid = NULL;
|
|
1114
|
+
if(!PyArg_ParseTuple(args, "Kis", &ptr, &index, &newid)) {
|
|
1115
|
+
return NULL;
|
|
1116
|
+
}
|
|
1117
|
+
EN_Project ph = (EN_Project) ptr;
|
|
1118
|
+
|
|
1119
|
+
int err = EN_setlinkid(ph, index, newid);
|
|
1120
|
+
|
|
1121
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
1122
|
+
}
|
|
1123
|
+
|
|
1124
|
+
PyObject* method_EN_getlinktype(PyObject* self, PyObject* args)
|
|
1125
|
+
{
|
|
1126
|
+
uintptr_t ptr;
|
|
1127
|
+
int index;
|
|
1128
|
+
if(!PyArg_ParseTuple(args, "Ki", &ptr, &index)) {
|
|
1129
|
+
return NULL;
|
|
1130
|
+
}
|
|
1131
|
+
EN_Project ph = (EN_Project) ptr;
|
|
1132
|
+
|
|
1133
|
+
int linkType;
|
|
1134
|
+
int err = EN_getlinktype(ph, index, &linkType);
|
|
1135
|
+
|
|
1136
|
+
return PyTuple_Pack(2, PyLong_FromLong(err), PyLong_FromLong(linkType));
|
|
1137
|
+
}
|
|
1138
|
+
|
|
1139
|
+
PyObject* method_EN_setlinktype(PyObject* self, PyObject* args)
|
|
1140
|
+
{
|
|
1141
|
+
uintptr_t ptr;
|
|
1142
|
+
int inout_index, linkType, actionCode;
|
|
1143
|
+
if(!PyArg_ParseTuple(args, "Kiii", &ptr, &inout_index, &linkType, &actionCode)) {
|
|
1144
|
+
return NULL;
|
|
1145
|
+
}
|
|
1146
|
+
EN_Project ph = (EN_Project) ptr;
|
|
1147
|
+
|
|
1148
|
+
int err = EN_setlinktype(ph, &inout_index, linkType, actionCode);
|
|
1149
|
+
|
|
1150
|
+
return PyTuple_Pack(2, PyLong_FromLong(err), PyLong_FromLong(inout_index));
|
|
1151
|
+
}
|
|
1152
|
+
|
|
1153
|
+
PyObject* method_EN_getlinknodes(PyObject* self, PyObject* args)
|
|
1154
|
+
{
|
|
1155
|
+
uintptr_t ptr;
|
|
1156
|
+
int index;
|
|
1157
|
+
if(!PyArg_ParseTuple(args, "Ki", &ptr, &index)) {
|
|
1158
|
+
return NULL;
|
|
1159
|
+
}
|
|
1160
|
+
EN_Project ph = (EN_Project) ptr;
|
|
1161
|
+
|
|
1162
|
+
int node1, node2;
|
|
1163
|
+
int err = EN_getlinknodes(ph, index, &node1, &node2);
|
|
1164
|
+
|
|
1165
|
+
return PyTuple_Pack(3, PyLong_FromLong(err), PyLong_FromLong(node1), PyLong_FromLong(node2));
|
|
1166
|
+
}
|
|
1167
|
+
|
|
1168
|
+
PyObject* method_EN_setlinknodes(PyObject* self, PyObject* args)
|
|
1169
|
+
{
|
|
1170
|
+
uintptr_t ptr;
|
|
1171
|
+
int index, node1, node2;
|
|
1172
|
+
if(!PyArg_ParseTuple(args, "Kiii", &ptr, &index, &node1, &node2)) {
|
|
1173
|
+
return NULL;
|
|
1174
|
+
}
|
|
1175
|
+
EN_Project ph = (EN_Project) ptr;
|
|
1176
|
+
|
|
1177
|
+
int err = EN_setlinknodes(ph, index, node1, node2);
|
|
1178
|
+
|
|
1179
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
1180
|
+
}
|
|
1181
|
+
|
|
1182
|
+
PyObject* method_EN_getlinkvalue(PyObject* self, PyObject* args)
|
|
1183
|
+
{
|
|
1184
|
+
uintptr_t ptr;
|
|
1185
|
+
int index, property;
|
|
1186
|
+
if(!PyArg_ParseTuple(args, "Kii", &ptr, &index, &property)) {
|
|
1187
|
+
return NULL;
|
|
1188
|
+
}
|
|
1189
|
+
EN_Project ph = (EN_Project) ptr;
|
|
1190
|
+
|
|
1191
|
+
double value;
|
|
1192
|
+
int err = EN_getlinkvalue(ph, index, property, &value);
|
|
1193
|
+
|
|
1194
|
+
return PyTuple_Pack(2, PyLong_FromLong(err), PyFloat_FromDouble(value));
|
|
1195
|
+
}
|
|
1196
|
+
|
|
1197
|
+
PyObject* method_EN_setlinkvalue(PyObject* self, PyObject* args)
|
|
1198
|
+
{
|
|
1199
|
+
uintptr_t ptr;
|
|
1200
|
+
int index, property;
|
|
1201
|
+
double value;
|
|
1202
|
+
if(!PyArg_ParseTuple(args, "Kiid", &ptr, &index, &property, &value)) {
|
|
1203
|
+
return NULL;
|
|
1204
|
+
}
|
|
1205
|
+
EN_Project ph = (EN_Project) ptr;
|
|
1206
|
+
|
|
1207
|
+
int err = EN_setlinkvalue(ph, index, property, value);
|
|
1208
|
+
|
|
1209
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
1210
|
+
}
|
|
1211
|
+
|
|
1212
|
+
PyObject* method_EN_setpipedata(PyObject* self, PyObject* args)
|
|
1213
|
+
{
|
|
1214
|
+
uintptr_t ptr;
|
|
1215
|
+
int index;
|
|
1216
|
+
double length, diam, rough, mloss;
|
|
1217
|
+
if(!PyArg_ParseTuple(args, "Kidddd", &ptr, &index, &length, &diam, &rough, &mloss)) {
|
|
1218
|
+
return NULL;
|
|
1219
|
+
}
|
|
1220
|
+
EN_Project ph = (EN_Project) ptr;
|
|
1221
|
+
|
|
1222
|
+
int err = EN_setpipedata(ph, index, length, diam, rough, mloss);
|
|
1223
|
+
|
|
1224
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
1225
|
+
}
|
|
1226
|
+
|
|
1227
|
+
PyObject* method_EN_getvertexcount(PyObject* self, PyObject* args)
|
|
1228
|
+
{
|
|
1229
|
+
uintptr_t ptr;
|
|
1230
|
+
int index;
|
|
1231
|
+
if(!PyArg_ParseTuple(args, "Ki", &ptr, &index)) {
|
|
1232
|
+
return NULL;
|
|
1233
|
+
}
|
|
1234
|
+
EN_Project ph = (EN_Project) ptr;
|
|
1235
|
+
|
|
1236
|
+
int count;
|
|
1237
|
+
int err = EN_getvertexcount(ph, index, &count);
|
|
1238
|
+
|
|
1239
|
+
return PyTuple_Pack(2, PyLong_FromLong(err), PyLong_FromLong(count));
|
|
1240
|
+
}
|
|
1241
|
+
|
|
1242
|
+
PyObject* method_EN_getvertex(PyObject* self, PyObject* args)
|
|
1243
|
+
{
|
|
1244
|
+
uintptr_t ptr;
|
|
1245
|
+
int index, vertex;
|
|
1246
|
+
if(!PyArg_ParseTuple(args, "Kii", &ptr, &index, &vertex)) {
|
|
1247
|
+
return NULL;
|
|
1248
|
+
}
|
|
1249
|
+
EN_Project ph = (EN_Project) ptr;
|
|
1250
|
+
|
|
1251
|
+
double x, y;
|
|
1252
|
+
int err = EN_getvertex(ph, index, vertex, &x, &y);
|
|
1253
|
+
|
|
1254
|
+
return PyTuple_Pack(3, PyLong_FromLong(err), PyFloat_FromDouble(x), PyFloat_FromDouble(y));
|
|
1255
|
+
}
|
|
1256
|
+
|
|
1257
|
+
PyObject* method_EN_setvertices(PyObject* self, PyObject* args)
|
|
1258
|
+
{
|
|
1259
|
+
uintptr_t ptr;
|
|
1260
|
+
int index;
|
|
1261
|
+
double* x = NULL;
|
|
1262
|
+
double* y = NULL;
|
|
1263
|
+
int count;
|
|
1264
|
+
if(!PyArg_ParseTuple(args, "KiOOi", &ptr, &index, &x, &y, &count)) {
|
|
1265
|
+
return NULL;
|
|
1266
|
+
}
|
|
1267
|
+
EN_Project ph = (EN_Project) ptr;
|
|
1268
|
+
|
|
1269
|
+
double* xRaw = (double*) malloc(sizeof(double) * count);
|
|
1270
|
+
double* yRaw = (double*) malloc(sizeof(double) * count);
|
|
1271
|
+
|
|
1272
|
+
for(int i=0; i != count; i++) {
|
|
1273
|
+
xRaw[i] = PyFloat_AsDouble(PyList_GET_ITEM(x, i));
|
|
1274
|
+
yRaw[i] = PyFloat_AsDouble(PyList_GET_ITEM(y, i));
|
|
1275
|
+
}
|
|
1276
|
+
|
|
1277
|
+
int err = EN_setvertices(ph, index, xRaw, yRaw, count);
|
|
1278
|
+
free(xRaw);
|
|
1279
|
+
free(yRaw);
|
|
1280
|
+
|
|
1281
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
1282
|
+
}
|
|
1283
|
+
|
|
1284
|
+
PyObject* method_EN_getpumptype(PyObject* self, PyObject* args)
|
|
1285
|
+
{
|
|
1286
|
+
uintptr_t ptr;
|
|
1287
|
+
int linkIndex;
|
|
1288
|
+
if(!PyArg_ParseTuple(args, "Ki", &ptr, &linkIndex)) {
|
|
1289
|
+
return NULL;
|
|
1290
|
+
}
|
|
1291
|
+
EN_Project ph = (EN_Project) ptr;
|
|
1292
|
+
|
|
1293
|
+
int pumpType;
|
|
1294
|
+
int err = EN_getpumptype(ph, linkIndex, &pumpType);
|
|
1295
|
+
|
|
1296
|
+
return PyTuple_Pack(2, PyLong_FromLong(err), PyLong_FromLong(pumpType));
|
|
1297
|
+
}
|
|
1298
|
+
|
|
1299
|
+
PyObject* method_EN_getheadcurveindex(PyObject* self, PyObject* args)
|
|
1300
|
+
{
|
|
1301
|
+
uintptr_t ptr;
|
|
1302
|
+
int linkIndex;
|
|
1303
|
+
if(!PyArg_ParseTuple(args, "Ki", &ptr, &linkIndex)) {
|
|
1304
|
+
return NULL;
|
|
1305
|
+
}
|
|
1306
|
+
EN_Project ph = (EN_Project) ptr;
|
|
1307
|
+
|
|
1308
|
+
int curveIndex;
|
|
1309
|
+
int err = EN_getheadcurveindex(ph, linkIndex, &curveIndex);
|
|
1310
|
+
|
|
1311
|
+
return PyTuple_Pack(2, PyLong_FromLong(err), PyLong_FromLong(curveIndex));
|
|
1312
|
+
}
|
|
1313
|
+
|
|
1314
|
+
PyObject* method_EN_setheadcurveindex(PyObject* self, PyObject* args)
|
|
1315
|
+
{
|
|
1316
|
+
uintptr_t ptr;
|
|
1317
|
+
int linkIndex, curveIndex;
|
|
1318
|
+
if(!PyArg_ParseTuple(args, "Ki", &ptr, &linkIndex, &curveIndex)) {
|
|
1319
|
+
return NULL;
|
|
1320
|
+
}
|
|
1321
|
+
EN_Project ph = (EN_Project) ptr;
|
|
1322
|
+
|
|
1323
|
+
int err = EN_setheadcurveindex(ph, linkIndex, curveIndex);
|
|
1324
|
+
|
|
1325
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
1326
|
+
}
|
|
1327
|
+
|
|
1328
|
+
PyObject* method_EN_addpattern(PyObject* self, PyObject* args)
|
|
1329
|
+
{
|
|
1330
|
+
uintptr_t ptr;
|
|
1331
|
+
char* id = NULL;
|
|
1332
|
+
if(!PyArg_ParseTuple(args, "Ks", &ptr, &id)) {
|
|
1333
|
+
return NULL;
|
|
1334
|
+
}
|
|
1335
|
+
EN_Project ph = (EN_Project) ptr;
|
|
1336
|
+
|
|
1337
|
+
int err = EN_addpattern(ph, id);
|
|
1338
|
+
|
|
1339
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
1340
|
+
}
|
|
1341
|
+
|
|
1342
|
+
PyObject* method_EN_deletepattern(PyObject* self, PyObject* args)
|
|
1343
|
+
{
|
|
1344
|
+
uintptr_t ptr;
|
|
1345
|
+
int index;
|
|
1346
|
+
if(!PyArg_ParseTuple(args, "Ki", &ptr, &index)) {
|
|
1347
|
+
return NULL;
|
|
1348
|
+
}
|
|
1349
|
+
EN_Project ph = (EN_Project) ptr;
|
|
1350
|
+
|
|
1351
|
+
int err = EN_deletepattern(ph, index);
|
|
1352
|
+
|
|
1353
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
1354
|
+
}
|
|
1355
|
+
|
|
1356
|
+
PyObject* method_EN_getpatternindex(PyObject* self, PyObject* args)
|
|
1357
|
+
{
|
|
1358
|
+
uintptr_t ptr;
|
|
1359
|
+
char* id = NULL;
|
|
1360
|
+
if(!PyArg_ParseTuple(args, "Ks", &ptr, &id)) {
|
|
1361
|
+
return NULL;
|
|
1362
|
+
}
|
|
1363
|
+
EN_Project ph = (EN_Project) ptr;
|
|
1364
|
+
|
|
1365
|
+
int index;
|
|
1366
|
+
int err = EN_getpatternindex(ph, id, &index);
|
|
1367
|
+
|
|
1368
|
+
return PyTuple_Pack(2, PyLong_FromLong(err), PyLong_FromLong(index));
|
|
1369
|
+
}
|
|
1370
|
+
|
|
1371
|
+
PyObject* method_EN_getpatternid(PyObject* self, PyObject* args)
|
|
1372
|
+
{
|
|
1373
|
+
uintptr_t ptr;
|
|
1374
|
+
int index;
|
|
1375
|
+
if(!PyArg_ParseTuple(args, "Ki", &ptr, &index)) {
|
|
1376
|
+
return NULL;
|
|
1377
|
+
}
|
|
1378
|
+
EN_Project ph = (EN_Project) ptr;
|
|
1379
|
+
|
|
1380
|
+
char out_id[MAXID + 1];
|
|
1381
|
+
int err = EN_getpatternid(ph, index, &out_id[0]);
|
|
1382
|
+
|
|
1383
|
+
return PyTuple_Pack(2, PyLong_FromLong(err), PyUnicode_FromString(&out_id[0]));
|
|
1384
|
+
}
|
|
1385
|
+
|
|
1386
|
+
PyObject* method_EN_setpatternid(PyObject* self, PyObject* args)
|
|
1387
|
+
{
|
|
1388
|
+
uintptr_t ptr;
|
|
1389
|
+
int index;
|
|
1390
|
+
char* id = NULL;
|
|
1391
|
+
if(!PyArg_ParseTuple(args, "Kis", &ptr, &index, &id)) {
|
|
1392
|
+
return NULL;
|
|
1393
|
+
}
|
|
1394
|
+
EN_Project ph = (EN_Project) ptr;
|
|
1395
|
+
|
|
1396
|
+
int err = EN_setpatternid(ph, index, id);
|
|
1397
|
+
|
|
1398
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
1399
|
+
}
|
|
1400
|
+
|
|
1401
|
+
PyObject* method_EN_getpatternlen(PyObject* self, PyObject* args)
|
|
1402
|
+
{
|
|
1403
|
+
uintptr_t ptr;
|
|
1404
|
+
int index;
|
|
1405
|
+
if(!PyArg_ParseTuple(args, "Ki", &ptr, &index)) {
|
|
1406
|
+
return NULL;
|
|
1407
|
+
}
|
|
1408
|
+
EN_Project ph = (EN_Project) ptr;
|
|
1409
|
+
|
|
1410
|
+
int len;
|
|
1411
|
+
int err = EN_getpatternlen(ph, index, &len);
|
|
1412
|
+
|
|
1413
|
+
return PyTuple_Pack(2, PyLong_FromLong(err), PyLong_FromLong(len));
|
|
1414
|
+
}
|
|
1415
|
+
|
|
1416
|
+
PyObject* method_EN_getpatternvalue(PyObject* self, PyObject* args)
|
|
1417
|
+
{
|
|
1418
|
+
uintptr_t ptr;
|
|
1419
|
+
int index, period;
|
|
1420
|
+
if(!PyArg_ParseTuple(args, "Kii", &ptr, &index, &period)) {
|
|
1421
|
+
return NULL;
|
|
1422
|
+
}
|
|
1423
|
+
EN_Project ph = (EN_Project) ptr;
|
|
1424
|
+
|
|
1425
|
+
double value;
|
|
1426
|
+
int err = EN_getpatternvalue(ph, index, period, &value);
|
|
1427
|
+
|
|
1428
|
+
return PyTuple_Pack(2, PyLong_FromLong(err), PyFloat_FromDouble(value));
|
|
1429
|
+
}
|
|
1430
|
+
|
|
1431
|
+
PyObject* method_EN_setpatternvalue(PyObject* self, PyObject* args)
|
|
1432
|
+
{
|
|
1433
|
+
uintptr_t ptr;
|
|
1434
|
+
int index, period;
|
|
1435
|
+
double value;
|
|
1436
|
+
if(!PyArg_ParseTuple(args, "Kiid", &ptr, &index, &period, &value)) {
|
|
1437
|
+
return NULL;
|
|
1438
|
+
}
|
|
1439
|
+
EN_Project ph = (EN_Project) ptr;
|
|
1440
|
+
|
|
1441
|
+
int err = EN_setpatternvalue(ph, index, period, value);
|
|
1442
|
+
|
|
1443
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
1444
|
+
}
|
|
1445
|
+
|
|
1446
|
+
PyObject* method_EN_getaveragepatternvalue(PyObject* self, PyObject* args)
|
|
1447
|
+
{
|
|
1448
|
+
uintptr_t ptr;
|
|
1449
|
+
int index;
|
|
1450
|
+
if(!PyArg_ParseTuple(args, "Ki", &ptr, &index)) {
|
|
1451
|
+
return NULL;
|
|
1452
|
+
}
|
|
1453
|
+
EN_Project ph = (EN_Project) ptr;
|
|
1454
|
+
|
|
1455
|
+
double value;
|
|
1456
|
+
int err = EN_getaveragepatternvalue(ph, index, &value);
|
|
1457
|
+
|
|
1458
|
+
return PyTuple_Pack(2, PyLong_FromLong(err), PyFloat_FromDouble(value));
|
|
1459
|
+
}
|
|
1460
|
+
|
|
1461
|
+
PyObject* method_EN_setpattern(PyObject* self, PyObject* args)
|
|
1462
|
+
{
|
|
1463
|
+
uintptr_t ptr;
|
|
1464
|
+
int index;
|
|
1465
|
+
PyObject* values = NULL;
|
|
1466
|
+
int len;
|
|
1467
|
+
if(!PyArg_ParseTuple(args, "KiOi", &ptr, &index, &values, &len)) {
|
|
1468
|
+
return NULL;
|
|
1469
|
+
}
|
|
1470
|
+
EN_Project ph = (EN_Project) ptr;
|
|
1471
|
+
|
|
1472
|
+
int numValues = PyList_Size(values);
|
|
1473
|
+
double* valuesRaw = (double*) malloc(sizeof(double) * numValues);
|
|
1474
|
+
for(int i=0; i != numValues; i++) {
|
|
1475
|
+
valuesRaw[i] = PyFloat_AsDouble(PyList_GET_ITEM(values, i));
|
|
1476
|
+
}
|
|
1477
|
+
|
|
1478
|
+
int err = EN_setpattern(ph, index, valuesRaw, len);
|
|
1479
|
+
free(valuesRaw);
|
|
1480
|
+
|
|
1481
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
1482
|
+
}
|
|
1483
|
+
|
|
1484
|
+
PyObject* method_EN_addcurve(PyObject* self, PyObject* args)
|
|
1485
|
+
{
|
|
1486
|
+
uintptr_t ptr;
|
|
1487
|
+
char* id = NULL;
|
|
1488
|
+
if(!PyArg_ParseTuple(args, "Ks", &ptr, &id)) {
|
|
1489
|
+
return NULL;
|
|
1490
|
+
}
|
|
1491
|
+
EN_Project ph = (EN_Project) ptr;
|
|
1492
|
+
|
|
1493
|
+
int err = EN_addcurve(ph, id);
|
|
1494
|
+
|
|
1495
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
1496
|
+
}
|
|
1497
|
+
|
|
1498
|
+
PyObject* method_EN_deletecurve(PyObject* self, PyObject* args)
|
|
1499
|
+
{
|
|
1500
|
+
uintptr_t ptr;
|
|
1501
|
+
int index;
|
|
1502
|
+
if(!PyArg_ParseTuple(args, "Ki", &ptr, &index)) {
|
|
1503
|
+
return NULL;
|
|
1504
|
+
}
|
|
1505
|
+
EN_Project ph = (EN_Project) ptr;
|
|
1506
|
+
|
|
1507
|
+
int err = EN_deletecurve(ph, index);
|
|
1508
|
+
|
|
1509
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
1510
|
+
}
|
|
1511
|
+
|
|
1512
|
+
PyObject* method_EN_getcurveindex(PyObject* self, PyObject* args)
|
|
1513
|
+
{
|
|
1514
|
+
uintptr_t ptr;
|
|
1515
|
+
char* id = NULL;
|
|
1516
|
+
if(!PyArg_ParseTuple(args, "Ki", &ptr, &id)) {
|
|
1517
|
+
return NULL;
|
|
1518
|
+
}
|
|
1519
|
+
EN_Project ph = (EN_Project) ptr;
|
|
1520
|
+
|
|
1521
|
+
int index;
|
|
1522
|
+
int err = EN_getcurveindex(ph, id, &index);
|
|
1523
|
+
|
|
1524
|
+
return PyTuple_Pack(2, PyLong_FromLong(err), PyLong_FromLong(index));
|
|
1525
|
+
}
|
|
1526
|
+
|
|
1527
|
+
PyObject* method_EN_getcurveid(PyObject* self, PyObject* args)
|
|
1528
|
+
{
|
|
1529
|
+
uintptr_t ptr;
|
|
1530
|
+
int index;
|
|
1531
|
+
if(!PyArg_ParseTuple(args, "Ki", &ptr, &index)) {
|
|
1532
|
+
return NULL;
|
|
1533
|
+
}
|
|
1534
|
+
EN_Project ph = (EN_Project) ptr;
|
|
1535
|
+
|
|
1536
|
+
char out_id[MAXID + 1];
|
|
1537
|
+
int err = EN_getcurveid(ph, index, &out_id[0]);
|
|
1538
|
+
|
|
1539
|
+
return PyTuple_Pack(2, PyLong_FromLong(err), PyUnicode_FromString(&out_id[0]));
|
|
1540
|
+
}
|
|
1541
|
+
|
|
1542
|
+
PyObject* method_EN_setcurveid(PyObject* self, PyObject* args)
|
|
1543
|
+
{
|
|
1544
|
+
uintptr_t ptr;
|
|
1545
|
+
int index;
|
|
1546
|
+
char* id = NULL;
|
|
1547
|
+
if(!PyArg_ParseTuple(args, "Kis", &ptr, &index, &id)) {
|
|
1548
|
+
return NULL;
|
|
1549
|
+
}
|
|
1550
|
+
EN_Project ph = (EN_Project) ptr;
|
|
1551
|
+
|
|
1552
|
+
int err = EN_setcurveid(ph, index, id);
|
|
1553
|
+
|
|
1554
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
1555
|
+
}
|
|
1556
|
+
|
|
1557
|
+
PyObject* method_EN_getcurvelen(PyObject* self, PyObject* args)
|
|
1558
|
+
{
|
|
1559
|
+
uintptr_t ptr;
|
|
1560
|
+
int index;
|
|
1561
|
+
if(!PyArg_ParseTuple(args, "Ki", &ptr, &index)) {
|
|
1562
|
+
return NULL;
|
|
1563
|
+
}
|
|
1564
|
+
EN_Project ph = (EN_Project) ptr;
|
|
1565
|
+
|
|
1566
|
+
int len;
|
|
1567
|
+
int err = EN_getcurvelen(ph, index, &len);
|
|
1568
|
+
|
|
1569
|
+
return PyTuple_Pack(2, PyLong_FromLong(err), PyLong_FromLong(len));
|
|
1570
|
+
}
|
|
1571
|
+
|
|
1572
|
+
PyObject* method_EN_getcurvetype(PyObject* self, PyObject* args)
|
|
1573
|
+
{
|
|
1574
|
+
uintptr_t ptr;
|
|
1575
|
+
int index;
|
|
1576
|
+
if(!PyArg_ParseTuple(args, "Ki", &ptr, &index)) {
|
|
1577
|
+
return NULL;
|
|
1578
|
+
}
|
|
1579
|
+
EN_Project ph = (EN_Project) ptr;
|
|
1580
|
+
|
|
1581
|
+
int type;
|
|
1582
|
+
int err = EN_getcurvetype(ph, index, &type);
|
|
1583
|
+
|
|
1584
|
+
return PyTuple_Pack(2, PyLong_FromLong(err), PyLong_FromLong(type));
|
|
1585
|
+
}
|
|
1586
|
+
|
|
1587
|
+
PyObject* method_EN_getcurvevalue(PyObject* self, PyObject* args)
|
|
1588
|
+
{
|
|
1589
|
+
uintptr_t ptr;
|
|
1590
|
+
int curveIndex, pointIndex;
|
|
1591
|
+
if(!PyArg_ParseTuple(args, "Kii", &ptr, &curveIndex, &pointIndex)) {
|
|
1592
|
+
return NULL;
|
|
1593
|
+
}
|
|
1594
|
+
EN_Project ph = (EN_Project) ptr;
|
|
1595
|
+
|
|
1596
|
+
double x, y;
|
|
1597
|
+
int err = EN_getcurvevalue(ph, curveIndex, pointIndex, &x, &y);
|
|
1598
|
+
|
|
1599
|
+
return PyTuple_Pack(3, PyLong_FromLong(err), PyFloat_FromDouble(x), PyFloat_FromDouble(y));
|
|
1600
|
+
}
|
|
1601
|
+
|
|
1602
|
+
PyObject* method_EN_setcurvevalue(PyObject* self, PyObject* args)
|
|
1603
|
+
{
|
|
1604
|
+
uintptr_t ptr;
|
|
1605
|
+
int curveIndex, pointIndex;
|
|
1606
|
+
double x, y;
|
|
1607
|
+
if(!PyArg_ParseTuple(args, "Kiidd", &ptr, &curveIndex, &pointIndex, &x, &y)) {
|
|
1608
|
+
return NULL;
|
|
1609
|
+
}
|
|
1610
|
+
EN_Project ph = (EN_Project) ptr;
|
|
1611
|
+
|
|
1612
|
+
int err = EN_setcurvevalue(ph, curveIndex, pointIndex, x, y);
|
|
1613
|
+
|
|
1614
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
1615
|
+
}
|
|
1616
|
+
|
|
1617
|
+
PyObject* method_EN_getcurve(PyObject* self, PyObject* args)
|
|
1618
|
+
{
|
|
1619
|
+
uintptr_t ptr;
|
|
1620
|
+
int index;
|
|
1621
|
+
if(!PyArg_ParseTuple(args, "Ki", &ptr, &index)) {
|
|
1622
|
+
return NULL;
|
|
1623
|
+
}
|
|
1624
|
+
EN_Project ph = (EN_Project) ptr;
|
|
1625
|
+
|
|
1626
|
+
int len;
|
|
1627
|
+
int err = EN_getcurvelen(ph, index, &len);
|
|
1628
|
+
if(err != 0) {
|
|
1629
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
1630
|
+
}
|
|
1631
|
+
|
|
1632
|
+
char out_id[MAXID + 1];
|
|
1633
|
+
int nPoints;
|
|
1634
|
+
double* xValues = (double*) PyMem_Calloc(len, sizeof(double));
|
|
1635
|
+
double* yValues = (double*) PyMem_Calloc(len, sizeof(double));
|
|
1636
|
+
err = EN_getcurve(ph, index, &out_id[0], &nPoints, xValues, yValues);
|
|
1637
|
+
|
|
1638
|
+
PyObject* xValuesList = PyList_New(nPoints);
|
|
1639
|
+
PyObject* yValuesList = PyList_New(nPoints);
|
|
1640
|
+
|
|
1641
|
+
for(int i=0; i != nPoints; i++) {
|
|
1642
|
+
PyList_SetItem(xValuesList, i, PyFloat_FromDouble(xValues[i]));
|
|
1643
|
+
PyList_SetItem(yValuesList, i, PyFloat_FromDouble(yValues[i]));
|
|
1644
|
+
}
|
|
1645
|
+
|
|
1646
|
+
PyMem_Free(xValues);
|
|
1647
|
+
PyMem_Free(yValues);
|
|
1648
|
+
|
|
1649
|
+
return PyTuple_Pack(3, PyLong_FromLong(err), xValuesList, yValuesList);
|
|
1650
|
+
}
|
|
1651
|
+
|
|
1652
|
+
PyObject* method_EN_setcurve(PyObject* self, PyObject* args)
|
|
1653
|
+
{
|
|
1654
|
+
uintptr_t ptr;
|
|
1655
|
+
int index, nPoints;
|
|
1656
|
+
PyObject* xValues = NULL;
|
|
1657
|
+
PyObject* yValues = NULL;
|
|
1658
|
+
if(!PyArg_ParseTuple(args, "KiOOi", &ptr, &index, &xValues, &yValues, &nPoints)) {
|
|
1659
|
+
return NULL;
|
|
1660
|
+
}
|
|
1661
|
+
EN_Project ph = (EN_Project) ptr;
|
|
1662
|
+
|
|
1663
|
+
double* xValuesRaw = (double*) malloc(sizeof(double) * nPoints);
|
|
1664
|
+
double* yValuesRaw = (double*) malloc(sizeof(double) * nPoints);
|
|
1665
|
+
|
|
1666
|
+
for(int i=0; i != nPoints; i++) {
|
|
1667
|
+
xValuesRaw[i] = PyFloat_AsDouble(PyList_GET_ITEM(xValues, i));
|
|
1668
|
+
yValuesRaw[i] = PyFloat_AsDouble(PyList_GET_ITEM(yValues, i));
|
|
1669
|
+
}
|
|
1670
|
+
|
|
1671
|
+
int err = EN_setcurve(ph, index, xValuesRaw, yValuesRaw, nPoints);
|
|
1672
|
+
free(xValuesRaw);
|
|
1673
|
+
free(yValuesRaw);
|
|
1674
|
+
|
|
1675
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
1676
|
+
}
|
|
1677
|
+
|
|
1678
|
+
PyObject* method_EN_addcontrol(PyObject* self, PyObject* args)
|
|
1679
|
+
{
|
|
1680
|
+
uintptr_t ptr;
|
|
1681
|
+
int type, linkIndex, nodeIndex;
|
|
1682
|
+
double setting, level;
|
|
1683
|
+
if(!PyArg_ParseTuple(args, "Kiidid", &ptr, &type, &linkIndex, &setting, &nodeIndex, &level)) {
|
|
1684
|
+
return NULL;
|
|
1685
|
+
}
|
|
1686
|
+
EN_Project ph = (EN_Project) ptr;
|
|
1687
|
+
|
|
1688
|
+
int index;
|
|
1689
|
+
int err = EN_addcontrol(ph, type, linkIndex, setting, nodeIndex, level, &index);
|
|
1690
|
+
|
|
1691
|
+
return PyTuple_Pack(2, PyLong_FromLong(err), PyLong_FromLong(index));
|
|
1692
|
+
}
|
|
1693
|
+
|
|
1694
|
+
PyObject* method_EN_deletecontrol(PyObject* self, PyObject* args)
|
|
1695
|
+
{
|
|
1696
|
+
uintptr_t ptr;
|
|
1697
|
+
int index;
|
|
1698
|
+
if(!PyArg_ParseTuple(args, "Ki", &ptr, &index)) {
|
|
1699
|
+
return NULL;
|
|
1700
|
+
}
|
|
1701
|
+
EN_Project ph = (EN_Project) ptr;
|
|
1702
|
+
|
|
1703
|
+
int err = EN_deletecontrol(ph, index);
|
|
1704
|
+
|
|
1705
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
1706
|
+
}
|
|
1707
|
+
|
|
1708
|
+
PyObject* method_EN_getcontrol(PyObject* self, PyObject* args)
|
|
1709
|
+
{
|
|
1710
|
+
uintptr_t ptr;
|
|
1711
|
+
int index;
|
|
1712
|
+
if(!PyArg_ParseTuple(args, "Ki", &ptr, &index)) {
|
|
1713
|
+
return NULL;
|
|
1714
|
+
}
|
|
1715
|
+
EN_Project ph = (EN_Project) ptr;
|
|
1716
|
+
|
|
1717
|
+
int type, linkIndex, nodeIndex;
|
|
1718
|
+
double setting, level;
|
|
1719
|
+
int err = EN_getcontrol(ph, index, &type, &linkIndex, &setting, &nodeIndex, &level);
|
|
1720
|
+
|
|
1721
|
+
return PyTuple_Pack(6, PyLong_FromLong(err), PyLong_FromLong(type), PyLong_FromLong(linkIndex), PyFloat_FromDouble(setting), PyLong_FromLong(nodeIndex), PyFloat_FromDouble(level));
|
|
1722
|
+
}
|
|
1723
|
+
|
|
1724
|
+
PyObject* method_EN_setcontrol(PyObject* self, PyObject* args)
|
|
1725
|
+
{
|
|
1726
|
+
uintptr_t ptr;
|
|
1727
|
+
int index, type, linkIndex, nodeIndex;
|
|
1728
|
+
double setting, level;
|
|
1729
|
+
if(!PyArg_ParseTuple(args, "Kiiidid", &ptr, &index, &type, &linkIndex, &setting, &nodeIndex, &level)) {
|
|
1730
|
+
return NULL;
|
|
1731
|
+
}
|
|
1732
|
+
EN_Project ph = (EN_Project) ptr;
|
|
1733
|
+
|
|
1734
|
+
int err = EN_setcontrol(ph, index, type, linkIndex, setting, nodeIndex, level);
|
|
1735
|
+
|
|
1736
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
1737
|
+
}
|
|
1738
|
+
|
|
1739
|
+
PyObject* method_EN_addrule(PyObject* self, PyObject* args)
|
|
1740
|
+
{
|
|
1741
|
+
uintptr_t ptr;
|
|
1742
|
+
char* rule = NULL;
|
|
1743
|
+
if(!PyArg_ParseTuple(args, "Ks", &ptr, &rule)) {
|
|
1744
|
+
return NULL;
|
|
1745
|
+
}
|
|
1746
|
+
EN_Project ph = (EN_Project) ptr;
|
|
1747
|
+
|
|
1748
|
+
int err = EN_addrule(ph, rule);
|
|
1749
|
+
|
|
1750
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
1751
|
+
}
|
|
1752
|
+
|
|
1753
|
+
PyObject* method_EN_deleterule(PyObject* self, PyObject* args)
|
|
1754
|
+
{
|
|
1755
|
+
uintptr_t ptr;
|
|
1756
|
+
int index;
|
|
1757
|
+
if(!PyArg_ParseTuple(args, "Ki", &ptr, &index)) {
|
|
1758
|
+
return NULL;
|
|
1759
|
+
}
|
|
1760
|
+
EN_Project ph = (EN_Project) ptr;
|
|
1761
|
+
|
|
1762
|
+
int err = EN_deleterule(ph, index);
|
|
1763
|
+
|
|
1764
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
1765
|
+
}
|
|
1766
|
+
|
|
1767
|
+
PyObject* method_EN_getrule(PyObject* self, PyObject* args)
|
|
1768
|
+
{
|
|
1769
|
+
uintptr_t ptr;
|
|
1770
|
+
int index;
|
|
1771
|
+
if(!PyArg_ParseTuple(args, "Ki", &ptr, &index)) {
|
|
1772
|
+
return NULL;
|
|
1773
|
+
}
|
|
1774
|
+
EN_Project ph = (EN_Project) ptr;
|
|
1775
|
+
|
|
1776
|
+
int nPremises, nThenActions, nElseActions;
|
|
1777
|
+
double priority;
|
|
1778
|
+
int err = EN_getrule(ph, index, &nPremises, &nThenActions, &nElseActions, &priority);
|
|
1779
|
+
|
|
1780
|
+
return PyTuple_Pack(5, PyLong_FromLong(err), PyLong_FromLong(nPremises), PyLong_FromLong(nThenActions), PyLong_FromLong(nElseActions), PyFloat_FromDouble(priority));
|
|
1781
|
+
}
|
|
1782
|
+
|
|
1783
|
+
PyObject* method_EN_getruleID(PyObject* self, PyObject* args)
|
|
1784
|
+
{
|
|
1785
|
+
uintptr_t ptr;
|
|
1786
|
+
int index;
|
|
1787
|
+
if(!PyArg_ParseTuple(args, "Ki", &ptr, &index)) {
|
|
1788
|
+
return NULL;
|
|
1789
|
+
}
|
|
1790
|
+
EN_Project ph = (EN_Project) ptr;
|
|
1791
|
+
|
|
1792
|
+
char out_id[MAXID + 1];
|
|
1793
|
+
int err = EN_getruleID(ph, index, &out_id[0]);
|
|
1794
|
+
|
|
1795
|
+
return PyTuple_Pack(2, PyLong_FromLong(err), PyUnicode_FromString(&out_id[0]));
|
|
1796
|
+
}
|
|
1797
|
+
|
|
1798
|
+
PyObject* method_EN_getpremise(PyObject* self, PyObject* args)
|
|
1799
|
+
{
|
|
1800
|
+
uintptr_t ptr;
|
|
1801
|
+
int ruleIndex, premiseIndex;
|
|
1802
|
+
if(!PyArg_ParseTuple(args, "Kii", &ptr, &ruleIndex, &premiseIndex)) {
|
|
1803
|
+
return NULL;
|
|
1804
|
+
}
|
|
1805
|
+
EN_Project ph = (EN_Project) ptr;
|
|
1806
|
+
|
|
1807
|
+
int logop, object, objIndex, variable, relop, status;
|
|
1808
|
+
double value;
|
|
1809
|
+
int err = EN_getpremise(ph, ruleIndex, premiseIndex, &logop, &object, &objIndex, &variable, &relop, &status, &value);
|
|
1810
|
+
|
|
1811
|
+
return PyTuple_Pack(8, PyLong_FromLong(err), PyLong_FromLong(logop), PyLong_FromLong(object), PyLong_FromLong(objIndex), PyLong_FromLong(variable), PyLong_FromLong(relop), PyLong_FromLong(status), PyFloat_FromDouble(value));
|
|
1812
|
+
}
|
|
1813
|
+
|
|
1814
|
+
PyObject* method_EN_setpremise(PyObject* self, PyObject* args)
|
|
1815
|
+
{
|
|
1816
|
+
uintptr_t ptr;
|
|
1817
|
+
int ruleIndex, premiseIndex, logop, object, objIndex, variable, relop, status;
|
|
1818
|
+
double value;
|
|
1819
|
+
if(!PyArg_ParseTuple(args, "Kiiiiiiiid", &ptr, &ruleIndex, &premiseIndex, &logop, &object, &objIndex, &variable, &relop, &status, &value)) {
|
|
1820
|
+
return NULL;
|
|
1821
|
+
}
|
|
1822
|
+
EN_Project ph = (EN_Project) ptr;
|
|
1823
|
+
|
|
1824
|
+
int err = EN_setpremise(ph, ruleIndex, premiseIndex, logop, object, objIndex, variable, relop, status, value);
|
|
1825
|
+
|
|
1826
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
1827
|
+
}
|
|
1828
|
+
|
|
1829
|
+
PyObject* method_EN_setpremiseindex(PyObject* self, PyObject* args)
|
|
1830
|
+
{
|
|
1831
|
+
uintptr_t ptr;
|
|
1832
|
+
int ruleIndex, premiseIndex, objIndex;
|
|
1833
|
+
if(!PyArg_ParseTuple(args, "Kiii", &ptr, &ruleIndex, &premiseIndex, &objIndex)) {
|
|
1834
|
+
return NULL;
|
|
1835
|
+
}
|
|
1836
|
+
EN_Project ph = (EN_Project) ptr;
|
|
1837
|
+
|
|
1838
|
+
int err = EN_setpremiseindex(ph, ruleIndex, premiseIndex, objIndex);
|
|
1839
|
+
|
|
1840
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
1841
|
+
}
|
|
1842
|
+
|
|
1843
|
+
PyObject* method_EN_setpremisestatus(PyObject* self, PyObject* args)
|
|
1844
|
+
{
|
|
1845
|
+
uintptr_t ptr;
|
|
1846
|
+
int ruleIndex, premiseIndex, status;
|
|
1847
|
+
if(!PyArg_ParseTuple(args, "Kiii", &ptr, &ruleIndex, &premiseIndex, &status)) {
|
|
1848
|
+
return NULL;
|
|
1849
|
+
}
|
|
1850
|
+
EN_Project ph = (EN_Project) ptr;
|
|
1851
|
+
|
|
1852
|
+
int err = EN_setpremisestatus(ph, ruleIndex, premiseIndex, status);
|
|
1853
|
+
|
|
1854
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
1855
|
+
}
|
|
1856
|
+
|
|
1857
|
+
PyObject* method_EN_setpremisevalue(PyObject* self, PyObject* args)
|
|
1858
|
+
{
|
|
1859
|
+
uintptr_t ptr;
|
|
1860
|
+
int ruleIndex, premiseIndex;
|
|
1861
|
+
double value;
|
|
1862
|
+
if(!PyArg_ParseTuple(args, "Kii", &ptr, &ruleIndex, &premiseIndex, &value)) {
|
|
1863
|
+
return NULL;
|
|
1864
|
+
}
|
|
1865
|
+
EN_Project ph = (EN_Project) ptr;
|
|
1866
|
+
|
|
1867
|
+
int err = EN_setpremisevalue(ph, ruleIndex, premiseIndex, value);
|
|
1868
|
+
|
|
1869
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
1870
|
+
}
|
|
1871
|
+
|
|
1872
|
+
PyObject* method_EN_getthenaction(PyObject* self, PyObject* args)
|
|
1873
|
+
{
|
|
1874
|
+
uintptr_t ptr;
|
|
1875
|
+
int ruleIndex, actionIndex;
|
|
1876
|
+
if(!PyArg_ParseTuple(args, "Kii", &ptr, &ruleIndex, &actionIndex)) {
|
|
1877
|
+
return NULL;
|
|
1878
|
+
}
|
|
1879
|
+
EN_Project ph = (EN_Project) ptr;
|
|
1880
|
+
|
|
1881
|
+
int linkIndex, status;
|
|
1882
|
+
double setting;
|
|
1883
|
+
int err = EN_getthenaction(ph, ruleIndex, actionIndex, &linkIndex, &status, &setting);
|
|
1884
|
+
|
|
1885
|
+
return PyTuple_Pack(4, PyLong_FromLong(err), PyLong_FromLong(linkIndex), PyLong_FromLong(status), PyFloat_FromDouble(setting));
|
|
1886
|
+
}
|
|
1887
|
+
|
|
1888
|
+
PyObject* method_EN_setthenaction(PyObject* self, PyObject* args)
|
|
1889
|
+
{
|
|
1890
|
+
uintptr_t ptr;
|
|
1891
|
+
int ruleIndex, actionIndex, linkIndex, status;
|
|
1892
|
+
double setting;
|
|
1893
|
+
if(!PyArg_ParseTuple(args, "Kiiiid", &ptr, &ruleIndex, &actionIndex, &linkIndex, &status, &setting)) {
|
|
1894
|
+
return NULL;
|
|
1895
|
+
}
|
|
1896
|
+
EN_Project ph = (EN_Project) ptr;
|
|
1897
|
+
|
|
1898
|
+
int err = EN_setthenaction(ph, ruleIndex, actionIndex, linkIndex, status, setting);
|
|
1899
|
+
|
|
1900
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
1901
|
+
}
|
|
1902
|
+
|
|
1903
|
+
PyObject* method_EN_getelseaction(PyObject* self, PyObject* args)
|
|
1904
|
+
{
|
|
1905
|
+
uintptr_t ptr;
|
|
1906
|
+
int ruleIndex, actionIndex;
|
|
1907
|
+
if(!PyArg_ParseTuple(args, "Kii", &ptr, &ruleIndex, &actionIndex)) {
|
|
1908
|
+
return NULL;
|
|
1909
|
+
}
|
|
1910
|
+
EN_Project ph = (EN_Project) ptr;
|
|
1911
|
+
|
|
1912
|
+
int linkIndex, status;
|
|
1913
|
+
double setting;
|
|
1914
|
+
int err = EN_getelseaction(ph, ruleIndex, actionIndex, &linkIndex, &status, &setting);
|
|
1915
|
+
|
|
1916
|
+
return PyTuple_Pack(4, PyLong_FromLong(err), PyLong_FromLong(linkIndex), PyLong_FromLong(status), PyFloat_FromDouble(setting));
|
|
1917
|
+
}
|
|
1918
|
+
|
|
1919
|
+
PyObject* method_EN_setelseaction(PyObject* self, PyObject* args)
|
|
1920
|
+
{
|
|
1921
|
+
uintptr_t ptr;
|
|
1922
|
+
int ruleIndex, actionIndex, linkIndex, status;
|
|
1923
|
+
double setting;
|
|
1924
|
+
if(!PyArg_ParseTuple(args, "Kiiiid", &ptr, &ruleIndex, &actionIndex, &linkIndex, &status, &setting)) {
|
|
1925
|
+
return NULL;
|
|
1926
|
+
}
|
|
1927
|
+
EN_Project ph = (EN_Project) ptr;
|
|
1928
|
+
|
|
1929
|
+
int err = EN_setelseaction(ph, ruleIndex, actionIndex, linkIndex, status, setting);
|
|
1930
|
+
|
|
1931
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
1932
|
+
}
|
|
1933
|
+
|
|
1934
|
+
PyObject* method_EN_setrulepriority(PyObject* self, PyObject* args)
|
|
1935
|
+
{
|
|
1936
|
+
uintptr_t ptr;
|
|
1937
|
+
int index;
|
|
1938
|
+
double priority;
|
|
1939
|
+
if(!PyArg_ParseTuple(args, "Kid", &ptr, &index, &priority)) {
|
|
1940
|
+
return NULL;
|
|
1941
|
+
}
|
|
1942
|
+
EN_Project ph = (EN_Project) ptr;
|
|
1943
|
+
|
|
1944
|
+
int err = EN_setrulepriority(ph, index, priority);
|
|
1945
|
+
|
|
1946
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
1947
|
+
}
|
|
1948
|
+
|
|
1949
|
+
PyObject* method_EN_gettag(PyObject* self, PyObject* args)
|
|
1950
|
+
{
|
|
1951
|
+
uintptr_t ptr;
|
|
1952
|
+
int object, index;
|
|
1953
|
+
if(!PyArg_ParseTuple(args, "Kii", &ptr, &object, &index)) {
|
|
1954
|
+
return NULL;
|
|
1955
|
+
}
|
|
1956
|
+
EN_Project ph = (EN_Project) ptr;
|
|
1957
|
+
|
|
1958
|
+
char tag[MAXID + 1];
|
|
1959
|
+
int err = EN_gettag(ph, object, index, &tag[0]);
|
|
1960
|
+
|
|
1961
|
+
return PyTuple_Pack(2, PyLong_FromLong(err), PyUnicode_FromString(&tag[0]));
|
|
1962
|
+
}
|
|
1963
|
+
|
|
1964
|
+
PyObject* method_EN_settag(PyObject* self, PyObject* args)
|
|
1965
|
+
{
|
|
1966
|
+
uintptr_t ptr;
|
|
1967
|
+
int object, index;
|
|
1968
|
+
char* tag = NULL;
|
|
1969
|
+
if(!PyArg_ParseTuple(args, "Kiis", &ptr, &object, &index, &tag)) {
|
|
1970
|
+
return NULL;
|
|
1971
|
+
}
|
|
1972
|
+
EN_Project ph = (EN_Project) ptr;
|
|
1973
|
+
|
|
1974
|
+
int err = EN_settag(ph, object, index, tag);
|
|
1975
|
+
|
|
1976
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
1977
|
+
}
|
|
1978
|
+
|
|
1979
|
+
PyObject* method_EN_timetonextevent(PyObject* self, PyObject* args)
|
|
1980
|
+
{
|
|
1981
|
+
uintptr_t ptr;
|
|
1982
|
+
if(!PyArg_ParseTuple(args, "K", &ptr)) {
|
|
1983
|
+
return NULL;
|
|
1984
|
+
}
|
|
1985
|
+
EN_Project ph = (EN_Project) ptr;
|
|
1986
|
+
|
|
1987
|
+
int eventType, elemIndex;
|
|
1988
|
+
long duration;
|
|
1989
|
+
int err = EN_timetonextevent(ph, &eventType, &duration, &elemIndex);
|
|
1990
|
+
|
|
1991
|
+
return PyTuple_Pack(4, PyLong_FromLong(err), PyLong_FromLong(eventType), PyLong_FromLong(duration), PyLong_FromLong(elemIndex));
|
|
1992
|
+
}
|
|
1993
|
+
|
|
1994
|
+
PyObject* method_EN_getnodevalues(PyObject* self, PyObject* args)
|
|
1995
|
+
{
|
|
1996
|
+
uintptr_t ptr;
|
|
1997
|
+
int property;
|
|
1998
|
+
if(!PyArg_ParseTuple(args, "Ki", &ptr, &property)) {
|
|
1999
|
+
return NULL;
|
|
2000
|
+
}
|
|
2001
|
+
EN_Project ph = (EN_Project) ptr;
|
|
2002
|
+
|
|
2003
|
+
int numNodes;
|
|
2004
|
+
int err = EN_getcount(ph, EN_NODECOUNT, &numNodes);
|
|
2005
|
+
if(err != 0) {
|
|
2006
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
2007
|
+
}
|
|
2008
|
+
|
|
2009
|
+
double* values = (double*) malloc(sizeof(double) * numNodes);
|
|
2010
|
+
err = EN_getnodevalues(ph, property, values);
|
|
2011
|
+
|
|
2012
|
+
PyObject* valuesList = PyList_New(numNodes);
|
|
2013
|
+
for(int i=0; i != numNodes; i++) {
|
|
2014
|
+
PyList_SET_ITEM(valuesList, i, PyFloat_FromDouble(values[i]));
|
|
2015
|
+
}
|
|
2016
|
+
|
|
2017
|
+
free(values);
|
|
2018
|
+
|
|
2019
|
+
return PyTuple_Pack(2, PyLong_FromLong(err), valuesList);
|
|
2020
|
+
}
|
|
2021
|
+
|
|
2022
|
+
PyObject* method_EN_getlinkvalues(PyObject* self, PyObject* args)
|
|
2023
|
+
{
|
|
2024
|
+
uintptr_t ptr;
|
|
2025
|
+
int property;
|
|
2026
|
+
if(!PyArg_ParseTuple(args, "Ki", &ptr, &property)) {
|
|
2027
|
+
return NULL;
|
|
2028
|
+
}
|
|
2029
|
+
EN_Project ph = (EN_Project) ptr;
|
|
2030
|
+
|
|
2031
|
+
int numLinks;
|
|
2032
|
+
int err = EN_getcount(ph, EN_LINKCOUNT, &numLinks);
|
|
2033
|
+
if(err != 0) {
|
|
2034
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
2035
|
+
}
|
|
2036
|
+
|
|
2037
|
+
double* value = (double*) malloc(sizeof(double) * numLinks);
|
|
2038
|
+
err = EN_getlinkvalues(ph, property, value);
|
|
2039
|
+
|
|
2040
|
+
PyObject* valuesList = PyList_New(numLinks);
|
|
2041
|
+
for(int i=0; i != numLinks; i++) {
|
|
2042
|
+
PyList_SET_ITEM(valuesList, i, PyFloat_FromDouble(value[i]));
|
|
2043
|
+
}
|
|
2044
|
+
|
|
2045
|
+
free(value);
|
|
2046
|
+
|
|
2047
|
+
return PyTuple_Pack(2, PyLong_FromLong(err), valuesList);
|
|
2048
|
+
}
|
|
2049
|
+
|
|
2050
|
+
PyObject* method_EN_setvertex(PyObject* self, PyObject* args)
|
|
2051
|
+
{
|
|
2052
|
+
uintptr_t ptr;
|
|
2053
|
+
int index, vertex;
|
|
2054
|
+
double x, y;
|
|
2055
|
+
if(!PyArg_ParseTuple(args, "Kiidd", &ptr, &index, &vertex, &x, &y)) {
|
|
2056
|
+
return NULL;
|
|
2057
|
+
}
|
|
2058
|
+
EN_Project ph = (EN_Project) ptr;
|
|
2059
|
+
|
|
2060
|
+
int err = EN_setvertex(ph, index, vertex, x, y);
|
|
2061
|
+
|
|
2062
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
2063
|
+
}
|
|
2064
|
+
|
|
2065
|
+
PyObject* method_EN_loadpatternfile(PyObject* self, PyObject* args)
|
|
2066
|
+
{
|
|
2067
|
+
uintptr_t ptr;
|
|
2068
|
+
char* filename = NULL;
|
|
2069
|
+
char* id = NULL;
|
|
2070
|
+
if(!PyArg_ParseTuple(args, "Kss", &ptr, &filename, &id)) {
|
|
2071
|
+
return NULL;
|
|
2072
|
+
}
|
|
2073
|
+
EN_Project ph = (EN_Project) ptr;
|
|
2074
|
+
|
|
2075
|
+
int err = EN_loadpatternfile(ph, filename, id);
|
|
2076
|
+
|
|
2077
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
2078
|
+
}
|
|
2079
|
+
|
|
2080
|
+
PyObject* method_EN_setcurvetype(PyObject* self, PyObject* args)
|
|
2081
|
+
{
|
|
2082
|
+
uintptr_t ptr;
|
|
2083
|
+
int index, type;
|
|
2084
|
+
if(!PyArg_ParseTuple(args, "Kii", &ptr, &index, &type)) {
|
|
2085
|
+
return NULL;
|
|
2086
|
+
}
|
|
2087
|
+
EN_Project ph = (EN_Project) ptr;
|
|
2088
|
+
|
|
2089
|
+
int err = EN_setcurvetype(ph, index, type);
|
|
2090
|
+
|
|
2091
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
2092
|
+
}
|
|
2093
|
+
|
|
2094
|
+
PyObject* method_EN_getcontrolenabled(PyObject* self, PyObject* args)
|
|
2095
|
+
{
|
|
2096
|
+
uintptr_t ptr;
|
|
2097
|
+
int index;
|
|
2098
|
+
if(!PyArg_ParseTuple(args, "Ki", &ptr, &index)) {
|
|
2099
|
+
return NULL;
|
|
2100
|
+
}
|
|
2101
|
+
EN_Project ph = (EN_Project) ptr;
|
|
2102
|
+
|
|
2103
|
+
int out_enabled;
|
|
2104
|
+
int err = EN_getcontrolenabled(ph, index, &out_enabled);
|
|
2105
|
+
|
|
2106
|
+
return PyTuple_Pack(2, PyLong_FromLong(err), PyLong_FromLong(out_enabled));
|
|
2107
|
+
}
|
|
2108
|
+
|
|
2109
|
+
PyObject* method_EN_setcontrolenabled(PyObject* self, PyObject* args)
|
|
2110
|
+
{
|
|
2111
|
+
uintptr_t ptr;
|
|
2112
|
+
int index, enabled;
|
|
2113
|
+
if(!PyArg_ParseTuple(args, "Kii", &ptr, &index, &enabled)) {
|
|
2114
|
+
return NULL;
|
|
2115
|
+
}
|
|
2116
|
+
EN_Project ph = (EN_Project) ptr;
|
|
2117
|
+
|
|
2118
|
+
int err = EN_setcontrolenabled(ph, index, enabled);
|
|
2119
|
+
|
|
2120
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
2121
|
+
}
|
|
2122
|
+
|
|
2123
|
+
PyObject* method_EN_getruleenabled(PyObject* self, PyObject* args)
|
|
2124
|
+
{
|
|
2125
|
+
uintptr_t ptr;
|
|
2126
|
+
int index;
|
|
2127
|
+
if(!PyArg_ParseTuple(args, "Ki", &ptr, &index)) {
|
|
2128
|
+
return NULL;
|
|
2129
|
+
}
|
|
2130
|
+
EN_Project ph = (EN_Project) ptr;
|
|
2131
|
+
|
|
2132
|
+
int out_enabled;
|
|
2133
|
+
int err = EN_getruleenabled(ph, index, &out_enabled);
|
|
2134
|
+
|
|
2135
|
+
return PyTuple_Pack(2, PyLong_FromLong(err), PyLong_FromLong(out_enabled));
|
|
2136
|
+
}
|
|
2137
|
+
|
|
2138
|
+
PyObject* method_EN_setruleenabled(PyObject* self, PyObject* args)
|
|
2139
|
+
{
|
|
2140
|
+
uintptr_t ptr;
|
|
2141
|
+
int index, enabled;
|
|
2142
|
+
if(!PyArg_ParseTuple(args, "Kii", &ptr, &index, &enabled)) {
|
|
2143
|
+
return NULL;
|
|
2144
|
+
}
|
|
2145
|
+
EN_Project ph = (EN_Project) ptr;
|
|
2146
|
+
|
|
2147
|
+
int err = EN_setruleenabled(ph, index, enabled);
|
|
2148
|
+
|
|
2149
|
+
return PyTuple_Pack(1, PyLong_FromLong(err));
|
|
2150
|
+
}
|