35 #ifndef EN_API_FLOAT_TYPE 36 #define EN_API_FLOAT_TYPE float 41 #ifdef epanet2_EXPORTS 42 #define DLLEXPORT __declspec(dllexport) __stdcall 44 #define DLLEXPORT __declspec(dllimport) __stdcall 46 #elif defined(__CYGWIN__) 47 #define DLLEXPORT __stdcall 56 #if defined(__cplusplus) 67 int DLLEXPORT ENepanet(
const char *inpFile,
const char *rptFile,
68 const char *outFile,
void (*pviewprog) (
char *));
70 int DLLEXPORT ENinit(
const char *rptFile,
const char *outFile,
71 int unitsType,
int headlossType);
73 int DLLEXPORT ENopen(
const char *inpFile,
const char *rptFile,
76 int DLLEXPORT ENopenX(
const char *inpFile,
const char *rptFile,
79 int DLLEXPORT ENgettitle(
char *line1,
char *line2,
char *line3);
81 int DLLEXPORT ENsettitle(
const char *line1,
const char *line2,
const char *line3);
83 int DLLEXPORT ENgetcomment(
int object,
int index,
char *comment);
85 int DLLEXPORT ENsetcomment(
int object,
int index,
const char *comment);
87 int DLLEXPORT ENgetcount(
int object,
int *count);
89 int DLLEXPORT ENsaveinpfile(
const char *filename);
91 int DLLEXPORT ENclose();
99 int DLLEXPORT ENsolveH();
101 int DLLEXPORT ENsaveH();
103 int DLLEXPORT ENopenH();
105 int DLLEXPORT ENinitH(
int initFlag);
107 int DLLEXPORT ENrunH(
long *currentTime);
109 int DLLEXPORT ENnextH(
long *tStep);
111 int DLLEXPORT ENcloseH();
113 int DLLEXPORT ENsavehydfile(
const char *filename);
115 int DLLEXPORT ENusehydfile(
const char *filename);
123 int DLLEXPORT ENsolveQ();
125 int DLLEXPORT ENopenQ();
127 int DLLEXPORT ENinitQ(
int saveFlag);
129 int DLLEXPORT ENrunQ(
long *currentTime);
131 int DLLEXPORT ENnextQ(
long *tStep);
133 int DLLEXPORT ENstepQ(
long *timeLeft);
135 int DLLEXPORT ENcloseQ();
143 int DLLEXPORT ENwriteline(
const char *line);
145 int DLLEXPORT ENreport();
147 int DLLEXPORT ENcopyreport(
const char *filename);
149 int DLLEXPORT ENclearreport();
151 int DLLEXPORT ENresetreport();
153 int DLLEXPORT ENsetreport(
const char *format);
155 int DLLEXPORT ENsetstatusreport(
int level);
157 int DLLEXPORT ENgetversion(
int *version);
159 int DLLEXPORT ENgeterror(
int errcode,
char *errmsg,
int maxLen);
161 int DLLEXPORT ENgetstatistic(
int type, EN_API_FLOAT_TYPE* value);
163 int DLLEXPORT ENgetresultindex(
int type,
int index,
int *value);
165 int DLLEXPORT ENtimetonextevent(
int *eventType,
long *duration,
int *elementIndex);
167 int DLLEXPORT ENsetreportcallback(
void (*callback)(
void *userData,
void *EN_projectHandle,
const char*));
168 int DLLEXPORT ENsetreportcallbackuserdata(
void *userData);
177 int DLLEXPORT ENgetoption(
int option, EN_API_FLOAT_TYPE *value);
179 int DLLEXPORT ENsetoption(
int option, EN_API_FLOAT_TYPE value);
181 int DLLEXPORT ENgetflowunits(
int *units);
183 int DLLEXPORT ENsetflowunits(
int units);
185 int DLLEXPORT ENgettimeparam(
int param,
long *value);
187 int DLLEXPORT ENsettimeparam(
int param,
long value);
189 int DLLEXPORT ENgetqualinfo(
int *qualType,
char *chemName,
char *chemUnits,
192 int DLLEXPORT ENgetqualtype(
int *qualType,
int *traceNode);
194 int DLLEXPORT ENsetqualtype(
int qualType,
const char *chemName,
195 const char *chemUnits,
const char *traceNode);
203 int DLLEXPORT ENaddnode(
const char *
id,
int nodeType,
int *index);
205 int DLLEXPORT ENdeletenode(
int index,
int actionCode);
207 int DLLEXPORT ENgetnodeindex(
const char *
id,
int *index);
209 int DLLEXPORT ENgetnodeid(
int index,
char *
id);
211 int DLLEXPORT ENsetnodeid(
int index,
const char *newid);
213 int DLLEXPORT ENgetnodetype(
int index,
int *nodeType);
215 int DLLEXPORT ENgetnodevalue(
int index,
int property, EN_API_FLOAT_TYPE *value);
217 int DLLEXPORT ENsetnodevalue(
int index,
int property, EN_API_FLOAT_TYPE value);
219 int DLLEXPORT ENsetjuncdata(
int index, EN_API_FLOAT_TYPE elev,
220 EN_API_FLOAT_TYPE dmnd,
const char *dmndpat);
222 int DLLEXPORT ENsettankdata(
int index, EN_API_FLOAT_TYPE elev,
223 EN_API_FLOAT_TYPE initlvl, EN_API_FLOAT_TYPE minlvl,
224 EN_API_FLOAT_TYPE maxlvl, EN_API_FLOAT_TYPE diam,
225 EN_API_FLOAT_TYPE minvol,
const char *volcurve);
227 int DLLEXPORT ENgetcoord(
int index,
double *x,
double *y);
229 int DLLEXPORT ENsetcoord(
int index,
double x,
double y);
237 int DLLEXPORT ENgetdemandmodel(
int *model, EN_API_FLOAT_TYPE *pmin,
238 EN_API_FLOAT_TYPE *preq, EN_API_FLOAT_TYPE *pexp);
240 int DLLEXPORT ENsetdemandmodel(
int model, EN_API_FLOAT_TYPE pmin,
241 EN_API_FLOAT_TYPE preq, EN_API_FLOAT_TYPE pexp);
243 int DLLEXPORT ENadddemand(
int nodeIndex, EN_API_FLOAT_TYPE baseDemand,
244 const char *demandPattern,
const char *demandName);
246 int DLLEXPORT ENdeletedemand(
int nodeIndex,
int demandIndex);
248 int DLLEXPORT ENgetnumdemands(
int nodeIndex,
int *numDemands);
250 int DLLEXPORT ENgetdemandindex(
int nodeIndex,
const char *demandName,
253 int DLLEXPORT ENgetbasedemand(
int nodeIndex,
int demandIndex,
254 EN_API_FLOAT_TYPE *baseDemand);
256 int DLLEXPORT ENsetbasedemand(
int nodeIndex,
int demandIndex,
257 EN_API_FLOAT_TYPE baseDemand);
259 int DLLEXPORT ENgetdemandpattern(
int nodeIndex,
int demandIndex,
int *patIndex);
261 int DLLEXPORT ENsetdemandpattern(
int nodeIndex,
int demandIndex,
int patIndex);
263 int DLLEXPORT ENgetdemandname(
int nodeIndex,
int demandIndex,
char *demandName);
265 int DLLEXPORT ENsetdemandname(
int nodeIndex,
int demandIndex,
const char *demandName);
273 int DLLEXPORT ENaddlink(
const char *
id,
int linkType,
const char *fromNode,
274 const char *toNode,
int *index);
276 int DLLEXPORT ENdeletelink(
int index,
int actionCode);
278 int DLLEXPORT ENgetlinkindex(
const char *
id,
int *index);
280 int DLLEXPORT ENgetlinkid(
int index,
char *
id);
282 int DLLEXPORT ENsetlinkid(
int index,
const char *newid);
284 int DLLEXPORT ENgetlinktype(
int index,
int *linkType);
286 int DLLEXPORT ENsetlinktype(
int *index,
int linkType,
int actionCode);
288 int DLLEXPORT ENgetlinknodes(
int index,
int *node1,
int *node2);
290 int DLLEXPORT ENsetlinknodes(
int index,
int node1,
int node2);
292 int DLLEXPORT ENgetlinkvalue(
int index,
int property, EN_API_FLOAT_TYPE *value);
294 int DLLEXPORT ENsetlinkvalue(
int index,
int property, EN_API_FLOAT_TYPE value);
296 int DLLEXPORT ENsetpipedata(
int index, EN_API_FLOAT_TYPE length,
297 EN_API_FLOAT_TYPE diam, EN_API_FLOAT_TYPE rough,
298 EN_API_FLOAT_TYPE mloss);
300 int DLLEXPORT ENgetvertexcount(
int index,
int *count);
302 int DLLEXPORT ENgetvertex(
int index,
int vertex,
double *x,
double *y);
304 int DLLEXPORT ENsetvertex(
int index,
int vertex,
double x,
double y);
306 int DLLEXPORT ENsetvertices(
int index,
double *x,
double *y,
int count);
314 int DLLEXPORT ENgetpumptype(
int linkIndex,
int *pumpType);
316 int DLLEXPORT ENgetheadcurveindex(
int linkIndex,
int *curveIndex);
318 int DLLEXPORT ENsetheadcurveindex(
int linkIndex,
int curveIndex);
326 int DLLEXPORT ENaddpattern(
const char *
id);
328 int DLLEXPORT ENdeletepattern(
int index);
330 int DLLEXPORT ENgetpatternindex(
const char *
id,
int *index);
332 int DLLEXPORT ENgetpatternid(
int index,
char *
id);
334 int DLLEXPORT ENsetpatternid(
int index,
const char *
id);
336 int DLLEXPORT ENgetpatternlen(
int index,
int *len);
338 int DLLEXPORT ENgetpatternvalue(
int index,
int period, EN_API_FLOAT_TYPE *value);
340 int DLLEXPORT ENsetpatternvalue(
int index,
int period, EN_API_FLOAT_TYPE value);
342 int DLLEXPORT ENgetaveragepatternvalue(
int index, EN_API_FLOAT_TYPE *value);
344 int DLLEXPORT ENsetpattern(
int index, EN_API_FLOAT_TYPE *values,
int len);
352 int DLLEXPORT ENaddcurve(
const char *
id);
354 int DLLEXPORT ENdeletecurve(
int index);
356 int DLLEXPORT ENgetcurveindex(
const char *
id,
int *index);
358 int DLLEXPORT ENgetcurveid(
int index,
char *
id);
360 int DLLEXPORT ENsetcurveid(
int index,
const char *
id);
362 int DLLEXPORT ENgetcurvelen(
int index,
int *len);
364 int DLLEXPORT ENgetcurvetype(
int index,
int *type);
366 int DLLEXPORT ENsetcurvetype(
int index,
int type);
368 int DLLEXPORT ENgetcurvevalue(
int curveIndex,
int pointIndex,
369 EN_API_FLOAT_TYPE *x, EN_API_FLOAT_TYPE *y);
371 int DLLEXPORT ENsetcurvevalue(
int curveIndex,
int pointIndex,
372 EN_API_FLOAT_TYPE x, EN_API_FLOAT_TYPE y);
374 int DLLEXPORT ENgetcurve(
int index,
char*
id,
int *nPoints,
375 EN_API_FLOAT_TYPE *xValues, EN_API_FLOAT_TYPE *yValues);
377 int DLLEXPORT ENsetcurve(
int index, EN_API_FLOAT_TYPE *xValues,
378 EN_API_FLOAT_TYPE *yValues,
int nPoints);
386 int DLLEXPORT ENaddcontrol(
int type,
int linkIndex, EN_API_FLOAT_TYPE setting,
387 int nodeIndex, EN_API_FLOAT_TYPE level,
int *index);
389 int DLLEXPORT ENdeletecontrol(
int index);
391 int DLLEXPORT ENgetcontrol(
int index,
int *type,
int *linkIndex,
392 EN_API_FLOAT_TYPE *setting,
int *nodeIndex, EN_API_FLOAT_TYPE *level);
394 int DLLEXPORT ENsetcontrol(
int index,
int type,
int linkIndex,
395 EN_API_FLOAT_TYPE setting,
int nodeIndex, EN_API_FLOAT_TYPE level);
397 int DLLEXPORT ENgetcontrolenabled(
int index,
int *out_enabled);
399 int DLLEXPORT ENsetcontrolenabled(
int index,
int enabled);
407 int DLLEXPORT ENaddrule(
char *rule);
409 int DLLEXPORT ENdeleterule(
int index);
411 int DLLEXPORT ENgetrule(
int index,
int *nPremises,
int *nThenActions,
412 int *nElseActions, EN_API_FLOAT_TYPE *priority);
414 int DLLEXPORT ENgetruleID(
int index,
char*
id);
416 int DLLEXPORT ENgetpremise(
int ruleIndex,
int premiseIndex,
int *logop,
417 int *
object,
int *objIndex,
int *variable,
418 int *relop,
int *status, EN_API_FLOAT_TYPE *value);
420 int DLLEXPORT ENsetpremise(
int ruleIndex,
int premiseIndex,
int logop,
421 int object,
int objIndex,
int variable,
int relop,
422 int status, EN_API_FLOAT_TYPE value);
424 int DLLEXPORT ENsetpremiseindex(
int ruleIndex,
int premiseIndex,
int objIndex);
426 int DLLEXPORT ENsetpremisestatus(
int ruleIndex,
int premiseIndex,
int status);
428 int DLLEXPORT ENsetpremisevalue(
int ruleIndex,
int premiseIndex,
429 EN_API_FLOAT_TYPE value);
431 int DLLEXPORT ENgetthenaction(
int ruleIndex,
int actionIndex,
int *linkIndex,
432 int *status, EN_API_FLOAT_TYPE *setting);
434 int DLLEXPORT ENsetthenaction(
int ruleIndex,
int actionIndex,
int linkIndex,
435 int status, EN_API_FLOAT_TYPE setting);
437 int DLLEXPORT ENgetelseaction(
int ruleIndex,
int actionIndex,
int *linkIndex,
438 int *status, EN_API_FLOAT_TYPE *setting);
440 int DLLEXPORT ENsetelseaction(
int ruleIndex,
int actionIndex,
int linkIndex,
441 int status, EN_API_FLOAT_TYPE setting);
443 int DLLEXPORT ENsetrulepriority(
int index, EN_API_FLOAT_TYPE priority);
445 int DLLEXPORT ENgetruleenabled(
int index,
int *out_enabled);
447 int DLLEXPORT ENsetruleenabled(
int index,
int enabled);
449 #if defined(__cplusplus)