Added device WriteProperty callbacks for Timer object in example device objects implementations. (#1203)

This commit is contained in:
Steve Karg
2026-01-15 10:15:22 -06:00
committed by GitHub
parent 8aabe883e9
commit 21daea9eb4
3 changed files with 20 additions and 9 deletions
+3 -1
View File
@@ -12,7 +12,7 @@ The git repositories are hosted at the following sites:
* https://bacnet.sourceforge.net/ * https://bacnet.sourceforge.net/
* https://github.com/bacnet-stack/bacnet-stack/ * https://github.com/bacnet-stack/bacnet-stack/
## [Unreleased] - 2026-01-05 ## [Unreleased] - 2026-01-15
### Security ### Security
@@ -32,6 +32,8 @@ The git repositories are hosted at the following sites:
### Added ### Added
* Added device WriteProperty callbacks for Timer object in example device
objects implementations. (#1203)
* Added file path name checking for AtomicReadFile and AtomicWriteFile * Added file path name checking for AtomicReadFile and AtomicWriteFile
example applications. Prohibits use of relative and absolute file paths example applications. Prohibits use of relative and absolute file paths
when BACNET_FILE_PATH_RESTRICTED is defined non-zero. (#1197) when BACNET_FILE_PATH_RESTRICTED is defined non-zero. (#1197)
+12 -8
View File
@@ -96,6 +96,14 @@ static object_functions_t My_Object_Table[] = {
NULL /* COV */, NULL /* COV Clear */, NULL /* Intrinsic Reporting */, NULL /* COV */, NULL /* COV Clear */, NULL /* Intrinsic Reporting */,
NULL /* Add_List_Element */, NULL /* Remove_List_Element */, NULL /* Add_List_Element */, NULL /* Remove_List_Element */,
NULL /* Create */, NULL /* Delete */, NULL /* Timer */ }, NULL /* Create */, NULL /* Delete */, NULL /* Timer */ },
{ OBJECT_TIMER, Timer_Init, Timer_Count,
Timer_Index_To_Instance, Timer_Valid_Instance,
Timer_Object_Name, Timer_Read_Property,
Timer_Write_Property, Timer_Property_Lists,
NULL /* ReadRangeInfo */, NULL /* Iterator */, NULL /* Value_Lists */,
NULL /* COV */, NULL /* COV Clear */, NULL /* Intrinsic Reporting */,
Timer_Add_List_Element, Timer_Remove_List_Element,
Timer_Create, Timer_Delete, Timer_Task },
#endif #endif
{ OBJECT_ANALOG_INPUT, Analog_Input_Init, Analog_Input_Count, { OBJECT_ANALOG_INPUT, Analog_Input_Init, Analog_Input_Count,
Analog_Input_Index_To_Instance, Analog_Input_Valid_Instance, Analog_Input_Index_To_Instance, Analog_Input_Valid_Instance,
@@ -209,14 +217,6 @@ static object_functions_t My_Object_Table[] = {
NULL /* COV */, NULL /* COV Clear */, NULL /* Intrinsic Reporting */, NULL /* COV */, NULL /* COV Clear */, NULL /* Intrinsic Reporting */,
NULL /* Add_List_Element */, NULL /* Remove_List_Element */, NULL /* Add_List_Element */, NULL /* Remove_List_Element */,
NULL /* Create */, NULL /* Delete */, NULL /* Timer */ }, NULL /* Create */, NULL /* Delete */, NULL /* Timer */ },
{ OBJECT_TIMER, Timer_Init, Timer_Count,
Timer_Index_To_Instance, Timer_Valid_Instance,
Timer_Object_Name, Timer_Read_Property,
Timer_Write_Property, Timer_Property_Lists,
NULL /* ReadRangeInfo */, NULL /* Iterator */, NULL /* Value_Lists */,
NULL /* COV */, NULL /* COV Clear */, NULL /* Intrinsic Reporting */,
Timer_Add_List_Element, Timer_Remove_List_Element,
Timer_Create, Timer_Delete, Timer_Task },
{ OBJECT_INTEGER_VALUE, Integer_Value_Init, Integer_Value_Count, { OBJECT_INTEGER_VALUE, Integer_Value_Init, Integer_Value_Count,
Integer_Value_Index_To_Instance, Integer_Value_Valid_Instance, Integer_Value_Index_To_Instance, Integer_Value_Valid_Instance,
Integer_Value_Object_Name, Integer_Value_Read_Property, Integer_Value_Object_Name, Integer_Value_Read_Property,
@@ -2523,6 +2523,10 @@ void Device_Init(object_functions_t *object_table)
/* link ReadProperty and WriteProperty to Loop object for references */ /* link ReadProperty and WriteProperty to Loop object for references */
Loop_Read_Property_Internal_Callback_Set(Device_Read_Property); Loop_Read_Property_Internal_Callback_Set(Device_Read_Property);
Loop_Write_Property_Internal_Callback_Set(Device_Write_Property); Loop_Write_Property_Internal_Callback_Set(Device_Write_Property);
#if (BACNET_PROTOCOL_REVISION >= 17)
/* link WriteProperty to Timer object for references */
Timer_Write_Property_Internal_Callback_Set(Device_Write_Property);
#endif
} }
bool DeviceGetRRInfo( bool DeviceGetRRInfo(
+5
View File
@@ -2919,6 +2919,7 @@ void Device_Init(object_functions_t *object_table)
characterstring_init_ansi(&My_Object_Name, Device_Name_Default); characterstring_init_ansi(&My_Object_Name, Device_Name_Default);
#if (BACNET_PROTOCOL_REVISION >= 14) #if (BACNET_PROTOCOL_REVISION >= 14)
#ifdef CONFIG_BACNET_BASIC_OBJECT_CHANNEL #ifdef CONFIG_BACNET_BASIC_OBJECT_CHANNEL
/* link WriteProperty to Channel object for references */
Channel_Write_Property_Internal_Callback_Set(Device_Write_Property); Channel_Write_Property_Internal_Callback_Set(Device_Write_Property);
#endif #endif
#endif #endif
@@ -2927,6 +2928,10 @@ void Device_Init(object_functions_t *object_table)
Loop_Read_Property_Internal_Callback_Set(Device_Read_Property); Loop_Read_Property_Internal_Callback_Set(Device_Read_Property);
Loop_Write_Property_Internal_Callback_Set(Device_Write_Property); Loop_Write_Property_Internal_Callback_Set(Device_Write_Property);
#endif #endif
#ifdef CONFIG_BACNET_BASIC_OBJECT_TIMER
/* link WriteProperty to Timer object for references */
Timer_Write_Property_Internal_Callback_Set(Device_Write_Property);
#endif
} }
bool DeviceGetRRInfo( bool DeviceGetRRInfo(