Commit Graph

3792 Commits

Author SHA1 Message Date
Steve Karg 2cf4772ec8 Fixed EPICS values for recipient list, empty lists, and authentication factors (#1310)
* Add BACnet authentication factor support with comparison functions and text strings and parsing

* Fix MyReadPropertyAckHandler to allow zero length for empty property list

* Fix rp_ack_fully_decode_service_request to handle empty recipient list

* Enhance PrintReadPropertyArray to handle empty lists with improved output formatting

* Refactor command line argument handling for target-address to accept dotted IP if offered.

* This commit introduces the inclusion of `authentication_factor.c` and `authentication_factor_format.c` in the CMakeLists.txt files for multiple BACnet tests to fix the broken test builds.

* Refactor bacapp.c for improved readability and documentation; streamline code formatting and enhance function comments.

* Fix return value assignment in bacapp_snprintf_value for authentication format

* Enhance help message to clarify target MAC or IP address format and improve readability

* Implement memory management for ReadProperty ACK service requests and improve error handling in decoding
2026-04-21 22:31:51 -05:00
Steve Karg d16865ff29 fix: ensure COV subscriptions are initialized before processing SubscribeCOV requests (#1309) 2026-04-21 15:03:23 -05:00
Steve Karg d8b439895f Update SECURITY.md to reflect supported versions, add new CVE, and improve vulnerability reporting guidelines 2026-04-21 07:06:06 -05:00
Steve Karg ff894b074d Update CHANGELOG for recent changes and fixes 2026-04-21 06:32:41 -05:00
Steve Karg 9edf957366 Feature/lighting output and command loose coupling (#1306)
* Refactor lighting output and lighting command structure for loose coupling.  Add locking callbacks in lighting command.

* Enhance lighting command handling with locking mechanism

- Added locking and unlocking functionality to critical sections in lighting command functions to ensure thread safety.
- Introduced new functions `lighting_command_lock` and `lighting_command_unlock` for explicit locking.
- Updated existing functions to utilize the new locking mechanism, preventing concurrent access issues.
- Refactored notification and clamping functions to support locking, ensuring data integrity during operations.
- Added getter and setter functions with internal locking to access the lighting command data
2026-04-20 16:17:40 -05:00
Steve Karg 1c3506403d Fix BBMD_Result handling to avoid false positive error message when no registration is requested. (#1305) 2026-04-20 11:52:44 -05:00
Steve Karg b9149dd639 Refactor/cov subscriptions encoding decoding test (#1296)
* Add BACnetRecipientProcess type encoding and decoding functions with associated tests

* Refactor COV subscription encoding and decoding functions to reduce code size and reuse existing unit tested functions.

* Refactor COV subscription handling to simplify error checking
2026-04-20 10:53:55 -05:00
KANG HYEONSEOK 52561f2336 Optimize COV Subscriptions using keylist (#1295)
* Added performance optimization in COV Subscriptions using keylist

* Add memory exhaustion check to Keylist_Data_Add, fix CheckArraySize return value
- Keylist_Data_Add: return -1 when node allocation fails
- CheckArraySize: return false instead of true when calloc fails (typo)
2026-04-20 06:34:25 -05:00
Steve Karg 6a10cc643e chore: bump version to 1.6.0-rc1 and add contributing guidelines 2026-04-19 06:59:01 -05:00
Steve Karg b8be746884 docs: update release script instructions to include pushing tags and mirroring to SourceForge 2026-04-16 11:40:57 -05:00
Steve Karg 61a7a53bea chore: release version 1.5.0 and update documentation for additional tools and environment variables 2026-04-16 10:35:39 -05:00
Steve Karg ba2d357784 Fix decode functions for signed integers to prevent undefined behavior by using unsigned values (#1300) 2026-04-10 06:23:17 -05:00
jenahn0630 f8bbc0b006 Fix Bug: Update RS485 baud rate configuration to use dlmstp_baud_rate(mstp_port) instead of shared data enum value (#1294) 2026-04-08 16:36:21 -05:00
Steve Karg 7536c6b6fa Fix type limits for uint32_t in sscanf and printf across multiple files (#1298) 2026-04-08 16:35:31 -05:00
Steve Karg ad89cba29b Add additional writable properties to OctetString and fix write property to present-value priority 6 logic. (#1297) 2026-04-07 16:31:27 -05:00
Steve Karg e77e070d90 Fix type definitions for inner_tag and object_instance when uint32_t is defined as long unsigned int instead of unsigned int (#1293)
* Fix type definitions in bacapp.c for inner_tag and object_instance when uint32_t is defined as long unsigned int instead of unsigned int

* Change DNET_list type from int to int32_t across multiple files to avoid compiler warnings when int32_t is defined as long int instead of int.
2026-04-06 11:51:36 -05:00
Kato Gangstad 589a61b287 esp32: replace port with PlatformIO implementation and add CI build (#1292) 2026-04-06 08:33:17 -05:00
Steve Karg 3d668f2f96 Bugfix/special event read property write property (#1291)
* Fixed special-event to print priority for the RP and RPM and EPICS example apps.

* Improved error message for tag value parsing in WP example app.

* Added BACnet property array parsing function to handle property string name in RPM example app.

* Added unit test to validate BACnet special event with multiple time-value pairs
2026-04-02 09:09:49 -04:00
Steve Karg a8e2b53aa0 Reverted unsigned decorator to BACNET_MAX_INSTANCE and BACNET_MAX_OBJECT constants since they are compared to signed values in some use cases which then fails when unsigned is promoted. 2026-04-01 22:28:05 -04:00
Steve Karg 83fc4b351e Implement parsing for BACnetSpecialEvent in bacapp and add unit tests (#1290) 2026-04-01 16:27:36 -04:00
Hyeongjun Kim 236250492e Fixed off-by-one bug in gateway main() causing duplicate I-Am broadcast (#1289)
When Routed_Device_Index reached MAX_NUM_DEVICES, Get_Routed_Device_Object()
returned NULL without updating iCurrent_Device_Idx, causing Send_I_Am() to
broadcast the previous device's I-Am again.

* Initialize Routed_Device_Index to 1 (first routed device index)
* Move increment after Send_I_Am() to prevent out-of-bounds access

Signed-off-by: kimhyeongjun <hjun1.kim@samsung.com>
2026-03-31 09:44:08 -04:00
Hyeongjun Kim f408b6eb7f Add multi-device support for BACnet gateway routing (#1279)
* Expanded Object_List to Object_List[MAX_NUM_DEVICES] array to support per-device objects for virtual remote devices
* Added multi-device iteration for COV handler, device timer, and intrinsic reporting
* Added apps/gateway2 demo application
* When MAX_NUM_DEVICES == 1, behavior is identical to the original implementation
* Conditional compilation with macros ensures no impact on non-gateway applications

---------

Signed-off-by: Hyeongjun Kim <hjun1.kim@samsung.com>
Co-authored-by: haemeok-kang <haemeok.kang@samsung.com>
2026-03-30 15:16:17 -04:00
Steve Karg b8dd89b879 Feature/structured view object subordinate list add remove (#1283) 2026-03-27 15:08:37 -05:00
Steve Karg 6f3d25b5ba Refactor CMakeLists.txt to replace BIG_ENDIAN definition with BACNET_BIG_ENDIAN to fix missing function in builds. (#1284) 2026-03-27 14:40:21 -05:00
Steve Karg 326a47b688 Remove push and pull_request triggers, keeping only workflow_dispatch for macOS CI tests 2026-03-27 14:38:00 -05:00
Steve Karg e695d399b0 Change macOS runner from macos-15-intel to macos-14-large for CI workflow 2026-03-27 14:28:49 -05:00
Steve Karg 40932a39db Update macOS runner version to macos-15-intel for CI workflow 2026-03-27 14:25:45 -05:00
Hyeongjun Kim fa6dc86ee4 Added INTRINSIC_REPORTING CMake option to enable intrinsic reporting at build time (#1275)
Signed-off-by: kimhyeongjun <hjun1.kim@samsung.com>
2026-03-26 15:37:02 -05:00
Hyeongjun Kim 5ec8f27487 Fixed missing keylist.h include in objects.h for OS_Keylist type dependency (#1277)
Signed-off-by: kimhyeongjun <hjun1.kim@samsung.com>
2026-03-26 15:26:50 -05:00
Steve Karg d562374f53 Fixed javadoc header in bvlc-pico. Added ports/pico to CHANGELOG. 2026-03-25 08:55:04 -05:00
Testimony 17e94092a1 Add Raspberry Pi Pico port (#1232)
* Add Raspberry Pi Pico port
- Adds BACnet/IP with abstracted network layer
- Adds BACnet MS/TP support using RS485/UART
- Includes README with examples

* Add Pico 2 MS/TP demo, CI, and docs
2026-03-25 08:22:09 -05:00
Ping 5eda68d381 Add void *context field to service data structures (#1265) 2026-03-23 12:22:28 -05:00
dependabot[bot] cbf716f61b Bump microsoft/setup-msbuild from 2 to 3 (#1271)
Bumps [microsoft/setup-msbuild](https://github.com/microsoft/setup-msbuild) from 2 to 3.
- [Release notes](https://github.com/microsoft/setup-msbuild/releases)
- [Commits](https://github.com/microsoft/setup-msbuild/compare/v2...v3)

---
updated-dependencies:
- dependency-name: microsoft/setup-msbuild
  dependency-version: '3'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-23 08:03:02 -05:00
Hyeongjun Kim b7abd5016e Fixed missing BACNET_STACK_EXPORT macro for PositiveInteger_Value_Count() function declaration (#1273)
Signed-off-by: kimhyeongjun <hjun1.kim@samsung.com>
2026-03-23 08:02:17 -05:00
Steve Karg d3b0a9577b Add lighting_command_refresh() unit test (#1269)
* Add lighting_command_refresh() unit test

* Add tests for lighting output writable property list and warn relinquish behavior
2026-03-20 17:34:00 -05:00
Steve Karg 45541659e2 Updated CHANGELOG for recent changes. 2026-03-20 17:12:40 -05:00
Steve Karg 05f81b05ce Bugfix/lighting output low high trim fade (#1268)
* Add low and high trim fade functionality to lighting command operations

* Refactor lighting command override functions and fix operating and normalized range.

* Add physical range clamping function and update related clamping logic
2026-03-20 17:10:10 -05:00
Steve Karg 457d04a7df Changed BACNET_NO_DEV_ID to use UINT32_MAX (same value), and added U decorators to BACNET_MAX_INSTANCE and BACNET_MAX_OBJECT constants. 2026-03-19 15:37:12 -05:00
Steve Karg 91090d3ff8 Add octet string buffer duplication functions and refactor related structures (#1266)
* Add new functions for duplicating and copying octet string buffers.

* Move and update octet string value object structure with description string and add object-name and description WriteProperty handling using strdup. Add functional tests to ensure the correctness of the new features.
2026-03-18 13:13:00 -05:00
Steve Karg 1c9af1632b Fixed FQDN hostname limit in minimal hostnport implementation (#1263) 2026-03-16 17:16:27 -05:00
Steve Karg a755a8db4d Feature/octetstring value and length api (#1264)
* feat: add octetstring_length_value_same function for length and content comparison

* feat: add tests for characterstring UTF-8 validation

* feat: add tests for octetstring_init_ascii_epics validation

* feat: add test for bacnet_strdup string duplication validation

* feat: add utf8_isvalid test cases

* feat: add octet string value API for present-value octet-string value and length, and out-of-service properties
2026-03-16 17:04:23 -05:00
Steve Karg 07cf52384b Fixed duplicate name in RPM unit test. (#1260) 2026-03-12 18:13:06 -05:00
Steve Karg 3637149363 docs: add latest changes to CHANGELOG. 2026-03-12 10:23:51 -05:00
Steve Karg 4499f17135 fix: Add input validation to Schedule_Recalculate_PV and Schedule_Timer functions to prevent segmentation fault occurring in Schedule_Recalculate_PV() during application startup (#1259) 2026-03-12 10:21:29 -05:00
Steve Karg f525e7c484 Bugfix/read-range-address-list-encode (#1149)
* Fix: Corrected `rr_address_list_encode` to properly handle the end of the address cache and added a new test case to validate ReadRange operations near the cache limit.
2026-03-12 09:05:04 -05:00
Steve Karg 07bfc7c61c Fix Trend Log ReadRangeACK BY_SEQUENCE where an incorrect FirstSequence is sometimes returned. (#1150) 2026-03-12 08:13:04 -05:00
Steve Karg 4fbd80fd83 chore: Add *.idx to .gitignore to prevent indexing files from being tracked. 2026-03-12 07:03:34 -05:00
Steve Karg a5f2b2b125 Add property_list_read_only_member function to check for READ-ONLY properties (#1258) 2026-03-11 07:17:30 -05:00
Steve Karg fda63eb1aa Changed COV FSM handler to stay IDLE until there is a valid subscriber. (#1257) 2026-03-09 13:39:57 -05:00
Steve Karg bd29f1039d Fixed bacnet_strdup() to compile with C89/C90 without warnings. 2026-03-07 11:55:31 -06:00