* 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
* 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 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
* 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.
* Added WriteProperty handler in the Structured View object with handling for object-name, description, node-subtype, node-type, default-subordinate-relationship, represents, subordinate-list, subordinate-annotations, subordinate-node-types, and subordinate-relationships in the basic Structured View object.
* Changed Structured View character strings for object-name, description, and node-subtype to use dynamic strings to support WriteProperty.
* Added characterstring_utf8_valid(), characterstring_utf8_strdup() and write_property_characterstring_utf8_strdup() for UTF-8 string duplication.
* Added write property tests for array handling and validation of array index values
* Added backup failure timeout functionality and related methods in device management
* Fixed STARTBACKUP to hold at PERFORMING_A_BACKUP per spec, not IDLE.
* Added error handling for reinitialization during restore process to prevent accidental delete of all objects.
* Added some missing Create/Delete object functions. Formatting.
* Fixed Program object type in bacnet_device.c module.
* Added CreateObject and DeleteObject for basic Octet String Value and Positive Integer Value objects.
* Changed PositiveInteger present-value datatype to BACNET_UNSIGNED_INTEGER.
* Secured BACnetAssignedAccessRights decoder.
* Secured BACnetPropertyState decoder.
* Secured BACnetCredentialAuthenticationFactor decoder.
* Secured BACnetEventState change-of-state [1] SEQUENCE decoder.
* Secured I-Have-Request service decoder.
* Secured Add/Remove ListElement service request decoder.
* Secured ConfirmedPrivateTransfer-Request and UnconfirmedPrivateTransfer-Request decoders.
* Secured ReadPropertyMultiple-Request and -Ack decoders.
* Secured TimeSynchronization-Request decoder.
* Secured WritePropertyMultiple service decoders
* Secured Trend Log object TL_fetch_property() function.
* Secured ReadProperty-Ack decider,
* Refactor BACnet time sync recipient handling by moving timesync linked list structure into bacdest where the recipient encoder and decoder already existed.
* Secured decoding of BACnetPropertyState.
* Secured decoding in the LifeSafetyOperation-Request service.
* Secured BACnetAuthenticationFactor decoding in the Credential Data Input object.
* Fixed WriteProperty decoder to avoid read buffer overrun. Improved WriteProperty error reporting by adding specific reject codes during decoding similar to WritePropertyMultiple. Deduplicated the WriteProperty handling of abort, reject and error codes.
* Added BACNET_STACK_DEPRECATED_DISABLE guards around all of the deprecated decoding functions to ensure they are not used except intentionally for legacy code bases.
* Changed version to 1.5.0.rc5 for security fix tracking in branch.
* Added Who-Is-Router-To-Network process in basic Notification Class when recipient address is missing the router MAC address.
* Added buffer_length parameter to octet string buffer decode functions
* Fixed BACnet address handling for I-Am-Router address updating the recipient list address for the next hop router.
* Changed VMAC encoding and decoding to use octet string buffer API to reduce stack RAM.
* Added callback API for extending the basic Device object and children with proprietary properties for ReadProperty and WriteProperty services. The callback API includes a function to get the specific proprietary property list for any specific object instance in the device, functions to handle the ReadProperty or WriteProperty of the proprietary property.
* Added a new property_list_function typedef to proplist.h for proprietary property list callbacks
* Removed the object-specific proprietary property implementation from the Loop object
* Added test coverage in the Device test validating the proprietary property API usage
* Added CreateObject and DeleteObject for basic Accumulator objects.
* Added WriteProperty handling for object-name, scale, out-of-service, units, and max-pres-value.