Fixed CreateObject service list-of-initial-values encoding and decoding. (#1199)
Fixes the CreateObject service list-of-initial-values encoding and decoding by refactoring the data structure to be similar to WriteProperty. The implementation changes from using a linked list of property values to using a flat buffer approach with delayed decoding. Changes: * Refactored BACNET_CREATE_OBJECT_DATA structure to use an application_data buffer instead of a linked list for initial values * Added a new create_object_process() and create_object_initializer_list_process() functions to centralize object creation logic and error reporting * Updated all device implementations to use the new centralized creation functions * Enhanced the create-object example application to support command-line specification of initial property values * Added comprehensive test coverage for the new encoding/decoding and processing functions
This commit is contained in:
@@ -721,9 +721,12 @@ static bool Channel_Write_Members(
|
||||
"channel[%lu].Channel_Write_Member[%u] coerced\n",
|
||||
(unsigned long)object_instance, m);
|
||||
if (Write_Property_Internal_Callback) {
|
||||
status = Write_Property_Internal_Callback(&wp_data);
|
||||
status = write_property_bacnet_array_valid(&wp_data);
|
||||
if (status) {
|
||||
wp_data.error_code = ERROR_CODE_SUCCESS;
|
||||
status = Write_Property_Internal_Callback(&wp_data);
|
||||
if (status) {
|
||||
wp_data.error_code = ERROR_CODE_SUCCESS;
|
||||
}
|
||||
}
|
||||
debug_printf(
|
||||
"channel[%lu].Channel_Write_Member[%u] "
|
||||
|
||||
Reference in New Issue
Block a user