Ported bacnet-basic from zephyr project to create basis for mini example. (#933)

This commit is contained in:
Steve Karg
2025-02-27 15:49:29 -06:00
committed by GitHub
parent 4ebc1a4566
commit 3e480f41e2
23 changed files with 3162 additions and 147 deletions
+24 -30
View File
@@ -57,7 +57,8 @@ static analog_output_write_present_value_callback
/* These three arrays are used by the ReadPropertyMultiple handler */
static const int Analog_Output_Properties_Required[] = {
static const int Properties_Required[] = {
/* unordered list of required properties */
PROP_OBJECT_IDENTIFIER,
PROP_OBJECT_NAME,
PROP_OBJECT_TYPE,
@@ -74,12 +75,13 @@ static const int Analog_Output_Properties_Required[] = {
-1
};
static const int Analog_Output_Properties_Optional[] = {
static const int Properties_Optional[] = {
/* unordered list of optional properties */
PROP_RELIABILITY, PROP_DESCRIPTION, PROP_COV_INCREMENT,
PROP_MIN_PRES_VALUE, PROP_MAX_PRES_VALUE, -1
};
static const int Analog_Output_Properties_Proprietary[] = { -1 };
static const int Properties_Proprietary[] = { -1 };
/**
* @brief Returns the list of required, optional, and proprietary properties.
@@ -95,13 +97,13 @@ void Analog_Output_Property_Lists(
const int **pRequired, const int **pOptional, const int **pProprietary)
{
if (pRequired) {
*pRequired = Analog_Output_Properties_Required;
*pRequired = Properties_Required;
}
if (pOptional) {
*pOptional = Analog_Output_Properties_Optional;
*pOptional = Properties_Optional;
}
if (pProprietary) {
*pProprietary = Analog_Output_Properties_Proprietary;
*pProprietary = Properties_Proprietary;
}
return;
@@ -985,7 +987,13 @@ int Analog_Output_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata)
(rpdata->application_data_len == 0)) {
return 0;
}
if (!property_lists_member(
Properties_Required, Properties_Optional, Properties_Proprietary,
rpdata->object_property)) {
rpdata->error_class = ERROR_CLASS_PROPERTY;
rpdata->error_code = ERROR_CODE_UNKNOWN_PROPERTY;
return BACNET_STATUS_ERROR;
}
apdu = rpdata->application_data;
apdu_size = rpdata->application_data_len;
switch (rpdata->object_property) {
@@ -1069,7 +1077,6 @@ int Analog_Output_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata)
apdu_len = encode_application_real(
&apdu[0], Analog_Output_COV_Increment(rpdata->object_instance));
break;
#if (BACNET_PROTOCOL_REVISION >= 17)
case PROP_CURRENT_COMMAND_PRIORITY:
i = Analog_Output_Present_Value_Priority(rpdata->object_instance);
if ((i >= BACNET_MIN_PRIORITY) && (i <= BACNET_MAX_PRIORITY)) {
@@ -1078,7 +1085,6 @@ int Analog_Output_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata)
apdu_len = encode_application_null(&apdu[0]);
}
break;
#endif
default:
rpdata->error_class = ERROR_CLASS_PROPERTY;
rpdata->error_code = ERROR_CODE_UNKNOWN_PROPERTY;
@@ -1139,28 +1145,16 @@ bool Analog_Output_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data)
wp_data->object_instance, value.type.Boolean);
}
break;
case PROP_COV_INCREMENT:
case PROP_OBJECT_IDENTIFIER:
case PROP_OBJECT_TYPE:
case PROP_OBJECT_NAME:
case PROP_STATUS_FLAGS:
case PROP_EVENT_STATE:
case PROP_UNITS:
case PROP_RELIABILITY:
case PROP_PRIORITY_ARRAY:
case PROP_RELINQUISH_DEFAULT:
case PROP_MAX_PRES_VALUE:
case PROP_MIN_PRES_VALUE:
case PROP_DESCRIPTION:
#if (BACNET_PROTOCOL_REVISION >= 17)
case PROP_CURRENT_COMMAND_PRIORITY:
#endif
wp_data->error_class = ERROR_CLASS_PROPERTY;
wp_data->error_code = ERROR_CODE_WRITE_ACCESS_DENIED;
break;
default:
wp_data->error_class = ERROR_CLASS_PROPERTY;
wp_data->error_code = ERROR_CODE_UNKNOWN_PROPERTY;
if (property_lists_member(
Properties_Required, Properties_Optional,
Properties_Proprietary, wp_data->object_property)) {
wp_data->error_class = ERROR_CLASS_PROPERTY;
wp_data->error_code = ERROR_CODE_WRITE_ACCESS_DENIED;
} else {
wp_data->error_class = ERROR_CLASS_PROPERTY;
wp_data->error_code = ERROR_CODE_UNKNOWN_PROPERTY;
}
break;
}
+24 -31
View File
@@ -59,7 +59,8 @@ static binary_lighting_output_blink_warn_callback
/* These arrays are used by the ReadPropertyMultiple handler and
property-list property (as of protocol-revision 14) */
static const int Binary_Lighting_Output_Properties_Required[] = {
static const int Properties_Required[] = {
/* unordered list of required properties */
PROP_OBJECT_IDENTIFIER,
PROP_OBJECT_NAME,
PROP_OBJECT_TYPE,
@@ -76,11 +77,12 @@ static const int Binary_Lighting_Output_Properties_Required[] = {
#endif
-1
};
static const int Binary_Lighting_Output_Properties_Optional[] = {
static const int Properties_Optional[] = {
/* unordered list of optional properties */
PROP_DESCRIPTION, PROP_RELIABILITY, PROP_FEEDBACK_VALUE, -1
};
static const int Binary_Lighting_Output_Properties_Proprietary[] = { -1 };
static const int Properties_Proprietary[] = { -1 };
/**
* Returns the list of required, optional, and proprietary properties.
@@ -97,13 +99,13 @@ void Binary_Lighting_Output_Property_Lists(
const int **pRequired, const int **pOptional, const int **pProprietary)
{
if (pRequired) {
*pRequired = Binary_Lighting_Output_Properties_Required;
*pRequired = Properties_Required;
}
if (pOptional) {
*pOptional = Binary_Lighting_Output_Properties_Optional;
*pOptional = Properties_Optional;
}
if (pProprietary) {
*pProprietary = Binary_Lighting_Output_Properties_Proprietary;
*pProprietary = Properties_Proprietary;
}
return;
@@ -1263,6 +1265,13 @@ int Binary_Lighting_Output_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata)
(rpdata->application_data_len == 0)) {
return 0;
}
if (!property_lists_member(
Properties_Required, Properties_Optional, Properties_Proprietary,
rpdata->object_property)) {
rpdata->error_class = ERROR_CLASS_PROPERTY;
rpdata->error_code = ERROR_CODE_UNKNOWN_PROPERTY;
return BACNET_STATUS_ERROR;
}
apdu = rpdata->application_data;
apdu_size = rpdata->application_data_len;
switch (rpdata->object_property) {
@@ -1338,7 +1347,6 @@ int Binary_Lighting_Output_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata)
rpdata->object_instance);
apdu_len = encode_application_enumerated(&apdu[0], lighting_value);
break;
#if (BACNET_PROTOCOL_REVISION >= 17)
case PROP_CURRENT_COMMAND_PRIORITY:
i = Binary_Lighting_Output_Present_Value_Priority(
rpdata->object_instance);
@@ -1348,7 +1356,6 @@ int Binary_Lighting_Output_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata)
apdu_len = encode_application_null(&apdu[0]);
}
break;
#endif
case PROP_DESCRIPTION:
characterstring_init_ansi(
&char_string,
@@ -1424,30 +1431,16 @@ bool Binary_Lighting_Output_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data)
wp_data->object_instance, value.type.Boolean);
}
break;
case PROP_OBJECT_IDENTIFIER:
case PROP_OBJECT_NAME:
case PROP_OBJECT_TYPE:
case PROP_TRACKING_VALUE:
case PROP_IN_PROGRESS:
case PROP_STATUS_FLAGS:
case PROP_BLINK_WARN_ENABLE:
case PROP_EGRESS_TIME:
case PROP_EGRESS_ACTIVE:
case PROP_PRIORITY_ARRAY:
case PROP_RELINQUISH_DEFAULT:
case PROP_LIGHTING_COMMAND_DEFAULT_PRIORITY:
#if (BACNET_PROTOCOL_REVISION >= 17)
case PROP_CURRENT_COMMAND_PRIORITY:
#endif
case PROP_DESCRIPTION:
case PROP_RELIABILITY:
case PROP_FEEDBACK_VALUE:
wp_data->error_class = ERROR_CLASS_PROPERTY;
wp_data->error_code = ERROR_CODE_WRITE_ACCESS_DENIED;
break;
default:
wp_data->error_class = ERROR_CLASS_PROPERTY;
wp_data->error_code = ERROR_CODE_UNKNOWN_PROPERTY;
if (property_lists_member(
Properties_Required, Properties_Optional,
Properties_Proprietary, wp_data->object_property)) {
wp_data->error_class = ERROR_CLASS_PROPERTY;
wp_data->error_code = ERROR_CODE_WRITE_ACCESS_DENIED;
} else {
wp_data->error_class = ERROR_CLASS_PROPERTY;
wp_data->error_code = ERROR_CODE_UNKNOWN_PROPERTY;
}
break;
}
+26 -17
View File
@@ -56,24 +56,28 @@ static binary_output_write_present_value_callback
Binary_Output_Write_Present_Value_Callback;
/* These three arrays are used by the ReadPropertyMultiple handler */
static const int Properties_Required[] = { PROP_OBJECT_IDENTIFIER,
PROP_OBJECT_NAME,
PROP_OBJECT_TYPE,
PROP_PRESENT_VALUE,
PROP_STATUS_FLAGS,
PROP_EVENT_STATE,
PROP_OUT_OF_SERVICE,
PROP_POLARITY,
PROP_PRIORITY_ARRAY,
PROP_RELINQUISH_DEFAULT,
static const int Properties_Required[] = {
/* unordered list of required properties */
PROP_OBJECT_IDENTIFIER,
PROP_OBJECT_NAME,
PROP_OBJECT_TYPE,
PROP_PRESENT_VALUE,
PROP_STATUS_FLAGS,
PROP_EVENT_STATE,
PROP_OUT_OF_SERVICE,
PROP_POLARITY,
PROP_PRIORITY_ARRAY,
PROP_RELINQUISH_DEFAULT,
#if (BACNET_PROTOCOL_REVISION >= 17)
PROP_CURRENT_COMMAND_PRIORITY,
PROP_CURRENT_COMMAND_PRIORITY,
#endif
-1 };
-1
};
static const int Properties_Optional[] = { PROP_RELIABILITY, PROP_DESCRIPTION,
PROP_ACTIVE_TEXT, PROP_INACTIVE_TEXT,
-1 };
static const int Properties_Optional[] = {
/* unordered list of optional properties */
PROP_RELIABILITY, PROP_DESCRIPTION, PROP_ACTIVE_TEXT, PROP_INACTIVE_TEXT, -1
};
static const int Properties_Proprietary[] = { -1 };
@@ -987,6 +991,13 @@ int Binary_Output_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata)
(rpdata->application_data_len == 0)) {
return 0;
}
if (!property_lists_member(
Properties_Required, Properties_Optional, Properties_Proprietary,
rpdata->object_property)) {
rpdata->error_class = ERROR_CLASS_PROPERTY;
rpdata->error_code = ERROR_CODE_UNKNOWN_PROPERTY;
return BACNET_STATUS_ERROR;
}
apdu = rpdata->application_data;
apdu_size = rpdata->application_data_len;
switch (rpdata->object_property) {
@@ -1073,7 +1084,6 @@ int Binary_Output_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata)
apdu_len =
encode_application_character_string(&apdu[0], &char_string);
break;
#if (BACNET_PROTOCOL_REVISION >= 17)
case PROP_CURRENT_COMMAND_PRIORITY:
i = Binary_Output_Present_Value_Priority(rpdata->object_instance);
if ((i >= BACNET_MIN_PRIORITY) && (i <= BACNET_MAX_PRIORITY)) {
@@ -1082,7 +1092,6 @@ int Binary_Output_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata)
apdu_len = encode_application_null(&apdu[0]);
}
break;
#endif
default:
rpdata->error_class = ERROR_CLASS_PROPERTY;
rpdata->error_code = ERROR_CODE_UNKNOWN_PROPERTY;
+2 -2
View File
@@ -125,7 +125,7 @@ uint32_t CharacterString_Value_Create(uint32_t object_instance)
* @param object_instance - object-instance number of the object
* @return true if the object is deleted
*/
bool Characterstring_Value_Delete(uint32_t object_instance)
bool CharacterString_Value_Delete(uint32_t object_instance)
{
bool status = false;
struct object_data *pObject = NULL;
@@ -142,7 +142,7 @@ bool Characterstring_Value_Delete(uint32_t object_instance)
/**
* @brief Cleans up the object list and its data
*/
void Characterstring_Value_Cleanup(void)
void CharacterString_Value_Cleanup(void)
{
struct object_data *pObject = NULL;
+2 -2
View File
@@ -27,9 +27,9 @@ void CharacterString_Value_Property_Lists(
BACNET_STACK_EXPORT
uint32_t CharacterString_Value_Create(uint32_t object_instance);
BACNET_STACK_EXPORT
bool Characterstring_Value_Delete(uint32_t object_instance);
bool CharacterString_Value_Delete(uint32_t object_instance);
BACNET_STACK_EXPORT
void Characterstring_Value_Cleanup(void);
void CharacterString_Value_Cleanup(void);
BACNET_STACK_EXPORT
bool CharacterString_Value_Valid_Instance(uint32_t object_instance);
BACNET_STACK_EXPORT
+12 -21
View File
@@ -52,28 +52,18 @@
#if defined(BACFILE)
#include "bacnet/basic/object/bacfile.h"
#endif /* defined(BACFILE) */
#if (BACNET_PROTOCOL_REVISION >= 10)
#include "bacnet/basic/object/bitstring_value.h"
#include "bacnet/basic/object/csv.h"
#include "bacnet/basic/object/iv.h"
#include "bacnet/basic/object/osv.h"
#include "bacnet/basic/object/piv.h"
#include "bacnet/basic/object/time_value.h"
#endif
#if (BACNET_PROTOCOL_REVISION >= 14)
#include "bacnet/basic/object/channel.h"
#include "bacnet/basic/object/lo.h"
#endif
#if (BACNET_PROTOCOL_REVISION >= 16)
#include "bacnet/basic/object/blo.h"
#endif
#if (BACNET_PROTOCOL_REVISION >= 17)
#include "bacnet/basic/object/netport.h"
#endif
#if (BACNET_PROTOCOL_REVISION >= 24)
#include "bacnet/basic/object/color_object.h"
#include "bacnet/basic/object/color_temperature.h"
#endif
/* external prototypes */
extern int Routed_Device_Read_Property_Local(BACNET_READ_PROPERTY_DATA *rpdata);
@@ -187,7 +177,8 @@ static object_functions_t My_Object_Table[] = {
CharacterString_Value_Change_Of_Value,
CharacterString_Value_Change_Of_Value_Clear,
NULL /* Intrinsic Reporting */, NULL /* Add_List_Element */,
NULL /* Remove_List_Element */, NULL /* Create */, NULL /* Delete */,
NULL /* Remove_List_Element */, CharacterString_Value_Create,
CharacterString_Value_Delete,
NULL /* Timer */ },
{ OBJECT_OCTETSTRING_VALUE, OctetString_Value_Init, OctetString_Value_Count,
OctetString_Value_Index_To_Instance, OctetString_Value_Valid_Instance,
@@ -215,14 +206,6 @@ static object_functions_t My_Object_Table[] = {
NULL /* COV */, NULL /* COV Clear */, NULL /* Intrinsic Reporting */,
NULL /* Add_List_Element */, NULL /* Remove_List_Element */,
NULL /* Create */, NULL /* Delete */, NULL /* Timer */ },
#endif
{ OBJECT_COMMAND, Command_Init, Command_Count, Command_Index_To_Instance,
Command_Valid_Instance, Command_Object_Name, Command_Read_Property,
Command_Write_Property, Command_Property_Lists,
NULL /* ReadRangeInfo */, NULL /* Iterator */, NULL /* Value_Lists */,
NULL /* COV */, NULL /* COV Clear */, NULL /* Intrinsic Reporting */,
NULL /* Add_List_Element */, NULL /* Remove_List_Element */,
NULL /* Create */, NULL /* Delete */, NULL /* Timer */ },
{ OBJECT_INTEGER_VALUE, Integer_Value_Init, Integer_Value_Count,
Integer_Value_Index_To_Instance, Integer_Value_Valid_Instance,
Integer_Value_Object_Name, Integer_Value_Read_Property,
@@ -230,8 +213,16 @@ static object_functions_t My_Object_Table[] = {
NULL /* ReadRangeInfo */, NULL /* Iterator */, NULL /* Value_Lists */,
NULL /* COV */, NULL /* COV Clear */, NULL /* Intrinsic Reporting */,
NULL /* Add_List_Element */, NULL /* Remove_List_Element */,
NULL /* Create */, NULL /* Delete */, NULL /* Timer */ },
#if defined(INTRINSIC_REPORTING)
Integer_Value_Create, Integer_Value_Delete, NULL /* Timer */ },
#endif
{ OBJECT_COMMAND, Command_Init, Command_Count, Command_Index_To_Instance,
Command_Valid_Instance, Command_Object_Name, Command_Read_Property,
Command_Write_Property, Command_Property_Lists,
NULL /* ReadRangeInfo */, NULL /* Iterator */, NULL /* Value_Lists */,
NULL /* COV */, NULL /* COV Clear */, NULL /* Intrinsic Reporting */,
NULL /* Add_List_Element */, NULL /* Remove_List_Element */,
NULL /* Create */, NULL /* Delete */, NULL /* Timer */ },
#if defined(INTRINSIC_REPORTING)
{ OBJECT_NOTIFICATION_CLASS, Notification_Class_Init,
Notification_Class_Count, Notification_Class_Index_To_Instance,
Notification_Class_Valid_Instance, Notification_Class_Object_Name,
+24 -38
View File
@@ -63,7 +63,8 @@ static lighting_command_tracking_value_callback
/* These arrays are used by the ReadPropertyMultiple handler and
property-list property (as of protocol-revision 14) */
static const int Lighting_Output_Properties_Required[] = {
static const int Properties_Required[] = {
/* unordered list of required properties */
PROP_OBJECT_IDENTIFIER,
PROP_OBJECT_NAME,
PROP_OBJECT_TYPE,
@@ -87,7 +88,8 @@ static const int Lighting_Output_Properties_Required[] = {
#endif
-1
};
static const int Lighting_Output_Properties_Optional[] = {
static const int Properties_Optional[] = {
/* unordered list of optional properties */
PROP_DESCRIPTION,
PROP_TRANSITION,
#if (BACNET_PROTOCOL_REVISION >= 24)
@@ -98,7 +100,7 @@ static const int Lighting_Output_Properties_Optional[] = {
-1
};
static const int Lighting_Output_Properties_Proprietary[] = { -1 };
static const int Properties_Proprietary[] = { -1 };
/**
* Returns the list of required, optional, and proprietary properties.
@@ -115,13 +117,13 @@ void Lighting_Output_Property_Lists(
const int **pRequired, const int **pOptional, const int **pProprietary)
{
if (pRequired) {
*pRequired = Lighting_Output_Properties_Required;
*pRequired = Properties_Required;
}
if (pOptional) {
*pOptional = Lighting_Output_Properties_Optional;
*pOptional = Properties_Optional;
}
if (pProprietary) {
*pProprietary = Lighting_Output_Properties_Proprietary;
*pProprietary = Properties_Proprietary;
}
return;
@@ -2004,9 +2006,7 @@ int Lighting_Output_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata)
BACNET_BIT_STRING bit_string;
BACNET_CHARACTER_STRING char_string;
BACNET_LIGHTING_COMMAND lighting_command;
#if (BACNET_PROTOCOL_REVISION >= 24)
BACNET_OBJECT_ID object_id = { 0 };
#endif
float real_value = (float)1.414;
uint32_t unsigned_value = 0;
unsigned i = 0;
@@ -2017,6 +2017,13 @@ int Lighting_Output_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata)
(rpdata->application_data_len == 0)) {
return 0;
}
if (!property_lists_member(
Properties_Required, Properties_Optional, Properties_Proprietary,
rpdata->object_property)) {
rpdata->error_class = ERROR_CLASS_PROPERTY;
rpdata->error_code = ERROR_CODE_UNKNOWN_PROPERTY;
return BACNET_STATUS_ERROR;
}
apdu = rpdata->application_data;
apdu_size = rpdata->application_data_len;
switch (rpdata->object_property) {
@@ -2120,7 +2127,6 @@ int Lighting_Output_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata)
Lighting_Output_Default_Priority(rpdata->object_instance);
apdu_len = encode_application_unsigned(&apdu[0], unsigned_value);
break;
#if (BACNET_PROTOCOL_REVISION >= 17)
case PROP_CURRENT_COMMAND_PRIORITY:
i = Lighting_Output_Present_Value_Priority(rpdata->object_instance);
if ((i >= BACNET_MIN_PRIORITY) && (i <= BACNET_MAX_PRIORITY)) {
@@ -2129,8 +2135,6 @@ int Lighting_Output_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata)
apdu_len = encode_application_null(&apdu[0]);
}
break;
#endif
#if (BACNET_PROTOCOL_REVISION >= 24)
case PROP_COLOR_OVERRIDE:
apdu_len = encode_application_boolean(
&apdu[0],
@@ -2148,7 +2152,6 @@ int Lighting_Output_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata)
apdu_len = encode_application_object_id(
&apdu[0], object_id.type, object_id.instance);
break;
#endif
case PROP_DESCRIPTION:
characterstring_init_ansi(
&char_string,
@@ -2274,33 +2277,16 @@ bool Lighting_Output_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data)
&wp_data->error_code);
}
break;
case PROP_OBJECT_IDENTIFIER:
case PROP_OBJECT_NAME:
case PROP_OBJECT_TYPE:
case PROP_TRACKING_VALUE:
case PROP_IN_PROGRESS:
case PROP_STATUS_FLAGS:
case PROP_BLINK_WARN_ENABLE:
case PROP_EGRESS_TIME:
case PROP_EGRESS_ACTIVE:
case PROP_PRIORITY_ARRAY:
case PROP_RELINQUISH_DEFAULT:
case PROP_LIGHTING_COMMAND_DEFAULT_PRIORITY:
#if (BACNET_PROTOCOL_REVISION >= 17)
case PROP_CURRENT_COMMAND_PRIORITY:
#endif
#if (BACNET_PROTOCOL_REVISION >= 24)
case PROP_COLOR_OVERRIDE:
case PROP_COLOR_REFERENCE:
case PROP_OVERRIDE_COLOR_REFERENCE:
#endif
case PROP_DESCRIPTION:
wp_data->error_class = ERROR_CLASS_PROPERTY;
wp_data->error_code = ERROR_CODE_WRITE_ACCESS_DENIED;
break;
default:
wp_data->error_class = ERROR_CLASS_PROPERTY;
wp_data->error_code = ERROR_CODE_UNKNOWN_PROPERTY;
if (property_lists_member(
Properties_Required, Properties_Optional,
Properties_Proprietary, wp_data->object_property)) {
wp_data->error_class = ERROR_CLASS_PROPERTY;
wp_data->error_code = ERROR_CODE_WRITE_ACCESS_DENIED;
} else {
wp_data->error_class = ERROR_CLASS_PROPERTY;
wp_data->error_code = ERROR_CODE_UNKNOWN_PROPERTY;
}
break;
}
+7 -2
View File
@@ -934,6 +934,13 @@ int Multistate_Output_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata)
(rpdata->application_data_len == 0)) {
return 0;
}
if (!property_lists_member(
Properties_Required, Properties_Optional, Properties_Proprietary,
rpdata->object_property)) {
rpdata->error_class = ERROR_CLASS_PROPERTY;
rpdata->error_code = ERROR_CODE_UNKNOWN_PROPERTY;
return BACNET_STATUS_ERROR;
}
apdu = rpdata->application_data;
apdu_size = rpdata->application_data_len;
switch (rpdata->object_property) {
@@ -1024,7 +1031,6 @@ int Multistate_Output_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata)
apdu_len =
encode_application_character_string(&apdu[0], &char_string);
break;
#if (BACNET_PROTOCOL_REVISION >= 17)
case PROP_CURRENT_COMMAND_PRIORITY:
i = Multistate_Output_Present_Value_Priority(
rpdata->object_instance);
@@ -1034,7 +1040,6 @@ int Multistate_Output_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata)
apdu_len = encode_application_null(&apdu[0]);
}
break;
#endif
default:
rpdata->error_class = ERROR_CLASS_PROPERTY;
rpdata->error_code = ERROR_CODE_UNKNOWN_PROPERTY;