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:
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user