/* ****************************************************************************** Project: OWA HYDRAULIC Version: 2.2 Module: epanet2.h Description: declarations of the legacy style HYDRAULIC 2 API functions Authors: see AUTHORS Copyright: see AUTHORS License: see LICENSE Last Updated: 10/29/2019 ****************************************************************************** */ /* This module contains declarations of the legacy style HYDRAULIC API functions, with version 2.2 updates, that apply only to single threaded applications. A second set of thread safe API functions that allows one to run concurrent analyses on multiple HYDRAULIC projects can be found in the epanet2_2.h header file. The two APIs share the same function names and arguments with the difference being that the thread safe functions use the prefix "EN_" and include an extra argument that represents the HYDRAULIC project being analyzed. To avoid unneccesary repetition, only the thread safe API functions have been documented. To see a description of a legacy style API function declared here please refer to its complementary named function in epanet2_2.h. */ #ifndef EPANET2_H #define EPANET2_H // The legacy style HYDRAULIC API can be compiled with support for either single // precision or double precision floating point arguments, with the default // being single precision. To compile for double precision one must #define // EN_API_FLOAT_TYPE as double both here and in any client code that uses the // API. #ifndef EN_API_FLOAT_TYPE #define EN_API_FLOAT_TYPE float #endif #ifndef DLLEXPORT #ifdef _WIN32 #ifdef epanet2_EXPORTS #define DLLEXPORT __declspec(dllexport) __stdcall #else #define DLLEXPORT __declspec(dllimport) __stdcall #endif #elif defined(__CYGWIN__) #define DLLEXPORT __stdcall #else #ifdef epanet2_EXPORTS #define DLLEXPORT __declspec(dllexport) __stdcall #else #define DLLEXPORT __declspec(dllimport) __stdcall #endif //#define DLLEXPORT #endif #endif #include "epanet2_enums.h" // --- Declare the HYDRAULIC toolkit functions #if defined(__cplusplus) extern "C" { #endif /******************************************************************** Project Functions ********************************************************************/ int DLLEXPORT ENepanet(const char *inpFile, const char *rptFile, const char *outFile, void (*pviewprog) (char *)); int DLLEXPORT ENinit(const char *rptFile, const char *outFile, int unitsType, int headlossType); int DLLEXPORT ENopen(const char *inpFile, const char *rptFile, const char *outFile); int DLLEXPORT ENgettitle(char *line1, char *line2, char *line3); int DLLEXPORT ENsettitle(char *line1, char *line2, char *line3); int DLLEXPORT ENgetcomment(int object, int index, char *comment); int DLLEXPORT ENsetcomment(int object, int index, char *comment); int DLLEXPORT ENgetcount(int object, int *count); int DLLEXPORT ENsaveinpfile(const char *filename); int DLLEXPORT ENclose(); /******************************************************************** Hydraulic Analysis Functions ********************************************************************/ int DLLEXPORT ENsolveH(); int DLLEXPORT ENsaveH(); int DLLEXPORT ENopenH(); int DLLEXPORT ENinitH(int initFlag); int DLLEXPORT ENrunH(long *currentTime); int DLLEXPORT ENnextH(long *tStep); int DLLEXPORT ENcloseH(); int DLLEXPORT ENsavehydfile(char *filename); int DLLEXPORT ENusehydfile(char *filename); /******************************************************************** Water Quality Analysis Functions ********************************************************************/ int DLLEXPORT ENsolveQ(); int DLLEXPORT ENopenQ(); int DLLEXPORT ENinitQ(int saveFlag); int DLLEXPORT ENrunQ(long *currentTime); int DLLEXPORT ENnextQ(long *tStep); int DLLEXPORT ENstepQ(long *timeLeft); int DLLEXPORT ENcloseQ(); /******************************************************************** Reporting Functions ********************************************************************/ int DLLEXPORT ENwriteline(char *line); int DLLEXPORT ENreport(); int DLLEXPORT ENcopyreport(char *filename); int DLLEXPORT ENclearreport(); int DLLEXPORT ENresetreport(); int DLLEXPORT ENsetreport(char *format); int DLLEXPORT ENsetstatusreport(int level); int DLLEXPORT ENgetversion(int *version); int DLLEXPORT ENgeterror(int errcode, char *errmsg, int maxLen); int DLLEXPORT ENgetstatistic(int type, EN_API_FLOAT_TYPE* value); int DLLEXPORT ENgetresultindex(int type, int index, int *value); /******************************************************************** Analysis Options Functions ********************************************************************/ int DLLEXPORT ENgetoption(int option, EN_API_FLOAT_TYPE *value); int DLLEXPORT ENsetoption(int option, EN_API_FLOAT_TYPE value); int DLLEXPORT ENgetflowunits(int *units); int DLLEXPORT ENsetflowunits(int units); int DLLEXPORT ENgettimeparam(int param, long *value); int DLLEXPORT ENsettimeparam(int param, long value); int DLLEXPORT ENgetqualinfo(int *qualType, char *chemName, char *chemUnits, int *traceNode); int DLLEXPORT ENgetqualtype(int *qualType, int *traceNode); int DLLEXPORT ENsetqualtype(int qualType, char *chemName, char *chemUnits, char *traceNode); /******************************************************************** Node Functions ********************************************************************/ int DLLEXPORT ENaddnode(char *id, int nodeType, int *index); int DLLEXPORT ENdeletenode(int index, int actionCode); int DLLEXPORT ENgetnodeindex(char *id, int *index); int DLLEXPORT ENgetnodeid(int index, char *id); int DLLEXPORT ENgetnodecomment(int index, char* id); int DLLEXPORT ENsetnodeid(int index, char *newid); int DLLEXPORT ENgetnodetype(int index, int *nodeType); int DLLEXPORT ENgetnodevalue(int index, int property, EN_API_FLOAT_TYPE *value); int DLLEXPORT ENsetnodevalue(int index, int property, EN_API_FLOAT_TYPE value); int DLLEXPORT ENsetjuncdata(int index, EN_API_FLOAT_TYPE elev, EN_API_FLOAT_TYPE dmnd, char *dmndpat); int DLLEXPORT ENsettankdata(int index, EN_API_FLOAT_TYPE elev, EN_API_FLOAT_TYPE initlvl, EN_API_FLOAT_TYPE minlvl, EN_API_FLOAT_TYPE maxlvl, EN_API_FLOAT_TYPE diam, EN_API_FLOAT_TYPE minvol, char *volcurve); int DLLEXPORT ENgetcoord(int index, double *x, double *y); int DLLEXPORT ENsetcoord(int index, double x, double y); /******************************************************************** Nodal Demand Functions ********************************************************************/ int DLLEXPORT ENgetdemandmodel(int *model, EN_API_FLOAT_TYPE *pmin, EN_API_FLOAT_TYPE *preq, EN_API_FLOAT_TYPE *pexp); int DLLEXPORT ENsetdemandmodel(int model, EN_API_FLOAT_TYPE pmin, EN_API_FLOAT_TYPE preq, EN_API_FLOAT_TYPE pexp); int DLLEXPORT ENadddemand(int nodeIndex, EN_API_FLOAT_TYPE baseDemand, char *demandPattern, char *demandName); int DLLEXPORT ENdeletedemand(int nodeIndex, int demandIndex); int DLLEXPORT ENgetnumdemands(int nodeIndex, int *numDemands); int DLLEXPORT ENgetdemandindex(int nodeIndex, char *demandName, int *demandIndex); int DLLEXPORT ENgetbasedemand(int nodeIndex, int demandIndex, EN_API_FLOAT_TYPE *baseDemand); int DLLEXPORT ENsetbasedemand(int nodeIndex, int demandIndex, EN_API_FLOAT_TYPE baseDemand); int DLLEXPORT ENgetdemandpattern(int nodeIndex, int demandIndex, int *patIndex); int DLLEXPORT ENsetdemandpattern(int nodeIndex, int demandIndex, int patIndex); int DLLEXPORT ENgetdemandname(int nodeIndex, int demandIndex, char *demandName); int DLLEXPORT ENsetdemandname(int nodeIndex, int demandIndex, char *demandName); /******************************************************************** Link Functions ********************************************************************/ int DLLEXPORT ENaddlink(char *id, int linkType, char *fromNode, char *toNode, int *index); int DLLEXPORT ENdeletelink(int index, int actionCode); int DLLEXPORT ENgetlinkindex(char *id, int *index); int DLLEXPORT ENgetlinkid(int index, char *id); int DLLEXPORT ENgetlinkcomment(int index, char* id); int DLLEXPORT ENsetlinkid(int index, char *newid); int DLLEXPORT ENgetlinktype(int index, int *linkType); int DLLEXPORT ENsetlinktype(int *index, int linkType, int actionCode); int DLLEXPORT ENgetlinknodes(int index, int *node1, int *node2); int DLLEXPORT ENsetlinknodes(int index, int node1, int node2); int DLLEXPORT ENgetlinkvalue(int index, int property, EN_API_FLOAT_TYPE *value); int DLLEXPORT ENsetlinkvalue(int index, int property, EN_API_FLOAT_TYPE value); int DLLEXPORT ENsetpipedata(int index, EN_API_FLOAT_TYPE length, EN_API_FLOAT_TYPE diam, EN_API_FLOAT_TYPE rough, EN_API_FLOAT_TYPE mloss); int DLLEXPORT ENgetvertexcount(int index, int *count); int DLLEXPORT ENgetvertex(int index, int vertex, double *x, double *y); int DLLEXPORT ENsetvertices(int index, double *x, double *y, int count); /******************************************************************** Pump Functions ********************************************************************/ int DLLEXPORT ENgetpumptype(int linkIndex, int *pumpType); int DLLEXPORT ENgetheadcurveindex(int linkIndex, int *curveIndex); int DLLEXPORT ENsetheadcurveindex(int linkIndex, int curveIndex); /******************************************************************** Time Pattern Functions ********************************************************************/ int DLLEXPORT ENaddpattern(char *id); int DLLEXPORT ENdeletepattern(int index); int DLLEXPORT ENgetpatternindex(char *id, int *index); int DLLEXPORT ENgetpatternid(int index, char *id); int DLLEXPORT ENsetpatternid(int index, char *id); int DLLEXPORT ENgetpatternlen(int index, int *len); int DLLEXPORT ENgetpatternvalue(int index, int period, EN_API_FLOAT_TYPE *value); int DLLEXPORT ENsetpatternvalue(int index, int period, EN_API_FLOAT_TYPE value); int DLLEXPORT ENgetaveragepatternvalue(int index, EN_API_FLOAT_TYPE *value); int DLLEXPORT ENsetpattern(int index, EN_API_FLOAT_TYPE *values, int len); /******************************************************************** Data Curve Functions ********************************************************************/ int DLLEXPORT ENaddcurve(char *id); int DLLEXPORT ENdeletecurve(int index); int DLLEXPORT ENgetcurveindex(char *id, int *index); int DLLEXPORT ENgetcurveid(int index, char *id); int DLLEXPORT ENsetcurveid(int index, char *id); int DLLEXPORT ENgetcurvelen(int index, int *len); int DLLEXPORT ENgetcurvetype(int index, int *type); int DLLEXPORT ENgetcurvevalue(int curveIndex, int pointIndex, EN_API_FLOAT_TYPE *x, EN_API_FLOAT_TYPE *y); int DLLEXPORT ENsetcurvevalue(int curveIndex, int pointIndex, EN_API_FLOAT_TYPE x, EN_API_FLOAT_TYPE y); int DLLEXPORT ENgetcurve(int index, char* id, int *nPoints, EN_API_FLOAT_TYPE *xValues, EN_API_FLOAT_TYPE *yValues); int DLLEXPORT ENsetcurve(int index, EN_API_FLOAT_TYPE *xValues, EN_API_FLOAT_TYPE *yValues, int nPoints); /******************************************************************** Simple Controls Functions ********************************************************************/ int DLLEXPORT ENaddcontrol(int type, int linkIndex, EN_API_FLOAT_TYPE setting, int nodeIndex, EN_API_FLOAT_TYPE level, int *index); int DLLEXPORT ENdeletecontrol(int index); int DLLEXPORT ENgetcontrol(int index, int *type, int *linkIndex, EN_API_FLOAT_TYPE *setting, int *nodeIndex, EN_API_FLOAT_TYPE *level); int DLLEXPORT ENsetcontrol(int index, int type, int linkIndex, EN_API_FLOAT_TYPE setting, int nodeIndex, EN_API_FLOAT_TYPE level); /******************************************************************** Rule-Based Controls Functions ********************************************************************/ int DLLEXPORT ENaddrule(char *rule); int DLLEXPORT ENdeleterule(int index); int DLLEXPORT ENgetrule(int index, int *nPremises, int *nThenActions, int *nElseActions, EN_API_FLOAT_TYPE *priority); int DLLEXPORT ENgetruleID(int index, char* id); int DLLEXPORT ENgetpremise(int ruleIndex, int premiseIndex, int *logop, int *object, int *objIndex, int *variable, int *relop, int *status, EN_API_FLOAT_TYPE *value); int DLLEXPORT ENsetpremise(int ruleIndex, int premiseIndex, int logop, int object, int objIndex, int variable, int relop, int status, EN_API_FLOAT_TYPE value); int DLLEXPORT ENsetpremiseindex(int ruleIndex, int premiseIndex, int objIndex); int DLLEXPORT ENsetpremisestatus(int ruleIndex, int premiseIndex, int status); int DLLEXPORT ENsetpremisevalue(int ruleIndex, int premiseIndex, EN_API_FLOAT_TYPE value); int DLLEXPORT ENgetthenaction(int ruleIndex, int actionIndex, int *linkIndex, int *status, EN_API_FLOAT_TYPE *setting); int DLLEXPORT ENsetthenaction(int ruleIndex, int actionIndex, int linkIndex, int status, EN_API_FLOAT_TYPE setting); int DLLEXPORT ENgetelseaction(int ruleIndex, int actionIndex, int *linkIndex, int *status, EN_API_FLOAT_TYPE *setting); int DLLEXPORT ENsetelseaction(int ruleIndex, int actionIndex, int linkIndex, int status, EN_API_FLOAT_TYPE setting); int DLLEXPORT ENsetrulepriority(int index, EN_API_FLOAT_TYPE priority); int DLLEXPORT ENsetinistatus(char*, char*); //***********************************Multi***************************************// /******************************************************************** Project Functions ********************************************************************/ int DLLEXPORT ENepanet22(int projectID, const char* inpFile, const char* rptFile, const char* outFile, void (*pviewprog) (char*)); int DLLEXPORT ENinit22(int projectID, const char* rptFile, const char* outFile, int unitsType, int headlossType); int DLLEXPORT ENopen22(int projectID, const char* inpFile, const char* rptFile, const char* outFile); int DLLEXPORT ENgettitle22(int projectID, char* line1, char* line2, char* line3); int DLLEXPORT ENsettitle22(int projectID, char* line1, char* line2, char* line3); int DLLEXPORT ENsetprojectreport22(int projectID, int report); int DLLEXPORT ENgetcomment22(int projectID, int object, int index, char* comment); int DLLEXPORT ENsetcomment22(int projectID, int object, int index, char* comment); int DLLEXPORT ENgetcount22(int projectID, int object, int* count); int DLLEXPORT ENsaveinpfile22(int projectID, const char* filename); int DLLEXPORT ENclose22(int projectID); /******************************************************************** mmmmm m m Hydraulic Analysis Functions ********************************************************************/ int DLLEXPORT ENsolveH22(int projectID); int DLLEXPORT ENsaveH22(int projectID); int DLLEXPORT ENopenH22(int projectID); int DLLEXPORT ENinitH22(int projectID, int initFlag); int DLLEXPORT ENrunH22(int projectID, long* currentTime); int DLLEXPORT ENnextH22(int projectID, long* tStep); int DLLEXPORT ENcloseH22(int projectID); int DLLEXPORT ENsavehydfile22(int projectID, char* filename); int DLLEXPORT ENusehydfile22(int projectID, char* filename); /******************************************************************** Water Quality Analysis Functions ********************************************************************/ int DLLEXPORT ENsolveQ22(int projectID); int DLLEXPORT ENopenQ22(int projectID); int DLLEXPORT ENinitQ22(int projectID, int saveFlag); int DLLEXPORT ENrunQ22(int projectID, long* currentTime); int DLLEXPORT ENnextQ22(int projectID, long* tStep); int DLLEXPORT ENstepQ22(int projectID, long* timeLeft); int DLLEXPORT ENcloseQ22(int projectID); /******************************************************************** Reporting Functions ********************************************************************/ int DLLEXPORT ENwriteline22(int projectID, char* line); int DLLEXPORT ENreport22(int projectID); int DLLEXPORT ENcopyreport22(int projectID, char* filename); int DLLEXPORT ENclearreport22(int projectID); int DLLEXPORT ENresetreport22(int projectID); int DLLEXPORT ENsetreport22(int projectID, char* format); int DLLEXPORT ENsetstatusreport22(int projectID, int level); int DLLEXPORT ENgetversion22(int projectID, int* version); int DLLEXPORT ENgeterror22(int projectID, int errcode, char* errmsg, int maxLen); int DLLEXPORT ENgetErrorMsg22(int projectID, char* errmsg, int maxLen); int DLLEXPORT ENgetstatistic22(int projectID, int type, EN_API_FLOAT_TYPE* value); int DLLEXPORT ENgetresultindex22(int projectID, int type, int index, int* value); /******************************************************************** Analysis Options Functions ********************************************************************/ int DLLEXPORT ENgetoption22(int projectID, int option, EN_API_FLOAT_TYPE* value); int DLLEXPORT ENsetoption22(int projectID, int option, EN_API_FLOAT_TYPE value); int DLLEXPORT ENgetflowunits22(int projectID, int* units); int DLLEXPORT ENsetflowunits22(int projectID, int units); int DLLEXPORT ENgettimeparam22(int projectID, int param, long* value); int DLLEXPORT ENsettimeparam22(int projectID, int param, long value); int DLLEXPORT ENgetqualinfo22(int projectID, int* qualType, char* chemName, char* chemUnits, int* traceNode); int DLLEXPORT ENgetqualtype22(int projectID, int* qualType, int* traceNode); int DLLEXPORT ENsetqualtype22(int projectID, int qualType, char* chemName, char* chemUnits, char* traceNode); /******************************************************************** Node Functions ********************************************************************/ int DLLEXPORT ENaddnode22(int projectID, char* id, int nodeType, int* index); int DLLEXPORT ENdeletenode22(int projectID, int index, int actionCode); int DLLEXPORT ENgetnodeindex22(int projectID, char* id, int* index); int DLLEXPORT ENgetnodeid22(int projectID, int index, char* id); int DLLEXPORT ENgetnodecomment22(int projectID, int index, char* id); int DLLEXPORT ENsetnodeid22(int projectID, int index, char* newid); int DLLEXPORT ENgetnodetype22(int projectID, int index, int* nodeType); int DLLEXPORT ENgetnodevalue22(int projectID, int index, int property, EN_API_FLOAT_TYPE* value); int DLLEXPORT ENsetnodevalue22(int projectID, int index, int property, EN_API_FLOAT_TYPE value); int DLLEXPORT ENsetjuncdata22(int projectID, int index, EN_API_FLOAT_TYPE elev, EN_API_FLOAT_TYPE dmnd, char* dmndpat); int DLLEXPORT ENsettankdata22(int projectID, int index, EN_API_FLOAT_TYPE elev, EN_API_FLOAT_TYPE initlvl, EN_API_FLOAT_TYPE minlvl, EN_API_FLOAT_TYPE maxlvl, EN_API_FLOAT_TYPE diam, EN_API_FLOAT_TYPE minvol, char* volcurve); int DLLEXPORT ENgetcoord22(int projectID, int index, double* x, double* y); int DLLEXPORT ENsetcoord22(int projectID, int index, double x, double y); /******************************************************************** Nodal Demand Functions ********************************************************************/ int DLLEXPORT ENgetdemandmodel22(int projectID, int* model, EN_API_FLOAT_TYPE* pmin, EN_API_FLOAT_TYPE* preq, EN_API_FLOAT_TYPE* pexp); int DLLEXPORT ENsetdemandmodel22(int projectID, int model, EN_API_FLOAT_TYPE pmin, EN_API_FLOAT_TYPE preq, EN_API_FLOAT_TYPE pexp); int DLLEXPORT ENadddemand22(int projectID, int nodeIndex, EN_API_FLOAT_TYPE baseDemand, char* demandPattern, char* demandName); int DLLEXPORT ENdeletedemand22(int projectID, int nodeIndex, int demandIndex); int DLLEXPORT ENgetnumdemands22(int projectID, int nodeIndex, int* numDemands); int DLLEXPORT ENgetdemandindex22(int projectID, int nodeIndex, char* demandName, int* demandIndex); int DLLEXPORT ENgetbasedemand22(int projectID, int nodeIndex, int demandIndex, EN_API_FLOAT_TYPE* baseDemand); int DLLEXPORT ENsetbasedemand22(int projectID, int nodeIndex, int demandIndex, EN_API_FLOAT_TYPE baseDemand); int DLLEXPORT ENgetdemandpattern22(int projectID, int nodeIndex, int demandIndex, int* patIndex); int DLLEXPORT ENsetdemandpattern22(int projectID, int nodeIndex, int demandIndex, int patIndex); int DLLEXPORT ENgetdemandname22(int projectID, int nodeIndex, int demandIndex, char* demandName); int DLLEXPORT ENsetdemandname22(int projectID, int nodeIndex, int demandIndex, char* demandName); int DLLEXPORT ENgetTotalDemand22(int projectID, int p, double *value); /******************************************************************** Link Functions ********************************************************************/ int DLLEXPORT ENaddlink22(int projectID, char* id, int linkType, char* fromNode, char* toNode, int* index); int DLLEXPORT ENdeletelink22(int projectID, int index, int actionCode); int DLLEXPORT ENgetlinkindex22(int projectID, char* id, int* index); int DLLEXPORT ENgetlinkid22(int projectID, int index, char* id); int DLLEXPORT ENgetlinkcomment22(int projectID, int index, char* id); int DLLEXPORT ENsetlinkid22(int projectID, int index, char* newid); int DLLEXPORT ENgetlinktype22(int projectID, int index, int* linkType); int DLLEXPORT ENsetlinktype22(int projectID, int* index, int linkType, int actionCode); int DLLEXPORT ENgetlinknodes22(int projectID, int index, int* node1, int* node2); int DLLEXPORT ENsetlinknodes22(int projectID, int index, int node1, int node2); int DLLEXPORT ENgetlinkvalue22(int projectID, int index, int property, EN_API_FLOAT_TYPE* value); int DLLEXPORT ENsetlinkvalue22(int projectID, int index, int property, EN_API_FLOAT_TYPE value); int DLLEXPORT ENsetpipedata22(int projectID, int index, EN_API_FLOAT_TYPE length, EN_API_FLOAT_TYPE diam, EN_API_FLOAT_TYPE rough, EN_API_FLOAT_TYPE mloss); int DLLEXPORT ENgetvertexcount22(int projectID, int index, int* count); int DLLEXPORT ENgetvertex22(int projectID, int index, int vertex, double* x, double* y); int DLLEXPORT ENsetvertices22(int projectID, int index, double* x, double* y, int count); /******************************************************************** Pump Functions ********************************************************************/ int DLLEXPORT ENgetpumptype22(int projectID, int linkIndex, int* pumpType); int DLLEXPORT ENgetheadcurveindex22(int projectID, int linkIndex, int* curveIndex); int DLLEXPORT ENsetheadcurveindex22(int projectID, int linkIndex, int curveIndex); /******************************************************************** Time Pattern Functions ********************************************************************/ int DLLEXPORT ENaddpattern22(int projectID, char* id); int DLLEXPORT ENdeletepattern22(int projectID, int index); int DLLEXPORT ENgetpatternindex22(int projectID, char* id, int* index); int DLLEXPORT ENgetpatternid22(int projectID, int index, char* id); int DLLEXPORT ENsetpatternid22(int projectID, int index, char* id); int DLLEXPORT ENgetpatternlen22(int projectID, int index, int* len); int DLLEXPORT ENgetpatternvalue22(int projectID, int index, int period, EN_API_FLOAT_TYPE* value); int DLLEXPORT ENsetpatternvalue22(int projectID, int index, int period, EN_API_FLOAT_TYPE value); int DLLEXPORT ENgetaveragepatternvalue22(int projectID, int index, EN_API_FLOAT_TYPE* value); int DLLEXPORT ENsetpattern22(int projectID, int index, EN_API_FLOAT_TYPE* values, int len); /******************************************************************** Data Curve Functions ********************************************************************/ int DLLEXPORT ENaddcurve22(int projectID, char* id); int DLLEXPORT ENdeletecurve22(int projectID, int index); int DLLEXPORT ENgetcurveindex22(int projectID, char* id, int* index); int DLLEXPORT ENgetcurveid22(int projectID, int index, char* id); int DLLEXPORT ENsetcurveid22(int projectID, int index, char* id); int DLLEXPORT ENgetcurvelen22(int projectID, int index, int* len); int DLLEXPORT ENgetcurvetype22(int projectID, int index, int* type); int DLLEXPORT ENgetcurvevalue22(int projectID, int curveIndex, int pointIndex, EN_API_FLOAT_TYPE* x, EN_API_FLOAT_TYPE* y); int DLLEXPORT ENsetcurvevalue22(int projectID, int curveIndex, int pointIndex, EN_API_FLOAT_TYPE x, EN_API_FLOAT_TYPE y); int DLLEXPORT ENgetcurve22(int projectID, int index, char* id, int* nPoints, EN_API_FLOAT_TYPE* xValues, EN_API_FLOAT_TYPE* yValues); int DLLEXPORT ENsetcurve22(int projectID, int index, EN_API_FLOAT_TYPE* xValues, EN_API_FLOAT_TYPE* yValues, int nPoints); /******************************************************************** Simple Controls Functions ********************************************************************/ int DLLEXPORT ENaddcontrol22(int projectID, int type, int linkIndex, EN_API_FLOAT_TYPE setting, int nodeIndex, EN_API_FLOAT_TYPE level, int* index); int DLLEXPORT ENdeletecontrol22(int projectID, int index); int DLLEXPORT ENgetcontrol22(int projectID, int index, int* type, int* linkIndex, EN_API_FLOAT_TYPE* setting, int* nodeIndex, EN_API_FLOAT_TYPE* level); int DLLEXPORT ENsetcontrol22(int projectID, int index, int type, int linkIndex, EN_API_FLOAT_TYPE setting, int nodeIndex, EN_API_FLOAT_TYPE level); /******************************************************************** Rule-Based Controls Functions ********************************************************************/ int DLLEXPORT ENaddrule22(int projectID, char* rule); int DLLEXPORT ENdeleterule22(int projectID, int index); int DLLEXPORT ENgetrule22(int projectID, int index, int* nPremises, int* nThenActions, int* nElseActions, EN_API_FLOAT_TYPE* priority); int DLLEXPORT ENgetruleID22(int projectID, int index, char* id); int DLLEXPORT ENgetpremise22(int projectID, int ruleIndex, int premiseIndex, int* logop, int* object, int* objIndex, int* variable, int* relop, int* status, EN_API_FLOAT_TYPE* value); int DLLEXPORT ENsetpremise22(int projectID, int ruleIndex, int premiseIndex, int logop, int object, int objIndex, int variable, int relop, int status, EN_API_FLOAT_TYPE value); int DLLEXPORT ENsetpremiseindex22(int projectID, int ruleIndex, int premiseIndex, int objIndex); int DLLEXPORT ENsetpremisestatus22(int projectID, int ruleIndex, int premiseIndex, int status); int DLLEXPORT ENsetpremisevalue22(int projectID, int ruleIndex, int premiseIndex, EN_API_FLOAT_TYPE value); int DLLEXPORT ENgetthenaction22(int projectID, int ruleIndex, int actionIndex, int* linkIndex, int* status, EN_API_FLOAT_TYPE* setting); int DLLEXPORT ENsetthenaction22(int projectID, int ruleIndex, int actionIndex, int linkIndex, int status, EN_API_FLOAT_TYPE setting); int DLLEXPORT ENgetelseaction22(int projectID, int ruleIndex, int actionIndex, int* linkIndex, int* status, EN_API_FLOAT_TYPE* setting); int DLLEXPORT ENsetelseaction22(int projectID, int ruleIndex, int actionIndex, int linkIndex, int status, EN_API_FLOAT_TYPE setting); int DLLEXPORT ENsetrulepriority22(int projectID, int index, EN_API_FLOAT_TYPE priority); int DLLEXPORT ENsetinistatus22(int projectID, char*, char*); #if defined(__cplusplus) } #endif #endif //EPANET2_H