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 ENsetnodevalues(
int property, EN_API_FLOAT_TYPE *values,
int *badIndex);
228 int DLLEXPORT ENsetjuncdata(
int index, EN_API_FLOAT_TYPE elev,
229 EN_API_FLOAT_TYPE dmnd,
const char *dmndpat);
231 int DLLEXPORT ENsettankdata(
int index, EN_API_FLOAT_TYPE elev,
232 EN_API_FLOAT_TYPE initlvl, EN_API_FLOAT_TYPE minlvl,
233 EN_API_FLOAT_TYPE maxlvl, EN_API_FLOAT_TYPE diam,
234 EN_API_FLOAT_TYPE minvol,
const char *volcurve);
236 int DLLEXPORT ENgetcoord(
int index,
double *x,
double *y);
238 int DLLEXPORT ENsetcoord(
int index,
double x,
double y);
246 int DLLEXPORT ENgetdemandmodel(
int *model, EN_API_FLOAT_TYPE *pmin,
247 EN_API_FLOAT_TYPE *preq, EN_API_FLOAT_TYPE *pexp);
249 int DLLEXPORT ENsetdemandmodel(
int model, EN_API_FLOAT_TYPE pmin,
250 EN_API_FLOAT_TYPE preq, EN_API_FLOAT_TYPE pexp);
252 int DLLEXPORT ENadddemand(
int nodeIndex, EN_API_FLOAT_TYPE baseDemand,
253 const char *demandPattern,
const char *demandName);
255 int DLLEXPORT ENdeletedemand(
int nodeIndex,
int demandIndex);
257 int DLLEXPORT ENgetnumdemands(
int nodeIndex,
int *numDemands);
259 int DLLEXPORT ENgetdemandindex(
int nodeIndex,
const char *demandName,
262 int DLLEXPORT ENgetbasedemand(
int nodeIndex,
int demandIndex,
263 EN_API_FLOAT_TYPE *baseDemand);
265 int DLLEXPORT ENsetbasedemand(
int nodeIndex,
int demandIndex,
266 EN_API_FLOAT_TYPE baseDemand);
268 int DLLEXPORT ENgetdemandpattern(
int nodeIndex,
int demandIndex,
int *patIndex);
270 int DLLEXPORT ENsetdemandpattern(
int nodeIndex,
int demandIndex,
int patIndex);
272 int DLLEXPORT ENgetdemandname(
int nodeIndex,
int demandIndex,
char *demandName);
274 int DLLEXPORT ENsetdemandname(
int nodeIndex,
int demandIndex,
const char *demandName);
282 int DLLEXPORT ENaddlink(
const char *
id,
int linkType,
const char *fromNode,
283 const char *toNode,
int *index);
285 int DLLEXPORT ENdeletelink(
int index,
int actionCode);
287 int DLLEXPORT ENgetlinkindex(
const char *
id,
int *index);
289 int DLLEXPORT ENgetlinkid(
int index,
char *
id);
291 int DLLEXPORT ENsetlinkid(
int index,
const char *newid);
293 int DLLEXPORT ENgetlinktype(
int index,
int *linkType);
295 int DLLEXPORT ENsetlinktype(
int *index,
int linkType,
int actionCode);
297 int DLLEXPORT ENgetlinknodes(
int index,
int *node1,
int *node2);
299 int DLLEXPORT ENsetlinknodes(
int index,
int node1,
int node2);
301 int DLLEXPORT ENgetlinkvalue(
int index,
int property, EN_API_FLOAT_TYPE *value);
303 int DLLEXPORT ENgetlinkvalues(
int property, EN_API_FLOAT_TYPE *value);
305 int DLLEXPORT ENsetlinkvalue(
int index,
int property, EN_API_FLOAT_TYPE value);
307 int DLLEXPORT ENsetlinkvalues(
int property, EN_API_FLOAT_TYPE *values,
int *badIndex);
309 int DLLEXPORT ENsetpipedata(
int index, EN_API_FLOAT_TYPE length,
310 EN_API_FLOAT_TYPE diam, EN_API_FLOAT_TYPE rough,
311 EN_API_FLOAT_TYPE mloss);
313 int DLLEXPORT ENgetvertexcount(
int index,
int *count);
315 int DLLEXPORT ENgetvertex(
int index,
int vertex,
double *x,
double *y);
317 int DLLEXPORT ENsetvertex(
int index,
int vertex,
double x,
double y);
319 int DLLEXPORT ENsetvertices(
int index,
double *x,
double *y,
int count);
327 int DLLEXPORT ENgetpumptype(
int linkIndex,
int *pumpType);
329 int DLLEXPORT ENgetheadcurveindex(
int linkIndex,
int *curveIndex);
331 int DLLEXPORT ENsetheadcurveindex(
int linkIndex,
int curveIndex);
339 int DLLEXPORT ENaddpattern(
const char *
id);
341 int DLLEXPORT ENdeletepattern(
int index);
343 int DLLEXPORT ENgetpatternindex(
const char *
id,
int *index);
345 int DLLEXPORT ENgetpatternid(
int index,
char *
id);
347 int DLLEXPORT ENsetpatternid(
int index,
const char *
id);
349 int DLLEXPORT ENgetpatternlen(
int index,
int *len);
351 int DLLEXPORT ENgetpatternvalue(
int index,
int period, EN_API_FLOAT_TYPE *value);
353 int DLLEXPORT ENsetpatternvalue(
int index,
int period, EN_API_FLOAT_TYPE value);
355 int DLLEXPORT ENgetaveragepatternvalue(
int index, EN_API_FLOAT_TYPE *value);
357 int DLLEXPORT ENsetpattern(
int index, EN_API_FLOAT_TYPE *values,
int len);
359 int DLLEXPORT ENloadpatternfile(
const char *filename,
const char *
id);
367 int DLLEXPORT ENaddcurve(
const char *
id);
369 int DLLEXPORT ENdeletecurve(
int index);
371 int DLLEXPORT ENgetcurveindex(
const char *
id,
int *index);
373 int DLLEXPORT ENgetcurveid(
int index,
char *
id);
375 int DLLEXPORT ENsetcurveid(
int index,
const char *
id);
377 int DLLEXPORT ENgetcurvelen(
int index,
int *len);
379 int DLLEXPORT ENgetcurvetype(
int index,
int *type);
381 int DLLEXPORT ENsetcurvetype(
int index,
int type);
383 int DLLEXPORT ENgetcurvevalue(
int curveIndex,
int pointIndex,
384 EN_API_FLOAT_TYPE *x, EN_API_FLOAT_TYPE *y);
386 int DLLEXPORT ENsetcurvevalue(
int curveIndex,
int pointIndex,
387 EN_API_FLOAT_TYPE x, EN_API_FLOAT_TYPE y);
389 int DLLEXPORT ENgetcurve(
int index,
char*
id,
int *nPoints,
390 EN_API_FLOAT_TYPE *xValues, EN_API_FLOAT_TYPE *yValues);
392 int DLLEXPORT ENsetcurve(
int index, EN_API_FLOAT_TYPE *xValues,
393 EN_API_FLOAT_TYPE *yValues,
int nPoints);
401 int DLLEXPORT ENaddcontrol(
int type,
int linkIndex, EN_API_FLOAT_TYPE setting,
402 int nodeIndex, EN_API_FLOAT_TYPE level,
int *index);
404 int DLLEXPORT ENdeletecontrol(
int index);
406 int DLLEXPORT ENgetcontrol(
int index,
int *type,
int *linkIndex,
407 EN_API_FLOAT_TYPE *setting,
int *nodeIndex, EN_API_FLOAT_TYPE *level);
409 int DLLEXPORT ENsetcontrol(
int index,
int type,
int linkIndex,
410 EN_API_FLOAT_TYPE setting,
int nodeIndex, EN_API_FLOAT_TYPE level);
412 int DLLEXPORT ENgetcontrolenabled(
int index,
int *out_enabled);
414 int DLLEXPORT ENsetcontrolenabled(
int index,
int enabled);
422 int DLLEXPORT ENaddrule(
char *rule);
424 int DLLEXPORT ENdeleterule(
int index);
426 int DLLEXPORT ENgetrule(
int index,
int *nPremises,
int *nThenActions,
427 int *nElseActions, EN_API_FLOAT_TYPE *priority);
429 int DLLEXPORT ENgetruleID(
int index,
char*
id);
431 int DLLEXPORT ENgetpremise(
int ruleIndex,
int premiseIndex,
int *logop,
432 int *
object,
int *objIndex,
int *variable,
433 int *relop,
int *status, EN_API_FLOAT_TYPE *value);
435 int DLLEXPORT ENsetpremise(
int ruleIndex,
int premiseIndex,
int logop,
436 int object,
int objIndex,
int variable,
int relop,
437 int status, EN_API_FLOAT_TYPE value);
439 int DLLEXPORT ENsetpremiseindex(
int ruleIndex,
int premiseIndex,
int objIndex);
441 int DLLEXPORT ENsetpremisestatus(
int ruleIndex,
int premiseIndex,
int status);
443 int DLLEXPORT ENsetpremisevalue(
int ruleIndex,
int premiseIndex,
444 EN_API_FLOAT_TYPE value);
446 int DLLEXPORT ENgetthenaction(
int ruleIndex,
int actionIndex,
int *linkIndex,
447 int *status, EN_API_FLOAT_TYPE *setting);
449 int DLLEXPORT ENsetthenaction(
int ruleIndex,
int actionIndex,
int linkIndex,
450 int status, EN_API_FLOAT_TYPE setting);
452 int DLLEXPORT ENgetelseaction(
int ruleIndex,
int actionIndex,
int *linkIndex,
453 int *status, EN_API_FLOAT_TYPE *setting);
455 int DLLEXPORT ENsetelseaction(
int ruleIndex,
int actionIndex,
int linkIndex,
456 int status, EN_API_FLOAT_TYPE setting);
458 int DLLEXPORT ENsetrulepriority(
int index, EN_API_FLOAT_TYPE priority);
460 int DLLEXPORT ENgetruleenabled(
int index,
int *out_enabled);
462 int DLLEXPORT ENsetruleenabled(
int index,
int enabled);
464 #if defined(__cplusplus)