From 5d241e2fbd8d261a8c2822d06875c8fa20ac9170 Mon Sep 17 00:00:00 2001 From: Elad Salomons Date: Mon, 3 Sep 2018 08:18:42 +0300 Subject: [PATCH] Create headers for EN_addcontrol --- include/epanet2.bas | 1 + include/epanet2.h | 15 ++++++++++++++- src/epanet.c | 17 +++++++++++++++++ win_build/WinSDK/epanet2.def | 1 + 4 files changed, 33 insertions(+), 1 deletion(-) diff --git a/include/epanet2.bas b/include/epanet2.bas index e605c62..685944c 100644 --- a/include/epanet2.bas +++ b/include/epanet2.bas @@ -242,6 +242,7 @@ Public Const EN_G_CURVE = 4 ' General\default curve Declare Function ENsetdemandmodel Lib "epanet2.dll" (ByVal mtype As Long, ByVal pmin As Single, ByVal preq As Single, ByVal pexp As Single) As Long Declare Function ENsetflowunits Lib "epanet2.dll" (ByVal code As Long) As Long + Declare Function ENaddcontrol Lib "epanet2.dll" (Cindex As Long, ByVal Ctype As Long, ByVal Lindex As Long, ByVal setting As Single, ByVal Nindex As Long, ByVal Level As Single) As Long Declare Function ENsetcontrol Lib "epanet2.dll" (ByVal Cindex As Long, ByVal Ctype As Long, ByVal Lindex As Long, ByVal setting As Single, ByVal Nindex As Long, ByVal Level As Single) As Long Declare Function ENsetnodevalue Lib "epanet2.dll" (ByVal index As Long, ByVal code As Long, ByVal value As Single) As Long Declare Function ENsetlinkvalue Lib "epanet2.dll" (ByVal index As Long, ByVal code As Long, ByVal value As Single) As Long diff --git a/include/epanet2.h b/include/epanet2.h index f7ca1a9..2fe0185 100644 --- a/include/epanet2.h +++ b/include/epanet2.h @@ -814,7 +814,19 @@ extern "C" { @return Error code. */ int DLLEXPORT ENgetversion(int *version); - + + /** + @brief Specify parameters to add a new simple control + @param[out] cindex The index of the new control. First control is index 1. + @param ctype The type code to set for this control. + @param lindex The index of a link to control. + @param setting The control setting applied to the link. + @param nindex The index of a node used to control the link, or 0 for TIMER / TIMEOFDAY control. + @param level control point (tank level, junction pressure, or time in seconds). + @return Error code. + */ + int DLLEXPORT ENaddcontrol(int *cindex, int ctype, int lindex, EN_API_FLOAT_TYPE setting, int nindex, EN_API_FLOAT_TYPE level); + /** @brief Specify parameters to define a simple control @param cindex The index of the control to edit. First control is index 1. @@ -1256,6 +1268,7 @@ extern "C" { int DLLEXPORT EN_getversion(int *version); + int DLLEXPORT EN_addcontrol(EN_ProjectHandle ph, int *cindex, int ctype, int lindex, EN_API_FLOAT_TYPE setting, int nindex, EN_API_FLOAT_TYPE level); int DLLEXPORT EN_setcontrol(EN_ProjectHandle ph, int cindex, int ctype, int lindex, EN_API_FLOAT_TYPE setting, int nindex, EN_API_FLOAT_TYPE level); int DLLEXPORT EN_setnodevalue(EN_ProjectHandle ph, int index, int code, EN_API_FLOAT_TYPE v); int DLLEXPORT EN_setlinkvalue(EN_ProjectHandle ph, int index, int code, EN_API_FLOAT_TYPE v); diff --git a/src/epanet.c b/src/epanet.c index ca3495a..ea55d1e 100644 --- a/src/epanet.c +++ b/src/epanet.c @@ -403,6 +403,13 @@ int DLLEXPORT ENsetcontrol(int cindex, int ctype, int lindex, level); } +int DLLEXPORT ENaddcontrol(int *cindex, int ctype, int lindex, + EN_API_FLOAT_TYPE setting, int nindex, + EN_API_FLOAT_TYPE level) { + return EN_addcontrol(_defaultModel, cindex, ctype, lindex, setting, nindex, + level); +} + int DLLEXPORT ENsetnodevalue(int index, int code, EN_API_FLOAT_TYPE v) { return EN_setnodevalue(_defaultModel, index, code, v); } @@ -2572,6 +2579,16 @@ int DLLEXPORT EN_getcurve(EN_ProjectHandle ph, int curveIndex, char *id, int *nV ---------------------------------------------------------------- */ +int DLLEXPORT EN_addcontrol(EN_ProjectHandle ph, int *cindex, int ctype, int lindex, + EN_API_FLOAT_TYPE setting, int nindex, + EN_API_FLOAT_TYPE level) { + + EN_Project *p = (EN_Project*)ph; + + + return set_error(p->error_handle, 0); +} + int DLLEXPORT EN_setcontrol(EN_ProjectHandle ph, int cindex, int ctype, int lindex, EN_API_FLOAT_TYPE setting, int nindex, EN_API_FLOAT_TYPE level) { diff --git a/win_build/WinSDK/epanet2.def b/win_build/WinSDK/epanet2.def index a330677..398b2f1 100644 --- a/win_build/WinSDK/epanet2.def +++ b/win_build/WinSDK/epanet2.def @@ -41,6 +41,7 @@ EXPORTS ENsaveH = _ENsaveH@0 ENsavehydfile = _ENsavehydfile@4 ENsaveinpfile = _ENsaveinpfile@4 + ENaddcontrol = _ENaddcontrol@24 ENsetcontrol = _ENsetcontrol@24 ENsetlinkvalue = _ENsetlinkvalue@12 ENsetnodevalue = _ENsetnodevalue@12