Add APIs to get\set demand categories names
This commit is contained in:
@@ -226,6 +226,9 @@ Public Const EN_G_CURVE = 4 ' General\default curve
|
|||||||
Declare Function ENgetbasedemand Lib "epanet2.dll" (ByVal index As Long, ByVal DemandIndex As Long, value As Single) As Long
|
Declare Function ENgetbasedemand Lib "epanet2.dll" (ByVal index As Long, ByVal DemandIndex As Long, value As Single) As Long
|
||||||
Declare Function ENgetdemandpattern Lib "epanet2.dll" (ByVal index As Long, ByVal DemandIndex As Long, PatIndex As Long) As Long
|
Declare Function ENgetdemandpattern Lib "epanet2.dll" (ByVal index As Long, ByVal DemandIndex As Long, PatIndex As Long) As Long
|
||||||
|
|
||||||
|
Declare Function ENgetdemandname Lib "epanet2.dll" (ByVal index As Long, ByVal DemandIndex As Long, ByVal demandName As String) As Long
|
||||||
|
Declare Function ENsetdemandname Lib "epanet2.dll" (ByVal nodeIndex As Long, ByVal DemandIndex As Long, ByVal demandName As String) As Long
|
||||||
|
|
||||||
Declare Function ENgetlinkindex Lib "epanet2.dll" (ByVal id As String, index As Long) As Long
|
Declare Function ENgetlinkindex Lib "epanet2.dll" (ByVal id As String, index As Long) As Long
|
||||||
Declare Function ENgetlinkid Lib "epanet2.dll" (ByVal index As Long, ByVal id As String) As Long
|
Declare Function ENgetlinkid Lib "epanet2.dll" (ByVal index As Long, ByVal id As String) As Long
|
||||||
Declare Function ENgetlinktype Lib "epanet2.dll" (ByVal index As Long, code As Long) As Long
|
Declare Function ENgetlinktype Lib "epanet2.dll" (ByVal index As Long, code As Long) As Long
|
||||||
|
|||||||
@@ -937,6 +937,26 @@ extern "C" {
|
|||||||
*/
|
*/
|
||||||
int DLLEXPORT ENgetqualinfo(int *qualcode, char *chemname, char *chemunits, int *tracenode);
|
int DLLEXPORT ENgetqualinfo(int *qualcode, char *chemname, char *chemunits, int *tracenode);
|
||||||
|
|
||||||
|
/**
|
||||||
|
@brief Sets the node's demand name for a category.
|
||||||
|
@param nodeIndex The index of a node.
|
||||||
|
@param demandIdx The index of a demand category.
|
||||||
|
@param demandName The demand name for the selected category.
|
||||||
|
@return Error code.
|
||||||
|
@see ENgetdemandname
|
||||||
|
*/
|
||||||
|
int DLLEXPORT ENsetdemandname(int nodeIndex, int demandIdx, char *demandName);
|
||||||
|
|
||||||
|
/**
|
||||||
|
@brief Retrieves the node's demand name for a category.
|
||||||
|
@param nodeIndex The index of a node.
|
||||||
|
@param demandIdx The index of a demand category.
|
||||||
|
@param demandName The demand name for the selected category.
|
||||||
|
@return Error code.
|
||||||
|
@see ENsetdemandname
|
||||||
|
*/
|
||||||
|
int DLLEXPORT ENgetdemandname(int nodeIndex, int demandIdx, char *demandName);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@brief Sets the node's base demand for a category.
|
@brief Sets the node's base demand for a category.
|
||||||
@param nodeIndex The index of a node.
|
@param nodeIndex The index of a node.
|
||||||
@@ -1287,12 +1307,14 @@ extern "C" {
|
|||||||
|
|
||||||
int DLLEXPORT EN_getdemandmodel(EN_ProjectHandle ph, int *type, EN_API_FLOAT_TYPE *pmin,
|
int DLLEXPORT EN_getdemandmodel(EN_ProjectHandle ph, int *type, EN_API_FLOAT_TYPE *pmin,
|
||||||
EN_API_FLOAT_TYPE *preq, EN_API_FLOAT_TYPE *pexp);
|
EN_API_FLOAT_TYPE *preq, EN_API_FLOAT_TYPE *pexp);
|
||||||
int DLLEXPORT EN_setdemandmodel(EN_ProjectHandle ph, int type, EN_API_FLOAT_TYPE pmin,
|
int DLLEXPORT EN_setdemandmodel(EN_ProjectHandle ph, int type, EN_API_FLOAT_TYPE pmin,
|
||||||
EN_API_FLOAT_TYPE preq, EN_API_FLOAT_TYPE pexp);
|
EN_API_FLOAT_TYPE preq, EN_API_FLOAT_TYPE pexp);
|
||||||
|
|
||||||
|
int DLLEXPORT EN_setdemandname(EN_ProjectHandle ph, int nodeIndex, int demandIdx, char *demandName);
|
||||||
|
int DLLEXPORT EN_getdemandname(EN_ProjectHandle ph, int nodeIndex, int demandIdx, char *demandName);
|
||||||
int DLLEXPORT EN_getqualinfo(EN_ProjectHandle ph, int *qualcode, char *chemname, char *chemunits, int *tracenode);
|
int DLLEXPORT EN_getqualinfo(EN_ProjectHandle ph, int *qualcode, char *chemname, char *chemunits, int *tracenode);
|
||||||
int DLLEXPORT EN_setbasedemand(EN_ProjectHandle ph, int nodeIndex, int demandIdx, EN_API_FLOAT_TYPE baseDemand);
|
int DLLEXPORT EN_setbasedemand(EN_ProjectHandle ph, int nodeIndex, int demandIdx, EN_API_FLOAT_TYPE baseDemand);
|
||||||
int DLLEXPORT EN_setdemandpattern(EN_ProjectHandle ph, int nodeIndex, int demandIdx, int patIndex);
|
int DLLEXPORT EN_setdemandpattern(EN_ProjectHandle ph, int nodeIndex, int demandIdx, int patIndex);
|
||||||
int DLLEXPORT EN_getcurveindex(EN_ProjectHandle ph, char *id, int *index);
|
int DLLEXPORT EN_getcurveindex(EN_ProjectHandle ph, char *id, int *index);
|
||||||
int DLLEXPORT EN_getcurveid(EN_ProjectHandle ph, int index, char *id);
|
int DLLEXPORT EN_getcurveid(EN_ProjectHandle ph, int index, char *id);
|
||||||
int DLLEXPORT EN_getcurvelen(EN_ProjectHandle ph, int index, int *len);
|
int DLLEXPORT EN_getcurvelen(EN_ProjectHandle ph, int index, int *len);
|
||||||
|
|||||||
58
src/epanet.c
58
src/epanet.c
@@ -530,6 +530,15 @@ int DLLEXPORT ENgetaveragepatternvalue(int index, EN_API_FLOAT_TYPE *value) {
|
|||||||
return EN_getaveragepatternvalue(_defaultModel, index, value);
|
return EN_getaveragepatternvalue(_defaultModel, index, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int DLLEXPORT ENgetdemandname(int nodeIndex, int demandIdx,
|
||||||
|
char *demandName) {
|
||||||
|
return EN_getdemandname(_defaultModel, nodeIndex, demandIdx, demandName);
|
||||||
|
}
|
||||||
|
|
||||||
|
int DLLEXPORT ENsetdemandname(int nodeIndex, int demandIdx,
|
||||||
|
char *demandName) {
|
||||||
|
return EN_setdemandname(_defaultModel, nodeIndex, demandIdx, demandName);
|
||||||
|
}
|
||||||
|
|
||||||
int DLLEXPORT ENgetrule(int index, int *nPremises, int *nTrueActions,
|
int DLLEXPORT ENgetrule(int index, int *nPremises, int *nTrueActions,
|
||||||
int *nFalseActions, EN_API_FLOAT_TYPE *priority) {
|
int *nFalseActions, EN_API_FLOAT_TYPE *priority) {
|
||||||
@@ -4762,6 +4771,55 @@ int DLLEXPORT EN_setbasedemand(EN_ProjectHandle ph, int nodeIndex, int demandIdx
|
|||||||
return set_error(pr->error_handle, 0);
|
return set_error(pr->error_handle, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int DLLEXPORT EN_getdemandname(EN_ProjectHandle ph, int nodeIndex, int demandIdx, char *demandName) {
|
||||||
|
Pdemand d;
|
||||||
|
int n = 1;
|
||||||
|
|
||||||
|
EN_Project *p = (EN_Project*)ph;
|
||||||
|
|
||||||
|
strcpy(demandName, "");
|
||||||
|
/* Check for valid arguments */
|
||||||
|
if (!p->Openflag)
|
||||||
|
return set_error(p->error_handle, 102);
|
||||||
|
if (nodeIndex <= 0 || nodeIndex > p->network.Njuncs)
|
||||||
|
return set_error(p->error_handle, 203);
|
||||||
|
for (d = p->network.Node[nodeIndex].D; n < demandIdx && d->next != NULL; d = d->next) {
|
||||||
|
n++;
|
||||||
|
}
|
||||||
|
if (n != demandIdx) {
|
||||||
|
return set_error(p->error_handle, 253);
|
||||||
|
}
|
||||||
|
strcpy(demandName, d->Name);
|
||||||
|
return set_error(p->error_handle, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
int DLLEXPORT EN_setdemandname(EN_ProjectHandle ph, int nodeIndex, int demandIdx, char *demandName) {
|
||||||
|
|
||||||
|
EN_Project *pr = (EN_Project*)ph;
|
||||||
|
|
||||||
|
EN_Network *net = &pr->network;
|
||||||
|
Snode *Node = net->Node;
|
||||||
|
|
||||||
|
const int Nnodes = net->Nnodes;
|
||||||
|
const int Njuncs = net->Njuncs;
|
||||||
|
|
||||||
|
double *Ucf = pr->Ucf;
|
||||||
|
|
||||||
|
Pdemand d;
|
||||||
|
int n = 1;
|
||||||
|
/* Check for valid arguments */
|
||||||
|
if (!pr->Openflag)
|
||||||
|
return set_error(pr->error_handle, 102);
|
||||||
|
if (nodeIndex <= 0 || nodeIndex > Njuncs)
|
||||||
|
return set_error(pr->error_handle, 203);
|
||||||
|
for (d = Node[nodeIndex].D; n < demandIdx && d->next != NULL; d = d->next)
|
||||||
|
n++;
|
||||||
|
if (n != demandIdx)
|
||||||
|
return set_error(pr->error_handle, 253);
|
||||||
|
strncpy(d->Name, demandName, MAXMSG);
|
||||||
|
return set_error(pr->error_handle, 0);
|
||||||
|
}
|
||||||
|
|
||||||
int DLLEXPORT EN_setdemandpattern(EN_ProjectHandle ph, int nodeIndex, int demandIdx, int patIndex) {
|
int DLLEXPORT EN_setdemandpattern(EN_ProjectHandle ph, int nodeIndex, int demandIdx, int patIndex) {
|
||||||
|
|
||||||
EN_Project *pr = (EN_Project*)ph;
|
EN_Project *pr = (EN_Project*)ph;
|
||||||
|
|||||||
@@ -100,3 +100,5 @@ EXPORTS
|
|||||||
ENsetdemandmodel = _ENsetdemandmodel@16
|
ENsetdemandmodel = _ENsetdemandmodel@16
|
||||||
ENgetcurvetype = _ENgetcurvetype@8
|
ENgetcurvetype = _ENgetcurvetype@8
|
||||||
ENinit = _ENinit@16
|
ENinit = _ENinit@16
|
||||||
|
ENgetdemandname = _ENgetdemandname@12
|
||||||
|
ENsetdemandname = _ENsetdemandname@12
|
||||||
Reference in New Issue
Block a user