Added basic timer object, internal state machine, and unit tests (#1123)

* Added basic timer object, internal state machine, and unit tests

* Added BACnetTimerStateChangeValue encode, decode, parse, print, and diff with unit tests

* Changed handler of add/remove list element to check if the property is a BACnetLIST

* Added BACnetLIST utility for handling WriteProperty to a list.

* Fixed outlier ReadProperty object handlers to return zero when the RP parameter is NULL.
This commit is contained in:
Steve Karg
2025-11-05 15:11:45 -06:00
committed by GitHub
parent 17259b37f3
commit 4dd13cf199
126 changed files with 5509 additions and 56 deletions
+10 -1
View File
@@ -30,6 +30,7 @@
#include "bacnet/calendar_entry.h"
#include "bacnet/special_event.h"
#include "bacnet/channel_value.h"
#include "bacnet/timer_value.h"
#include "bacnet/secure_connect.h"
#ifndef BACAPP_PRINT_ENABLED
@@ -67,7 +68,12 @@ typedef struct BACnet_Application_Data_Value {
uint8_t context_tag; /* only used for context specific data */
uint8_t tag; /* application tag data type */
union {
/* NULL - not needed as it is encoded in the tag alone */
#if defined(BACAPP_NULL)
/* no value needed because it is encoded in the tag alone */
#endif
#if defined(BACAPP_NO_VALUE)
/* no value needed because it is encoded in the tag alone */
#endif
#if defined(BACAPP_BOOLEAN)
bool Boolean;
#endif
@@ -170,6 +176,9 @@ typedef struct BACnet_Application_Data_Value {
#if defined(BACAPP_CHANNEL_VALUE)
BACNET_CHANNEL_VALUE Channel_Value;
#endif
#if defined(BACAPP_TIMER_VALUE)
BACNET_TIMER_STATE_CHANGE_VALUE Timer_Value;
#endif
#if defined(BACAPP_LOG_RECORD)
BACNET_LOG_RECORD Log_Record;
#endif