Added characterstring change of value example (#175)

* Added characterstring change of value example

* Add COV to unit tests

* Add memcopy to object COV unit tests

Co-authored-by: Steve Karg <skarg@users.sourceforge.net>
This commit is contained in:
Steve Karg
2021-05-24 20:15:03 -05:00
committed by GitHub
parent 3ed77e2491
commit 3e9807327b
11 changed files with 184 additions and 74 deletions
+59
View File
@@ -925,6 +925,65 @@ bool cov_value_list_encode_unsigned(
return status;
}
#if defined (BACAPP_CHARACTER_STRING)
/**
* @brief Encode the Value List for CHARACTER_STRING Present-Value and
* Status-Flags
* @param value_list - #BACNET_PROPERTY_VALUE with at least 2 entries
* @param value - CHARACTER_STRING present-value
* @param in_alarm - value of in-alarm status-flags
* @param fault - value of in-alarm status-flags
* @param overridden - value of overridden status-flags
* @param out_of_service - value of out-of-service status-flags
*
* @return true if values were encoded
*/
bool cov_value_list_encode_character_string(
BACNET_PROPERTY_VALUE * value_list,
BACNET_CHARACTER_STRING * value,
bool in_alarm,
bool fault,
bool overridden,
bool out_of_service)
{
bool status = false;
if (value_list) {
value_list->propertyIdentifier = PROP_PRESENT_VALUE;
value_list->propertyArrayIndex = BACNET_ARRAY_ALL;
value_list->value.context_specific = false;
value_list->value.tag = BACNET_APPLICATION_TAG_CHARACTER_STRING;
characterstring_copy(
&value_list->value.type.Character_String,
value);
value_list->value.next = NULL;
value_list->priority = BACNET_NO_PRIORITY;
value_list = value_list->next;
}
if (value_list) {
value_list->propertyIdentifier = PROP_STATUS_FLAGS;
value_list->propertyArrayIndex = BACNET_ARRAY_ALL;
value_list->value.context_specific = false;
value_list->value.tag = BACNET_APPLICATION_TAG_BIT_STRING;
bitstring_init(&value_list->value.type.Bit_String);
bitstring_set_bit(&value_list->value.type.Bit_String,
STATUS_FLAG_IN_ALARM, in_alarm);
bitstring_set_bit(&value_list->value.type.Bit_String,
STATUS_FLAG_FAULT, fault);
bitstring_set_bit(&value_list->value.type.Bit_String,
STATUS_FLAG_OVERRIDDEN, overridden);
bitstring_set_bit(&value_list->value.type.Bit_String,
STATUS_FLAG_OUT_OF_SERVICE, out_of_service);
value_list->value.next = NULL;
value_list->priority = BACNET_NO_PRIORITY;
value_list->next = NULL;
status = true;
}
return status;
}
#endif
#ifdef BAC_TEST
#include <assert.h>
#include <string.h>