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 ENgettag(
int object,
int index,
char *tag);
89 int DLLEXPORT ENsettag(
int object,
int index,
const char *tag);
91 int DLLEXPORT ENgetcount(
int object,
int *count);
93 int DLLEXPORT ENsaveinpfile(
const char *filename);
95 int DLLEXPORT ENclose();
103 int DLLEXPORT ENsolveH();
105 int DLLEXPORT ENsaveH();
107 int DLLEXPORT ENopenH();
109 int DLLEXPORT ENinitH(
int initFlag);
111 int DLLEXPORT ENrunH(
long *currentTime);
113 int DLLEXPORT ENnextH(
long *tStep);
115 int DLLEXPORT ENcloseH();
117 int DLLEXPORT ENsavehydfile(
const char *filename);
119 int DLLEXPORT ENusehydfile(
const char *filename);
127 int DLLEXPORT ENsolveQ();
129 int DLLEXPORT ENopenQ();
131 int DLLEXPORT ENinitQ(
int saveFlag);
133 int DLLEXPORT ENrunQ(
long *currentTime);
135 int DLLEXPORT ENnextQ(
long *tStep);
137 int DLLEXPORT ENstepQ(
long *timeLeft);
139 int DLLEXPORT ENcloseQ();
147 int DLLEXPORT ENwriteline(
const char *line);
149 int DLLEXPORT ENreport();
151 int DLLEXPORT ENcopyreport(
const char *filename);
153 int DLLEXPORT ENclearreport();
155 int DLLEXPORT ENresetreport();
157 int DLLEXPORT ENsetreport(
const char *format);
159 int DLLEXPORT ENsetstatusreport(
int level);
161 int DLLEXPORT ENgetversion(
int *version);
163 int DLLEXPORT ENgeterror(
int errcode,
char *errmsg,
int maxLen);
165 int DLLEXPORT ENgetstatistic(
int type, EN_API_FLOAT_TYPE* value);
167 int DLLEXPORT ENgetresultindex(
int type,
int index,
int *value);
169 int DLLEXPORT ENtimetonextevent(
int *eventType,
long *duration,
int *elementIndex);
171 int DLLEXPORT ENsetreportcallback(
void (*callback)(
void *userData,
void *EN_projectHandle,
const char*));
173 int DLLEXPORT ENsetreportcallbackuserdata(
void *userData);
182 int DLLEXPORT ENgetoption(
int option, EN_API_FLOAT_TYPE *value);
184 int DLLEXPORT ENsetoption(
int option, EN_API_FLOAT_TYPE value);
186 int DLLEXPORT ENgetflowunits(
int *units);
188 int DLLEXPORT ENsetflowunits(
int units);
190 int DLLEXPORT ENgettimeparam(
int param,
long *value);
192 int DLLEXPORT ENsettimeparam(
int param,
long value);
194 int DLLEXPORT ENgetqualinfo(
int *qualType,
char *chemName,
char *chemUnits,
197 int DLLEXPORT ENgetqualtype(
int *qualType,
int *traceNode);
199 int DLLEXPORT ENsetqualtype(
int qualType,
const char *chemName,
200 const char *chemUnits,
const char *traceNode);
208 int DLLEXPORT ENaddnode(
const char *
id,
int nodeType,
int *index);
210 int DLLEXPORT ENdeletenode(
int index,
int actionCode);
212 int DLLEXPORT ENgetnodeindex(
const char *
id,
int *index);
214 int DLLEXPORT ENgetnodeid(
int index,
char *
id);
216 int DLLEXPORT ENsetnodeid(
int index,
const char *newid);
218 int DLLEXPORT ENgetnodetype(
int index,
int *nodeType);
220 int DLLEXPORT ENgetnodevalue(
int index,
int property, EN_API_FLOAT_TYPE *value);
222 int DLLEXPORT ENgetnodevalues(
int property, EN_API_FLOAT_TYPE *value);
224 int DLLEXPORT ENsetnodevalue(
int index,
int property, EN_API_FLOAT_TYPE value);
226 int DLLEXPORT ENsetjuncdata(
int index, EN_API_FLOAT_TYPE elev,
227 EN_API_FLOAT_TYPE dmnd,
const char *dmndpat);
229 int DLLEXPORT ENsettankdata(
int index, EN_API_FLOAT_TYPE elev,
230 EN_API_FLOAT_TYPE initlvl, EN_API_FLOAT_TYPE minlvl,
231 EN_API_FLOAT_TYPE maxlvl, EN_API_FLOAT_TYPE diam,
232 EN_API_FLOAT_TYPE minvol,
const char *volcurve);
234 int DLLEXPORT ENgetcoord(
int index,
double *x,
double *y);
236 int DLLEXPORT ENsetcoord(
int index,
double x,
double y);
244 int DLLEXPORT ENgetdemandmodel(
int *model, EN_API_FLOAT_TYPE *pmin,
245 EN_API_FLOAT_TYPE *preq, EN_API_FLOAT_TYPE *pexp);
247 int DLLEXPORT ENsetdemandmodel(
int model, EN_API_FLOAT_TYPE pmin,
248 EN_API_FLOAT_TYPE preq, EN_API_FLOAT_TYPE pexp);
250 int DLLEXPORT ENadddemand(
int nodeIndex, EN_API_FLOAT_TYPE baseDemand,
251 const char *demandPattern,
const char *demandName);
253 int DLLEXPORT ENdeletedemand(
int nodeIndex,
int demandIndex);
255 int DLLEXPORT ENgetnumdemands(
int nodeIndex,
int *numDemands);
257 int DLLEXPORT ENgetdemandindex(
int nodeIndex,
const char *demandName,
260 int DLLEXPORT ENgetbasedemand(
int nodeIndex,
int demandIndex,
261 EN_API_FLOAT_TYPE *baseDemand);
263 int DLLEXPORT ENsetbasedemand(
int nodeIndex,
int demandIndex,
264 EN_API_FLOAT_TYPE baseDemand);
266 int DLLEXPORT ENgetdemandpattern(
int nodeIndex,
int demandIndex,
int *patIndex);
268 int DLLEXPORT ENsetdemandpattern(
int nodeIndex,
int demandIndex,
int patIndex);
270 int DLLEXPORT ENgetdemandname(
int nodeIndex,
int demandIndex,
char *demandName);
272 int DLLEXPORT ENsetdemandname(
int nodeIndex,
int demandIndex,
const char *demandName);
280 int DLLEXPORT ENaddlink(
const char *
id,
int linkType,
const char *fromNode,
281 const char *toNode,
int *index);
283 int DLLEXPORT ENdeletelink(
int index,
int actionCode);
285 int DLLEXPORT ENgetlinkindex(
const char *
id,
int *index);
287 int DLLEXPORT ENgetlinkid(
int index,
char *
id);
289 int DLLEXPORT ENsetlinkid(
int index,
const char *newid);
291 int DLLEXPORT ENgetlinktype(
int index,
int *linkType);
293 int DLLEXPORT ENsetlinktype(
int *index,
int linkType,
int actionCode);
295 int DLLEXPORT ENgetlinknodes(
int index,
int *node1,
int *node2);
297 int DLLEXPORT ENsetlinknodes(
int index,
int node1,
int node2);
299 int DLLEXPORT ENgetlinkvalue(
int index,
int property, EN_API_FLOAT_TYPE *value);
301 int DLLEXPORT ENgetlinkvalues(
int property, EN_API_FLOAT_TYPE *value);
303 int DLLEXPORT ENsetlinkvalue(
int index,
int property, EN_API_FLOAT_TYPE value);
305 int DLLEXPORT ENsetpipedata(
int index, EN_API_FLOAT_TYPE length,
306 EN_API_FLOAT_TYPE diam, EN_API_FLOAT_TYPE rough,
307 EN_API_FLOAT_TYPE mloss);
309 int DLLEXPORT ENgetvertexcount(
int index,
int *count);
311 int DLLEXPORT ENgetvertex(
int index,
int vertex,
double *x,
double *y);
313 int DLLEXPORT ENsetvertex(
int index,
int vertex,
double x,
double y);
315 int DLLEXPORT ENsetvertices(
int index,
double *x,
double *y,
int count);
323 int DLLEXPORT ENgetpumptype(
int linkIndex,
int *pumpType);
325 int DLLEXPORT ENgetheadcurveindex(
int linkIndex,
int *curveIndex);
327 int DLLEXPORT ENsetheadcurveindex(
int linkIndex,
int curveIndex);
335 int DLLEXPORT ENaddpattern(
const char *
id);
337 int DLLEXPORT ENdeletepattern(
int index);
339 int DLLEXPORT ENgetpatternindex(
const char *
id,
int *index);
341 int DLLEXPORT ENgetpatternid(
int index,
char *
id);
343 int DLLEXPORT ENsetpatternid(
int index,
const char *
id);
345 int DLLEXPORT ENgetpatternlen(
int index,
int *len);
347 int DLLEXPORT ENgetpatternvalue(
int index,
int period, EN_API_FLOAT_TYPE *value);
349 int DLLEXPORT ENsetpatternvalue(
int index,
int period, EN_API_FLOAT_TYPE value);
351 int DLLEXPORT ENgetaveragepatternvalue(
int index, EN_API_FLOAT_TYPE *value);
353 int DLLEXPORT ENsetpattern(
int index, EN_API_FLOAT_TYPE *values,
int len);
355 int DLLEXPORT ENloadpatternfile(
const char *filename,
const char *
id);
363 int DLLEXPORT ENaddcurve(
const char *
id);
365 int DLLEXPORT ENdeletecurve(
int index);
367 int DLLEXPORT ENgetcurveindex(
const char *
id,
int *index);
369 int DLLEXPORT ENgetcurveid(
int index,
char *
id);
371 int DLLEXPORT ENsetcurveid(
int index,
const char *
id);
373 int DLLEXPORT ENgetcurvelen(
int index,
int *len);
375 int DLLEXPORT ENgetcurvetype(
int index,
int *type);
377 int DLLEXPORT ENsetcurvetype(
int index,
int type);
379 int DLLEXPORT ENgetcurvevalue(
int curveIndex,
int pointIndex,
380 EN_API_FLOAT_TYPE *x, EN_API_FLOAT_TYPE *y);
382 int DLLEXPORT ENsetcurvevalue(
int curveIndex,
int pointIndex,
383 EN_API_FLOAT_TYPE x, EN_API_FLOAT_TYPE y);
385 int DLLEXPORT ENgetcurve(
int index,
char*
id,
int *nPoints,
386 EN_API_FLOAT_TYPE *xValues, EN_API_FLOAT_TYPE *yValues);
388 int DLLEXPORT ENsetcurve(
int index, EN_API_FLOAT_TYPE *xValues,
389 EN_API_FLOAT_TYPE *yValues,
int nPoints);
397 int DLLEXPORT ENaddcontrol(
int type,
int linkIndex, EN_API_FLOAT_TYPE setting,
398 int nodeIndex, EN_API_FLOAT_TYPE level,
int *index);
400 int DLLEXPORT ENdeletecontrol(
int index);
402 int DLLEXPORT ENgetcontrol(
int index,
int *type,
int *linkIndex,
403 EN_API_FLOAT_TYPE *setting,
int *nodeIndex, EN_API_FLOAT_TYPE *level);
405 int DLLEXPORT ENsetcontrol(
int index,
int type,
int linkIndex,
406 EN_API_FLOAT_TYPE setting,
int nodeIndex, EN_API_FLOAT_TYPE level);
408 int DLLEXPORT ENgetcontrolenabled(
int index,
int *out_enabled);
410 int DLLEXPORT ENsetcontrolenabled(
int index,
int enabled);
418 int DLLEXPORT ENaddrule(
char *rule);
420 int DLLEXPORT ENdeleterule(
int index);
422 int DLLEXPORT ENgetrule(
int index,
int *nPremises,
int *nThenActions,
423 int *nElseActions, EN_API_FLOAT_TYPE *priority);
425 int DLLEXPORT ENgetruleID(
int index,
char*
id);
427 int DLLEXPORT ENgetpremise(
int ruleIndex,
int premiseIndex,
int *logop,
428 int *
object,
int *objIndex,
int *variable,
429 int *relop,
int *status, EN_API_FLOAT_TYPE *value);
431 int DLLEXPORT ENsetpremise(
int ruleIndex,
int premiseIndex,
int logop,
432 int object,
int objIndex,
int variable,
int relop,
433 int status, EN_API_FLOAT_TYPE value);
435 int DLLEXPORT ENsetpremiseindex(
int ruleIndex,
int premiseIndex,
int objIndex);
437 int DLLEXPORT ENsetpremisestatus(
int ruleIndex,
int premiseIndex,
int status);
439 int DLLEXPORT ENsetpremisevalue(
int ruleIndex,
int premiseIndex,
440 EN_API_FLOAT_TYPE value);
442 int DLLEXPORT ENgetthenaction(
int ruleIndex,
int actionIndex,
int *linkIndex,
443 int *status, EN_API_FLOAT_TYPE *setting);
445 int DLLEXPORT ENsetthenaction(
int ruleIndex,
int actionIndex,
int linkIndex,
446 int status, EN_API_FLOAT_TYPE setting);
448 int DLLEXPORT ENgetelseaction(
int ruleIndex,
int actionIndex,
int *linkIndex,
449 int *status, EN_API_FLOAT_TYPE *setting);
451 int DLLEXPORT ENsetelseaction(
int ruleIndex,
int actionIndex,
int linkIndex,
452 int status, EN_API_FLOAT_TYPE setting);
454 int DLLEXPORT ENsetrulepriority(
int index, EN_API_FLOAT_TYPE priority);
456 int DLLEXPORT ENgetruleenabled(
int index,
int *out_enabled);
458 int DLLEXPORT ENsetruleenabled(
int index,
int enabled);
460 #if defined(__cplusplus)