Ported bacnet-basic from zephyr project to create basis for mini example. (#933)
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user