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 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 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 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
|
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 linkIndex The index of the pump element
|
||||||
@param[out] outType The integer-typed pump curve type signifier (output parameter)
|
@param[out] outType The integer-typed pump curve type signifier (output parameter)
|
||||||
@return Error code
|
@return Error code
|
||||||
@see EN_CurveType
|
@see EN_PumpType
|
||||||
*/
|
*/
|
||||||
int DLLEXPORT ENgetpumptype(int linkIndex, int *outType);
|
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"
|
@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
|
@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_getheadcurveindex(EN_Project *p, int pumpIndex, int *curveIndex);
|
||||||
int DLLEXPORT EN_setheadcurveindex(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_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_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_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);
|
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);
|
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) {
|
int DLLEXPORT ENgetnumdemands(int nodeIndex, int *numDemands) {
|
||||||
return EN_getnumdemands(_defaultModel, nodeIndex, 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->Q0 /= Ucf[FLOW];
|
||||||
pump->Qmax /= Ucf[FLOW];
|
pump->Qmax /= Ucf[FLOW];
|
||||||
pump->Hmax /= Ucf[HEAD];
|
pump->Hmax /= Ucf[HEAD];
|
||||||
|
|
||||||
|
p->network.Curve[curveindex].Type = P_CURVE;
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3370,6 +3375,18 @@ int DLLEXPORT EN_getpumptype(EN_Project *p, int index, int *type) {
|
|||||||
return (0);
|
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
|
Functions for opening files
|
||||||
|
|||||||
@@ -92,4 +92,5 @@ EXPORTS
|
|||||||
ENaddlink = _ENaddlink@16
|
ENaddlink = _ENaddlink@16
|
||||||
ENdeletelink = _ENdeletelink@4
|
ENdeletelink = _ENdeletelink@4
|
||||||
ENdeletenode = _ENdeletenode@4
|
ENdeletenode = _ENdeletenode@4
|
||||||
ENsetlinktype = _ENsetlinktype@8
|
ENsetlinktype = _ENsetlinktype@8
|
||||||
|
ENgetcurvetype = _ENgetcurvetype@8
|
||||||
Reference in New Issue
Block a user