Commit Graph

155 Commits

Author SHA1 Message Date
Tomasz Kazimierz Motyl cbd5f43684 Added clauses c) and f) of 13.3.6 (out_of_range) algorithm and enabling transitions from high/low limit states to normal when Event_Enable = 0 for the basic Analog Value and Analog Input objects (#733) 2024-08-21 14:36:37 -05:00
Steve Karg f09a0ce5ed Added prototype for device object property list member to use for storing device data storing. (#735) 2024-08-19 09:32:52 -05:00
Steve Karg e3098bbaa2 Added device WriteProperty callback for non-volatile storing in basic device examples. (#728) 2024-08-16 14:13:56 -05:00
Kari Argillander dab6d8af55 Build more code in CI (#725)
* bugfix/hostnport: Fix bacnet_fdt_entry_from_ascii() parse wrong
* apps/router: Fix Wstrict-prototypes compiler warnings
* apps/router: Fix -Wmissing-field-initializers compiler warning
* ports/linux: Fix -Wself-assign compiler warning
* ports/linux: Fix -Wunused-function compiler warning
* Fix -Wimplicit-function-declaration warnings
* ci: Add more compile options to enable more code build
* ci: Do not fail-fast our main matrix build
* cmake: Add -Wno-c99-extensions compiler option

---------

Co-authored-by: Kari Argillander <kari.argillander@fidelix.com>
Co-authored-by: Steve Karg <skarg@users.sourceforge.net>
2024-08-15 11:20:10 -05:00
Steve Karg c1195dd8a0 Added CreateObject, DeleteObject, and COV to Integer Value object (#719)
Co-authored-by: Tomasz Kazimierz Motyl <tomasz.motyl@se.com>
2024-08-14 08:54:03 -05:00
Kari Argillander 6271632944 Add and fix compiler warnings (#718)
* Add and remove compiler warning compile options

Add some new compiler warnings. Some of those does not build clean so
ignore them for now. This also helps if some user use those options so
we ignore those for them also.

Also remove following ignores as they do not produce any warnings:

  - Wno-attributes
  - Wno-long-long
  - Wno-implicit-fallthrough

* Fix -Wmissing-declarations compiler warnings

Fix new -Wmissing-declarations compiler warnings. I tried to look which
should be in headers and which should be static. Might be that some
statics should be in header as it is not easy to choose if something
should be exported or not.

* Fix -Wmissing-field-initializers compiler warnings

If we use { { 0 } } compiler thinks we might have mean that we only
meant initialize first member of struct or have forgotton to add second
one. We could do { { 0 }, 0 } but we can just do { 0 } which tells
compiler that hey just intialize this whole thing to zero.

* tests: Fix couple -Wfloat-conversion warnings

Add f prefix to floating point numbers to get some double to float
warnings away.

* ci: Make warnings as errors with cmake main build

To keep repo more clean from warnings use Werror flag when building main
project.

Windows should need -DCMAKE_C_FLAGS="/WX" but we have not ignore errors
for that yet so let's not yet take it in use.

* ci: Build also tests in matrix build

Enable also tests to be builded in our main matrix build. This way tests
will be builded also with clang and in future also with MSVC. We also
keep build very clean now as all warnings as catched.

With this we can also take out -Werror from compile_options as we add
that in CI. It is not good practice to keep that option always on. It
makes development lot harder. See example this blog post [1].

[1]: https://embeddedartistry.com/blog/2017/05/22/werror-is-not-your-friend/

* getevent: Deprecate getevent_encode_apdu()

Steve suggested that we should deprecate getevent_encode_apdu() [1].

Suggested-by: Steve Karg

[1]: https://github.com/bacnet-stack/bacnet-stack/pull/718#discussion_r1715821735

---------

Co-authored-by: Kari Argillander <kari.argillander@fidelix.com>
2024-08-13 16:32:44 -05:00
Steve Karg e5307e280c Added CreateObject and DeleteObject to Load Control object. (#713) 2024-08-11 19:14:27 -05:00
Steve Karg 81e83b19c1 Fixed Lighting Output unit test builds after recent fixes added debug printing and implicit float to double promotion. 2024-08-07 11:27:51 -05:00
Steve Karg 18d4b47b2c Fixed Lighting Output object lighting command decoding and ramp operations 2024-08-07 11:07:23 -05:00
Steve Karg 350bbe3331 Fixed implicit conversion from float to double in lighting output and color. 2024-08-06 17:22:27 -05:00
Steve Karg 1be0aa39b9 Fixed compile warnings and BACnet priority array decoding (#712)
* Fixed network port warning for unused static function.

* Fixed BACnetPriorityArray decoding in bacapp module

* Fixed epics print of BACnetDateTime complex data.
2024-08-06 14:10:03 -05:00
Steve Karg 61730e3d87 Fixed load control object and unit test. Added recipe to Makefile for Zephyr OS twister unit testing. (#710) 2024-08-06 08:28:01 -05:00
Steve Karg ebfaa5eb2c Added Exception_Schedule property to schedule object example. (#709) 2024-08-01 12:15:57 -05:00
Steve Karg 4ee3bb6fa2 Added create and delete methods to basic device object table for calendar object. 2024-07-31 09:42:41 -05:00
Steve Karg 4326128e72 Secure ReadProperty decoding and BACnetActionCommand (#702)
* Refactored and secured BACnetActionCommand codec into bacaction.c module for command object and added to bacapp module encode/decode with define for enabling and pseudo application tag for internal use.

* Simplified bacapp_data_len() and moved into bacdcode module as bacnet_enclosed_data_len() function.

* Secured ReadProperty-REQUEST and -ACK decoding.

* Removed deprecated Keylist_Key() functions from usage.

* Removed pseudo application datatypes from bacapp_data_decode() which only uses primitive application tag encoded values.

* Defined INT_MAX when it is not already defined by compiler or libc.

* Deprecated bacapp_decode_application_data_len() and bacapp_decode_context_data_len() as they are no longer used in any code in the library.

* Added BACnetScale to bacapp module. Improved complex property value decoding. Refactored bacapp_decode_known_property() function.

* Refactored and improved the bacapp_snprintf() function for printing EPICS.

* Fixed Lighting Output WriteProperty to handle known property decoding.
2024-07-25 17:12:08 -05:00
Steve Karg 3864421ac8 Fixed compile warning in network port object. 2024-07-22 16:04:40 -05:00
Steve Karg 3246d6bd72 Fixed zephyr B-SS sample build under native_sim 2024-07-22 14:56:12 -05:00
Steve Karg e2349b719f Fixed bitstring-value header file duplication. 2024-07-19 17:22:13 -05:00
Steve Karg 00ab206075 * Changed header file include guards to unique namespace. Updated file headers comments with SPDX [issue #55] (#666) 2024-07-19 17:16:28 -05:00
Steve Karg 90714c094c Fixed BACnetHostNPort known property decoding. (#700)
* Fixed BACnetHostNPort known property decoding.

* Added BDT-Entry and FDT-Entry to BACapp for known property encoding/decoding.
2024-07-19 16:45:09 -05:00
Steve Karg 13debf3ead Fixed compile warnings from Binary Value header file. 2024-07-16 16:40:24 -05:00
Tomasz Kazimierz Motyl f4637325ad Added Binary Input and Binary Value intrinsic reporting CHANGE_OF_STATE algorithm as per 13.3.2 as per ASHRAE 135-2020 (#689) 2024-07-16 08:16:33 -05:00
GauiStori 8bb93d3286 Fixed basic device object and ReadRange handling for test 9.21.2.2 and 9.21.2.3 array index (#692) 2024-07-11 09:23:55 -05:00
Tomasz Kazimierz Motyl 66fd9f5c48 Added BACnet/IPv6 properties to basic Network port object (#686)
Co-authored-by: Tomasz Kazimierz Motyl <tomasz.motyl@se.com>
2024-07-08 07:46:01 -05:00
Steve Karg cb4f675e39 Reduced MS/TP MAX_APDU to use 480 by default in examples (#683)
* Reduced MS/TP MAX_APDU to 480 from 1476 so that devices not use new MS/TP extended frame types which older routers do not understand.

* Added extra objects to STM32F4xx example to elicit edge cases in object-list for testing.
2024-07-02 12:47:15 -05:00
Steve Karg ddb2b43125 Refactor/mstp zero config state machine (#676)
* Changed MS/TP master node self destination checks to be located in receive FSM

* Changed MSTP zero configuration: modified comments for state transition names; modified next station increment; refactored the UUID rand() to not be required by common zero config implementation; added more unit tests.

* Added another context to MS/TP user data to allow additional user data
2024-06-26 07:43:25 -05:00
Tomasz Kazimierz Motyl 9e0751f8c9 Adding activate-changes to the ReinitializeDevice options (#674)
Co-authored-by: Tomasz Kazimierz Motyl <tomasz.motyl@se.com>
2024-06-17 20:27:31 -05:00
Jonathan 2cdbf20f9f ai.c, ao.c : Fix typos (#673) 2024-06-14 10:13:40 -05:00
Steve Karg 12d55ab3cb Fix datatype conversion errors found by splint. Fix Binary input/value set. (#672) 2024-06-12 21:13:33 -05:00
Steve Karg aa9370004b Added example basic bitstring value object. (#668) 2024-06-05 11:03:42 -05:00
Steve Karg 17c5e2e98d Added guards in create object initialization to prevent memory leaks (#664) 2024-06-02 07:09:26 -05:00
NikSchew ec066fcc70 Added wildcard check for bi objects (#663)
Co-authored-by: Nik Schewtschuk <nikonlinee@gmail.com>
2024-06-02 06:51:12 -05:00
NikSchew 7276bf471d Added guard for some object inits to prevent memory leak by misuse (#662)
Co-authored-by: Nik Schewtschuk <nikonlinee@gmail.com>
2024-06-02 06:42:47 -05:00
Steve Karg 52f3f08cb1 Bugfix/fix redundant compiler flags (#658)
* Improved GCC compiler flags in ARM, OS, and test builds. Removed redundant flags, and made them consistent across various builds.

* Fixed redundant redeclaration of various functions detected by change in compiler flags.

* Fixed string truncation warning in bip-init detected by change in compiler flags.

* Fixed some set-but-not-used variables by creating dummy functions instead of using macros.
2024-05-30 10:59:54 -05:00
Steve Karg 7ccde9790f Added simpler API to get/set Network Port MSTP MAC address (#653) 2024-05-24 10:42:07 -05:00
Steve Karg cbd9b3f04f added secure BACnet primitive datatype encode functions. (#643)
* added secure BACnet primitive datatype encode functions.
2024-05-17 08:56:24 -05:00
Steve Karg 8eab077ebf Added function to determine if an object property is a BACnetARRAY. (#642)
* Added function to determine if an object property is a BACnetARRAY.  Added property test for BACnetARRAY members.
2024-05-15 13:25:44 -05:00
Steve Karg affb358139 Feature/add basic structured view object (#641)
* Added basic structured view object and unit test. Added example structured view into server example.

* Removed creation of objects from basic device object into the server example
2024-05-14 14:51:45 -05:00
Steve Karg c21c99fef3 Fixed basic analog-value object intrinsic reporting and write property (#640)
* Fixed basic analog-value object intrinsic reporting for ack notification.
* Fixed basic analog-value object write property of present-value to priority 6.
2024-05-14 11:28:28 -05:00
Steve Karg ec98da5989 Fixed basic analog-value alarm-ack functionality. (#639)
* Fixed basic analog-value alarm-ack functionality.

* Added reliability property to basic analog-value.

* Fixed some basic analog-value and analog-input object function header comments.
2024-05-13 16:34:10 -05:00
Steve Karg 3222244e4e Updated to version 1.3.6 for release on 2024-05-12 Mother's Day! (#635)
* Updated to version 1.3.6 for release on 2024-05-12 Mother's Day!
2024-05-12 09:06:23 -05:00
Tomasz Kazimierz Motyl b90b14e5f6 Merge pull request #39 from se-apc/devel/getters_and_setters_to_support_relative_permanence (#629)
Get/Set functions to support properties relative permanence requirement
2024-04-30 13:35:31 -05:00
Steve Karg fc56e8b4a6 Fixed invalid comparison in life-safety-zone basic object. 2024-04-29 09:46:55 -05:00
Steve Karg bb276e2431 Refactored all the sprintf to use snprintf instead. (#628) 2024-04-27 12:41:45 -05:00
Tomasz Kazimierz Motyl 4add49b549 Setting logic behind valit transitions check straight (#623)
Co-authored-by: Tomasz Kazimierz Motyl <tomasz.motyl@se.com>
2024-04-22 08:18:16 -05:00
Steve Karg 770be70688 Chore/bacnet-sc-unrelated-cleanup (#620)
* Added required linux Ethernet library for ethernet build

* Added .obj to gitignore

* Fixed BACnet port for APPLE to use BSD in CMake

* Changed format in CMake to enable cleaner SC merge

* Added create-object and delete-object recipes in GCC Makefile

* Added datalink timer to all example OS apps

* Changed most microcontroller ports to use BACAPP_MINIMAL to specify which datatypes can be written.

* Fixed zephyr OS for BACnet/IP warning

* Fixed zephyr OS log to not require log_strdup

* Added writefile API to file object example

* Added API to device-client to make it more robust.

* Added API in network-port object for getting the ASCII object-name

* Added debug print with a timestamp option

* Added debug print with hex dump print

* Added API to network port object for activate and discard

* Added default define for debug with timestamp

* Added prototype in header for disabled debug printf.

* Added fifo peek ahead function to peek at more than one byte.

* Added get-mac value for network port that uses buffer rather than octetstring
2024-04-19 12:54:56 -05:00
antocout 600508c357 Change first instance of an integer value from 1 to 0 (#619)
Integer_Values instances start at 1 while other object instances
start at 0. Change this to have the same start for all objects.

Signed-off-by: Antoine Coutant <antoine.coutant@smile.fr>
2024-04-17 08:53:12 -05:00
Steve Karg aca3a2bc82 Fixed basic network port object header dependency on readrange.h file. 2024-04-05 13:17:35 -05:00
Steve Karg e19cc0be1e Added API for multistate number-of-states 2024-04-04 17:09:51 -05:00
Steve Karg 5abdaf0916 Fixed binary object active and inactive text setting. 2024-04-04 13:04:02 -05:00