Added ENgetcurvetype API
Also update curve type on EN_setheadcurveindex. Co-Authored-By: milad ghiami <milad-ghiami@users.noreply.github.com>
This commit is contained in:
@@ -229,6 +229,7 @@ Public Const EN_G_CURVE = 4 ' General\default curve
|
||||
Declare Function ENgetcurve Lib "epanet2.dll" (ByVal curveIndex As Long, ByVal CurveID As String, nValues As Long, xValues As Any, yValues As Any) As Long
|
||||
Declare Function ENgetheadcurveindex Lib "epanet2.dll" (ByVal pumpIndex As Long, curveIndex As Long) As Long
|
||||
Declare Function ENgetpumptype Lib "epanet2.dll" (ByVal index As Long, PumpType As Long) As Long
|
||||
Declare Function ENgetcurvetype Lib "epanet2.dll" (ByVal curveindex As Long, CurveType As Long) As Long
|
||||
|
||||
Declare Function ENgetversion Lib "epanet2.dll" (value As Long) As Long
|
||||
|
||||
|
||||
@@ -763,10 +763,19 @@ extern "C" {
|
||||
@param linkIndex The index of the pump element
|
||||
@param[out] outType The integer-typed pump curve type signifier (output parameter)
|
||||
@return Error code
|
||||
@see EN_CurveType
|
||||
@see EN_PumpType
|
||||
*/
|
||||
int DLLEXPORT ENgetpumptype(int linkIndex, int *outType);
|
||||
|
||||
|
||||
/**
|
||||
@brief Get the type of a curve
|
||||
@param curveIndex The index of the curve element
|
||||
@param[out] outType The integer-typed curve curve type signifier (output parameter)
|
||||
@return Error code
|
||||
@see EN_CurveType
|
||||
*/
|
||||
int DLLEXPORT ENgetcurvetype(int curveIndex, int *outType);
|
||||
|
||||
/**
|
||||
@brief Get the version number. This number is to be interpreted with implied decimals, i.e., "20100" == "2(.)01(.)00"
|
||||
@param[out] version The version of EPANET
|
||||
@@ -1189,6 +1198,7 @@ extern "C" {
|
||||
int DLLEXPORT EN_getheadcurveindex(EN_Project *p, int pumpIndex, int *curveIndex);
|
||||
int DLLEXPORT EN_setheadcurveindex(EN_Project *p, int pumpIndex, int curveIndex);
|
||||
int DLLEXPORT EN_getpumptype(EN_Project *p, int linkIndex, int *outType);
|
||||
int DLLEXPORT EN_getcurvetype(EN_Project *p, int curveIndex, int *outType);
|
||||
int DLLEXPORT EN_getversion(int *version);
|
||||
int DLLEXPORT EN_setcontrol(EN_Project *p, int cindex, int ctype, int lindex, EN_API_FLOAT_TYPE setting, int nindex, EN_API_FLOAT_TYPE level);
|
||||
int DLLEXPORT EN_setnodevalue(EN_Project *p, int index, int code, EN_API_FLOAT_TYPE v);
|
||||
|
||||
19
src/epanet.c
19
src/epanet.c
@@ -435,6 +435,10 @@ int DLLEXPORT ENgetpumptype(int index, int *type) {
|
||||
return EN_getpumptype(_defaultModel, index, type);
|
||||
}
|
||||
|
||||
int DLLEXPORT ENgetcurvetype(int curveindex, int *type) {
|
||||
return EN_getcurvetype(_defaultModel, curveindex, type);
|
||||
}
|
||||
|
||||
int DLLEXPORT ENgetnumdemands(int nodeIndex, int *numDemands) {
|
||||
return EN_getnumdemands(_defaultModel, nodeIndex, numDemands);
|
||||
}
|
||||
@@ -3349,7 +3353,8 @@ int DLLEXPORT EN_setheadcurveindex(EN_Project *p, int index, int curveindex) {
|
||||
pump->Q0 /= Ucf[FLOW];
|
||||
pump->Qmax /= Ucf[FLOW];
|
||||
pump->Hmax /= Ucf[HEAD];
|
||||
|
||||
|
||||
p->network.Curve[curveindex].Type = P_CURVE;
|
||||
return (0);
|
||||
}
|
||||
|
||||
@@ -3370,6 +3375,18 @@ int DLLEXPORT EN_getpumptype(EN_Project *p, int index, int *type) {
|
||||
return (0);
|
||||
}
|
||||
|
||||
int DLLEXPORT EN_getcurvetype(EN_Project *p, int curveindex, int *type) {
|
||||
|
||||
EN_Network *net = &p->network;
|
||||
|
||||
if (!p->Openflag)
|
||||
return (102);
|
||||
if (curveindex < 1 || curveindex > net->Ncurves)
|
||||
return (206);
|
||||
*type = net->Curve[curveindex].Type;
|
||||
return (0);
|
||||
}
|
||||
|
||||
/*
|
||||
----------------------------------------------------------------
|
||||
Functions for opening files
|
||||
|
||||
@@ -92,4 +92,5 @@ EXPORTS
|
||||
ENaddlink = _ENaddlink@16
|
||||
ENdeletelink = _ENdeletelink@4
|
||||
ENdeletenode = _ENdeletenode@4
|
||||
ENsetlinktype = _ENsetlinktype@8
|
||||
ENsetlinktype = _ENsetlinktype@8
|
||||
ENgetcurvetype = _ENgetcurvetype@8
|
||||
Reference in New Issue
Block a user