Added CreateObject, DeleteObject, and COV to Integer Value object (#719)

Co-authored-by: Tomasz Kazimierz Motyl <tomasz.motyl@se.com>
This commit is contained in:
Steve Karg
2024-08-14 08:54:03 -05:00
committed by GitHub
parent 6271632944
commit c1195dd8a0
6 changed files with 442 additions and 146 deletions
+53
View File
@@ -1038,6 +1038,59 @@ bool cov_value_list_encode_unsigned(BACNET_PROPERTY_VALUE *value_list,
return status;
}
/**
* @brief Encode the Value List for INT Present-Value and Status-Flags
* @param value_list - #BACNET_PROPERTY_VALUE with at least 2 entries
* @param value - INT 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_signed_int(BACNET_PROPERTY_VALUE *value_list,
int32_t 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_SIGNED_INT;
value_list->value.type.Signed_Int = 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;
}
#if defined(BACAPP_CHARACTER_STRING)
/**
* @brief Encode the Value List for CHARACTER_STRING Present-Value and