Commit Graph

65 Commits

Author SHA1 Message Date
Elad Salomons
e2df3e87ac Adding support for VB
Also supporting C89 compiler.
2023-01-19 20:45:30 +02:00
Lew Rossman
5b3d75cc0d Updated language binding files added. 2022-08-16 13:13:39 -04:00
Elad Salomons
427fb03fe5 Add comments APIs to VB bas include file 2021-02-24 17:51:29 +02:00
Lew Rossman
67f7d8f76b Merge branch 'dev' into dev_2.3 2020-07-10 14:36:46 -04:00
Elad Salomons
e7ccf5281f Update include files 2020-05-22 21:43:14 +03:00
Elad Salomons
6ddea72ee9 Update epanet2.bas 2020-03-29 10:52:08 +03:00
Lew Rossman
80f9acfe4d Network building enhancements 2020-02-04 10:01:23 -05:00
Lew Rossman
9998466d20 Bug fix for EN_getrule
Fixes possible seg fault condition in EN_getrule. Also defines EN_MISSING as an API constant since it can be assigned internally to several variables that are retrievable by the API.
2019-11-05 10:09:21 -05:00
Lew Rossman
7aadc83ddf Adds link vertex get/set functions to the API 2019-10-29 16:33:40 -04:00
Lew Rossman
b640a8685c Adds EN_getresultindex function to the API
See issue #546 . Also fixes a small bug in project.c.
2019-10-26 11:25:09 -04:00
Lew Rossman
a89f339525 PDA fixes 2019-07-22 09:50:41 -04:00
Elad Salomons
5fafb4c314 Updating VB include files 2019-06-19 16:28:47 +03:00
Lew Rossman
365ab00dcb Refactors the API's demand editing functions 2019-05-09 10:26:40 -04:00
Lew Rossman
1583bea154 Return object index from EN_addnode and EN_addlink (issue #432)
Adds an output argument to EN_addnode and EN_addlink that returns the index of the newly added object.
Also refactors the validity check on object ID names.
2019-04-18 07:00:07 -04:00
Lew Rossman
3e733f5a2a Add more analysis options to the API (issue #425) 2019-04-03 21:17:28 -04:00
Lew Rossman
83ffc1cfc7 Removed the EN_DEFDEMANDPAT option
See issue #429. Also allowed the EN_HEADLOSSFORM option to be changed if the solver is not active.
2019-04-03 10:25:37 -04:00
Lew Rossman
18f65eb8b0 Replace fixed-sized comment strings with dynamic strings 2019-03-17 19:54:51 -04:00
Lew Rossman
65a6c846b6 Change ENgetcoords & ENsetcoords args. to doubles 2019-03-02 12:26:49 -05:00
Lew Rossman
fcbbbf9b2e Adds new pattern, curve and reporting functions to API 2019-02-20 12:43:32 -05:00
Lew Rossman
36b78f28d3 New function clearreport added (see issue #383)
The newly added `gettitle` and `settitle` functions were moved from the Reporting Functions section to the Project (formerly System) Functions section of epanet2.c and epanet.c.
2019-02-08 12:07:56 -05:00
Elad Salomons
ab62d3bb61 Add new function to get and set title strings 2019-02-06 11:45:48 +02:00
Elad Salomons
23e542a492 Mark VB reserved words in variable names
I have marked the VB reserved words with an ending "_". Sorry the IDE messed the nice spacing...
2019-01-10 08:39:49 +02:00
Lew Rossman
dd376692ad Floating pt. args in thread-safe API changed to doubles (Issue #365) 2019-01-09 15:14:10 -05:00
Lew Rossman
628fffc718 Added additional network building features (#367) 2019-01-02 10:33:58 -05:00
Elad Salomons
36972c2a60 Fix for VB header file 2018-11-08 10:09:35 +02:00
Lew Rossman
7443cea9d4 Fixes #172 (adjust controls when node/link is deleted) & EN_addrule added
- Deleting controls with node/link deletion made conditional.
- New EN_addrule function added along with a test file.
- Rule structures re-named & rules.c heavily modified.
- Issue with exceeding limit on number of temporary file names fixed.
- VB declaration and DEF files updated.
2018-11-07 23:09:47 -05:00
Lew Rossman
ee335ab077 Fixes bug #172 (adjust controls & rules when node/link added or deleted)
- Also adds new API function EN_deletecontrol
- Updates and re-arranges entries in the VBA and VB.Net headers
2018-10-31 11:32:01 -04:00
Lew Rossman
8514929622 Rewrite of EN_setlinktype function (#305)
- Complete rewrite of EN_setlinktype with link index argument passed by reference
- New unit test of EN_setlinktype added
- New function EN_setlinknodes added
2018-10-28 16:58:43 -04:00
Lew Rossman
76419e0b4c Added EN_setnodeid and EN_setlinkid (Issue #306) 2018-10-17 09:05:16 -04:00
Lew Rossman
7c021cf533 Fixed water quality mass balance issue (#160) 2018-10-09 12:53:20 -04:00
Elad Salomons
4848f692f6 Merge pull request #296 from eladsal/dev-dem-cat
Add demand names get\set APIs
Close #294
2018-10-01 10:47:40 +03:00
Elad Salomons
c1c80da667 Add APIs to get\set demand categories names 2018-09-26 11:15:37 +03:00
Marios Kyriakou
982ff903e3 add option EN_HEADLOSSFORM in function ENgetoption 2018-09-23 19:41:27 +03:00
Elad Salomons
dad11cce8d Add option to get\set default demand pattern
also updates the net builder test
2018-09-15 14:22:20 +03:00
Elad Salomons
5d241e2fbd Create headers for EN_addcontrol 2018-09-03 08:18:42 +03:00
Elad Salomons
0b9dd8d29a Minor fix for VB header file
type is a reserved keyword in VB
2018-09-03 07:44:37 +03:00
Marios Kyriakou
70f51d9567 add ENsetdemandpattern 2018-08-28 00:19:56 +03:00
Michael Tryby
f495d2c707 Merge branch 'dev' into contributor-lr 2018-08-24 16:09:21 -04:00
Elad Salomons
761199b08e Added ENgetcurvetype API
Also update curve type on EN_setheadcurveindex.

Co-Authored-By: milad ghiami <milad-ghiami@users.noreply.github.com>
2018-08-20 21:10:49 +03:00
Elad Salomons
634651d4e6 Add option to get pump's constant power and speed
Details in #215
2018-08-18 21:54:52 +03:00
Elad Salomons
99e7151172 Add option to get link state
Add EN_STATE to ENgetlinkvalue. Related to #218
2018-08-17 15:43:53 +03:00
Elad Salomons
4e48c31147 Fix PumpType and CurveType enums
Also adds a general \default curve type. Fixes #208.
2018-08-15 07:37:19 +03:00
Elad Salomons
d94e1643bf Update Windows build script and VB header file
Also save HeadErrorLimit and FlowChangeLimit only if they are used.
2018-08-13 09:19:05 +03:00
Elad Salomons
c41e140b6a Update VB header files 2018-06-19 11:16:32 +03:00
Elad Salomons
dcd1c6dd10 Fix VB header file and win build script 2018-01-18 13:58:26 +02:00
Sam Hatchett
f97d837231 Feature wrapper (#136)
this quite sizable commit does several things, but is primarily
focussed on building a toolkit that can run simultaneous
simulations/analyses within a shared memory space. Versions <=2.1 use a
long list of global variables that prevent multiple instantiations on
linux systems without resorting to compilation tricks (like duplicate
binaries or similar via static linkage). This version uses a single "Project" pointer to encapsulate
the network and analysis data. There are no changes to existing algo
implementations other than to accomodate dereferencing of the passed-in
pointers. A more detailed list of major changes below:

- mirrors all “ENxxxx” function calls with “EN_xxxx” versions (note the
underscore) that take an extra first parameter: a pointer to an
EN_Project struct, which contains all network, hydraulic, quality, and
associated data.
- tweaks some code formatting to make it more readable
- removes some deprecated/commented code that was sufficiently old
- fixes implicit type-cast warnings

* Added ENaddnode and ENaddlink functions

* More memory reallocations

* Added ENInit, ENsetheadcurveindex

* Added ENdeletelink and ENdeletenode

* restored default behavior for float types

* fixed type

* Added docstrings for ENinit

* cleanup change

* moves global rule variables to vars.h

* migrates rule structs to typedefs

for better readability

* char types to proper enums

fixes #93

* Change some variable declarations for compatibility

Changes to keep compatibility with C89 compilers: variables must be
declared at the top of the functions. Remove the use of EN_LinkType in
function call as it is not compatible with ENgetnodetype.

* Moved declaration of idstodelete to top of function

* Updated ENinit function and headers

Updated header files with new functions
Updated def file with new functions
For ENinit changes names of parameters #98
Added enum for headloss formula

* Missed these files in 1a033fc

* migrates char types to enums fixes #93,

supports unified link/node type enums, rather than public/private
redefinitions

* removing links in reverse-index order maintains proper indexing fixes #96

* style

* clarifies curve getter units issue (dox)

closes #95

* fixes link/node confusion in ENsetlinktype

partially reverts a3bce95dc330a5a297634a303d438e2e1bc41cc9

* partial compilation fix

* fixes dox issue

* fixes allocation issues with enums

- updates style in various places
- introduces FlowDirection enum
- use snprintf to prevent overflow

* fixes enum type cast

* updated mac project settings

* Use of _snprintf on Windows and remove DLLEXPORT from mempool.h

snprintf it not compatible on Windows so we use _snprintf
mempool gave starnge compilation errors while removing DLLEXPORT worked.
Not sure why these functions needed to be exposed in the DLL?

* Revert "Use of _snprintf on Windows and remove DLLEXPORT from mempool.h"

This reverts commit 6238f77d47fa0feaabe5836043c006937de433a2.

* use of _snprintf instead of snprintf on Windows and removed DLLEXPORT from mempool.h

Had compilation errors on mempool.h. Removed DLLEXPORT so solve it. Not
sure why there was a need to expose these functions?

* Shift indices for Links in ENaddnode

Need to shift indices for Links not just Pipes since a pump could be
connected directly to a reservoir. Also set the defult base demand to
zero (was 5).

* Set defualts for madatory link properties in ENaddlink and small fix for ENsetheadcurveindex

Relates to #102 and closes #103

* wraps globals into structs, duplicates api functions with objective versions



* parse and serialize Comment field for network elements

related to #47

* adds getter for head/efficiency curve

in EN_getlinkvalue

* adds getter for event node index

… to return the index of the junction (tank) that triggered the event.

* fixes edge case in parsing

… where inp files without demands in [JUNCTIONS] and without any
[DEMAND] categories will fail.

* adds freeing function for project pointer

* removes redundant string literals, fixes overrun issue in error message getter function

* check for hydraulics already closed

* moving error definitions to data file

* deprecates ENR err message getter (unused)

* updates location of errors data file

also begins to expose blind structs to curves and patterns,
anticipating buildout of APIs for those.

* updates CLI output to reflect executable name as invoked

relates to #109

* Feature nrtest (#131)

* Initial commit EPANET testing tools.

* Initial commit for epanet-nrtestsuite

* SWIG wrapper for EPANET outputapi (#118)

* Removed pervious version of outputapi and wrapper

* SWIG wrapper for EPANET outputapi

* Patching cmake build script fixed target for outputapi

* Build failing on deprecated test script

* Minor changes. Responding to review comments.

* Feature nrtest (#121)

* Configured python setup to automatically build nrtest tools.

* Working on build / testing automation

* Adding EPANET 2.0.12 benchmark

* Updated Travis yml to run nrtest

* Fixing InsecurePlatformWarning

* Fixing InsecurePlatformWarning again

* Fixing InsecurePlatformWarning

* Fixing InsecurePlatformWarning

* Fixing InsecurePlatformWarning

* Update .travis.yml

* Update .travis.yml

* Update .travis.yml

* Update .travis.yml

* Working on configuring python environment and building test tools under Travis CI.

* Making gen-config.sh and run-nrtest.sh executable

* Debugging .travis.yml

* Debugging .travis.yml

* Debugging .travis.yml again

* Debugging .travis.yml again

* debugging travis setup

* debugging Travis setup

* debugging Travis setup

* debugging Travis setup

* debugging Travis setup

* debugging Travis setup

* debugging Travis setup

* debugging Travis setup

* debugging Travis setup

* debugging Travis setup

* debugging Travis setup

* Fixing bug with __strncpy_chk destlen < len

* nrtesting clean up

* re-implements fixes from:

5eead5ae40
3c788567a4

* removes extraneous build files, moves cmake and updates travis

* mirror of 9b37035560f9683f1514b439f7586a5c17bca5bf

* Move some variable declarations

* More variable declarations

* Fix TmpDir

* Allocate _defaultModel

* Fix EN_addcurve funcrion

* Fix for inpfile

* Fix writeRuleinInp call

* Set MAXMSG to 79 chars

* Fix for flow direction

* Refactoring testing related python packages and SWIG wrapper bug fix (#139)

* Eliminated epanet-reader package. Removed numpy dependency from epanet-output. Fixed reference counting bug in SWIG wrapper. Added error checking to run_nrtest.sh. Added nrtest package to requirements file.

* changing buildhome directory

* Fixing bug related to preprocessor definition of PI
2018-01-09 16:56:42 -05:00
Elad Salomons
8ab0f06ccc Added option to retrieve the pumps price pattern
Added to ENgetlinkvalue function like the speed\status pattern. use the
new EN_PRICEPATTERN constant.
2017-04-13 12:14:32 +03:00
Elad Salomons
9942f6761d Updated def file and float types in function APIs
Added the new funcions to the DEF file.
Updated VB headers from Double to Single
Changed a few APIs calls to support EN_API_FLOAT_TYPE - this needs more
work for the rest of the new functions
2016-09-24 12:28:20 +03:00
Elad Salomons
98b86cd014 Merge pull request #84 from AngelaMarchi/ChangingRuleBased
Changing rule based
2016-09-23 14:00:34 +03:00
AngelaMarchi
4e349cd3c1 ModifyingRuleBaseControls
These modifications allow rule based controls to be modified with the
additional functions added in the dll toolkit
2016-09-23 13:14:15 +09:30