Fixed structured view object subtype get and set. (#909)

This commit is contained in:
Steve Karg
2025-02-10 09:56:52 -06:00
committed by GitHub
parent 66329a05a0
commit bc2438f85b
5 changed files with 162 additions and 4 deletions
+19
View File
@@ -29,7 +29,12 @@ static void testDevObjPropRef(BACNET_DEVICE_OBJECT_PROPERTY_REFERENCE *data)
int len = 0;
int test_len = 0;
int null_len = 0;
bool status;
status = bacnet_device_object_property_reference_copy(&test_data, data);
zassert_true(status, NULL);
status = bacnet_device_object_property_reference_same(&test_data, data);
zassert_true(status, NULL);
/* encode */
null_len = bacapp_encode_device_obj_property_ref(NULL, data);
len = bacapp_encode_device_obj_property_ref(apdu, data);
@@ -138,9 +143,16 @@ static void testDevIdRef(void)
int len;
int test_len;
int null_len;
bool status;
data.deviceIdentifier.instance = 0x4343;
data.deviceIdentifier.type = OBJECT_DEVICE;
status = bacnet_device_object_reference_copy(&test_data, &data);
zassert_true(status, NULL);
status = bacnet_device_object_reference_same(&test_data, &data);
zassert_true(status, NULL);
null_len = bacapp_encode_device_obj_ref(NULL, &data);
len = bacapp_encode_device_obj_ref(apdu, &data);
zassert_equal(null_len, len, NULL);
@@ -175,11 +187,18 @@ static void testObjPropRef(void)
int len;
int test_len;
int null_len;
bool status;
data.object_identifier.instance = 12345;
data.object_identifier.type = OBJECT_ANALOG_VALUE;
data.property_identifier = PROP_PRESENT_VALUE;
data.property_array_index = BACNET_ARRAY_ALL;
status = bacnet_object_property_reference_copy(&test_data, &data);
zassert_true(status, NULL);
status = bacnet_object_property_reference_same(&test_data, &data);
zassert_true(status, NULL);
null_len = bacapp_encode_obj_property_ref(NULL, &data);
len = bacapp_encode_obj_property_ref(apdu, &data);
zassert_equal(null_len, len, NULL);
@@ -25,9 +25,27 @@ static void test_object_structured_view(void)
#endif
{
bool status = false;
int diff = 0;
unsigned count = 0, index = 0;
const uint32_t instance = 123;
const int skip_fail_property_list[] = { -1 };
const char *test_name = "name-1234";
const char *test_description = "description-1234";
const char *test_node_subtype = "node-subtype-1234";
BACNET_NODE_TYPE test_node_type = BACNET_NODE_UNKNOWN;
BACNET_RELATIONSHIP test_relationship = BACNET_RELATIONSHIP_DEFAULT;
BACNET_DEVICE_OBJECT_REFERENCE test_represents = {
{ OBJECT_DEVICE, 1234 }, { OBJECT_DEVICE, 1234 }
};
BACNET_SUBORDINATE_DATA test_subordinate_data = {
1234,
OBJECT_DEVICE,
1234,
"annotations-1234",
BACNET_NODE_UNKNOWN,
BACNET_RELATIONSHIP_DEFAULT,
NULL
};
Structured_View_Init();
Structured_View_Create(instance);
@@ -42,6 +60,45 @@ static void test_object_structured_view(void)
Structured_View_Read_Property, NULL, skip_fail_property_list);
bacnet_object_name_ascii_test(
instance, Structured_View_Name_Set, Structured_View_Name_ASCII);
/* there is no WriteProperty test for structured view - use get/set */
status = Structured_View_Name_Set(instance, test_name);
zassert_true(status, NULL);
diff = strcmp(Structured_View_Name_ASCII(instance), test_name);
zassert_equal(diff, 0, NULL);
status = Structured_View_Description_Set(instance, test_description);
zassert_true(status, NULL);
diff = strcmp(Structured_View_Description(instance), test_description);
zassert_equal(diff, 0, NULL);
status = Structured_View_Node_Subtype_Set(instance, test_node_subtype);
zassert_true(status, NULL);
diff = strcmp(Structured_View_Node_Subtype(instance), test_node_subtype);
zassert_equal(diff, 0, NULL);
status = Structured_View_Node_Type_Set(instance, test_node_type);
zassert_true(status, NULL);
zassert_equal(Structured_View_Node_Type(instance), test_node_type, NULL);
status = Structured_View_Default_Subordinate_Relationship_Set(
instance, test_relationship);
zassert_true(status, NULL);
zassert_equal(
Structured_View_Default_Subordinate_Relationship(instance),
test_relationship, NULL);
status = Structured_View_Represents_Set(instance, &test_represents);
zassert_true(status, NULL);
diff = memcmp(
Structured_View_Represents(instance), &test_represents,
sizeof(test_represents));
zassert_equal(diff, 0, NULL);
Structured_View_Subordinate_List_Set(instance, &test_subordinate_data);
diff = memcmp(
Structured_View_Subordinate_List(instance), &test_subordinate_data,
sizeof(test_subordinate_data));
zassert_equal(diff, 0, NULL);
}
/**
* @}