From 886a5cf266f5a5ecf2eaa3e502330689bb6ea3dc Mon Sep 17 00:00:00 2001 From: james uber Date: Wed, 8 Sep 2021 10:49:57 -0400 Subject: [PATCH 1/2] Bugfix for En_getaveragepatternvalue() Fixes a bug where 0 was not considered to be a valid pattern index. --- src/epanet.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/epanet.c b/src/epanet.c index 3a20c57..7cb2b0b 100644 --- a/src/epanet.c +++ b/src/epanet.c @@ -4525,7 +4525,7 @@ int DLLEXPORT EN_getaveragepatternvalue(EN_Project p, int index, double *value) *value = 0.0; if (!p->Openflag) return 102; - if (index < 1 || index > net->Npats) return 205; + if (index < 0 || index > net->Npats) return 205; for (i = 0; i < Pattern[index].Length; i++) { *value += (double)Pattern[index].F[i]; From 3be813facb21fad593fa18f517ab4ed4e10cc804 Mon Sep 17 00:00:00 2001 From: james uber Date: Thu, 23 Sep 2021 11:04:19 -0400 Subject: [PATCH 2/2] Return MISSING as initial valve setting If the initial setting is indeed MISSING, that means the status of the valve has been set to OPEN or CLOSED, and the valve is non-functional (until the setting is changed by a control). This change is required to be able to accurately see the initial setting, because the status does not distinguish between open and active valves. --- src/epanet.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/epanet.c b/src/epanet.c index 7cb2b0b..2bee08a 100644 --- a/src/epanet.c +++ b/src/epanet.c @@ -3635,8 +3635,7 @@ int DLLEXPORT EN_getlinkvalue(EN_Project p, int index, int property, double *val { return EN_getlinkvalue(p, index, EN_ROUGHNESS, value); } - if (Link[index].Kc == MISSING) v = 0.0; - else v = Link[index].Kc; + v = Link[index].Kc; switch (Link[index].Type) { case PRV: @@ -3649,6 +3648,9 @@ int DLLEXPORT EN_getlinkvalue(EN_Project p, int index, int property, double *val default: break; } + if (Link[index].Kc == MISSING) { + v = MISSING; + } break; case EN_KBULK: