* fix: add null pointer check for value when resetting device identifier in bacdevobjpropref
* test: add regression test for bacnet_device_object_reference_decode with null value pointer
* 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
* 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
* 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
* 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.
* 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
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>
* 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>
* 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
* 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
* 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.
* 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