adds api support for enabling/disabling controls and rules
This commit is contained in:
74
src/epanet.c
74
src/epanet.c
@@ -5259,6 +5259,42 @@ int DLLEXPORT EN_setcontrol(EN_Project p, int index, int type, int linkIndex,
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int DLLEXPORT EN_getcontrolenabled(EN_Project p, int index, int *enabled)
|
||||
{
|
||||
Network *net = &p->network;
|
||||
Scontrol *control;
|
||||
|
||||
// Check for valid arguments
|
||||
if (!p->Openflag)
|
||||
return 102;
|
||||
if (index <= 0 || index > net->Ncontrols)
|
||||
return 241;
|
||||
|
||||
control = &net->Control[index];
|
||||
*enabled = control->isEnabled;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int DLLEXPORT EN_setcontrolenabled(EN_Project p, int index, int enabled)
|
||||
{
|
||||
Network *net = &p->network;
|
||||
Scontrol *control;
|
||||
|
||||
// Check for valid arguments
|
||||
if (enabled != ENABLED && enabled != DISABLED)
|
||||
return 202; // illegal numeric value
|
||||
if (!p->Openflag)
|
||||
return 102;
|
||||
if (index <= 0 || index > net->Ncontrols)
|
||||
return 241;
|
||||
|
||||
control = &net->Control[index];
|
||||
control->isEnabled = enabled;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/********************************************************************
|
||||
|
||||
Rule-Based Controls Functions
|
||||
@@ -5681,3 +5717,41 @@ int DLLEXPORT EN_setrulepriority(EN_Project p, int index, double priority)
|
||||
p->network.Rule[index].priority = priority;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int DLLEXPORT EN_getruleenabled(EN_Project p, int index, int *enabled)
|
||||
{
|
||||
Network *net = &p->network;
|
||||
Srule *rule;
|
||||
|
||||
// Check for valid arguments
|
||||
if (!p->Openflag)
|
||||
return 102;
|
||||
if (index <= 0 || index > net->Nrules)
|
||||
return 241;
|
||||
|
||||
rule = &net->Rule[index];
|
||||
*enabled = rule->isEnabled;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int DLLEXPORT EN_setruleenabled(EN_Project p, int index, int enabled)
|
||||
{
|
||||
Network *net = &p->network;
|
||||
Srule *rule;
|
||||
|
||||
// Check for valid arguments
|
||||
if (enabled != ENABLED && enabled != DISABLED)
|
||||
return 202; // illegal numeric value
|
||||
if (!p->Openflag)
|
||||
return 102;
|
||||
if (index <= 0 || index > net->Nrules)
|
||||
return 241;
|
||||
|
||||
rule = &net->Rule[index];
|
||||
rule->isEnabled = enabled;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user