From bec5836bbdd0cd06f3037c2809879433668e5909 Mon Sep 17 00:00:00 2001 From: skarg Date: Fri, 12 Aug 2016 21:54:02 +0000 Subject: [PATCH] Changed Device_Objects_Property_List() function to pass the object instance so that objects of the same type can have different optional or proprietary properties. --- bacnet-stack/demo/handler/h_rpm.c | 2 +- bacnet-stack/demo/object/device.c | 3 +++ bacnet-stack/demo/object/device.h | 1 + bacnet-stack/demo/piface/device.c | 2 ++ bacnet-stack/ports/at91sam7s/device.c | 2 ++ bacnet-stack/ports/bdk-atxx4-mstp/device.c | 2 ++ bacnet-stack/ports/rx62n/device.c | 2 ++ bacnet-stack/ports/stm32f10x/device.c | 2 ++ bacnet-stack/ports/xplained/device.c | 7 +++++-- 9 files changed, 20 insertions(+), 3 deletions(-) diff --git a/bacnet-stack/demo/handler/h_rpm.c b/bacnet-stack/demo/handler/h_rpm.c index 48f24fe9..66bae9a7 100644 --- a/bacnet-stack/demo/handler/h_rpm.c +++ b/bacnet-stack/demo/handler/h_rpm.c @@ -325,7 +325,7 @@ void handler_read_property_multiple( } else { special_object_property = rpmdata.object_property; Device_Objects_Property_List(rpmdata.object_type, - &property_list); + rpmdata.object_instance, &property_list); property_count = RPM_Object_Property_Count(&property_list, special_object_property); diff --git a/bacnet-stack/demo/object/device.c b/bacnet-stack/demo/object/device.c index 21caadc2..36ef8e7a 100644 --- a/bacnet-stack/demo/object/device.c +++ b/bacnet-stack/demo/object/device.c @@ -521,10 +521,12 @@ rr_info_function Device_Objects_RR_Info( */ void Device_Objects_Property_List( BACNET_OBJECT_TYPE object_type, + uint32_t object_instance, struct special_property_list_t *pPropertyList) { struct object_functions *pObject = NULL; + (void)object_instance; pPropertyList->Required.pList = NULL; pPropertyList->Optional.pList = NULL; pPropertyList->Proprietary.pList = NULL; @@ -1644,6 +1646,7 @@ int Device_Read_Property( if ((int)rpdata->object_property == PROP_PROPERTY_LIST) { Device_Objects_Property_List( rpdata->object_type, + rpdata->object_instance, &property_list); apdu_len = property_list_encode( rpdata, diff --git a/bacnet-stack/demo/object/device.h b/bacnet-stack/demo/object/device.h index aeb269bc..c78c9945 100644 --- a/bacnet-stack/demo/object/device.h +++ b/bacnet-stack/demo/object/device.h @@ -250,6 +250,7 @@ extern "C" { const int **pProprietary); void Device_Objects_Property_List( BACNET_OBJECT_TYPE object_type, + uint32_t object_instance, struct special_property_list_t *pPropertyList); /* functions to support COV */ bool Device_Encode_Value_List( diff --git a/bacnet-stack/demo/piface/device.c b/bacnet-stack/demo/piface/device.c index 17e72f6f..36918eb6 100644 --- a/bacnet-stack/demo/piface/device.c +++ b/bacnet-stack/demo/piface/device.c @@ -178,10 +178,12 @@ rr_info_function Device_Objects_RR_Info( */ void Device_Objects_Property_List( BACNET_OBJECT_TYPE object_type, + uint32_t object_instance, struct special_property_list_t *pPropertyList) { struct object_functions *pObject = NULL; + (void)object_instance; pPropertyList->Required.pList = NULL; pPropertyList->Optional.pList = NULL; pPropertyList->Proprietary.pList = NULL; diff --git a/bacnet-stack/ports/at91sam7s/device.c b/bacnet-stack/ports/at91sam7s/device.c index 349d65fc..341613c3 100644 --- a/bacnet-stack/ports/at91sam7s/device.c +++ b/bacnet-stack/ports/at91sam7s/device.c @@ -282,10 +282,12 @@ bool Device_Write_Property( /* for a given object type, returns the special property list */ void Device_Objects_Property_List( BACNET_OBJECT_TYPE object_type, + uint32_t object_instance, struct special_property_list_t *pPropertyList) { struct my_object_functions *pObject = NULL; + (void)object_instance; pPropertyList->Required.pList = NULL; pPropertyList->Optional.pList = NULL; pPropertyList->Proprietary.pList = NULL; diff --git a/bacnet-stack/ports/bdk-atxx4-mstp/device.c b/bacnet-stack/ports/bdk-atxx4-mstp/device.c index f5a4f60e..1145c6fe 100644 --- a/bacnet-stack/ports/bdk-atxx4-mstp/device.c +++ b/bacnet-stack/ports/bdk-atxx4-mstp/device.c @@ -226,10 +226,12 @@ static unsigned my_property_list_count( /* for a given object type, returns the special property list */ void Device_Objects_Property_List( BACNET_OBJECT_TYPE object_type, + uint32_t object_instance, struct special_property_list_t *pPropertyList) { struct my_object_functions *pObject = NULL; + (void)object_instance; pPropertyList->Required.pList = NULL; pPropertyList->Optional.pList = NULL; pPropertyList->Proprietary.pList = NULL; diff --git a/bacnet-stack/ports/rx62n/device.c b/bacnet-stack/ports/rx62n/device.c index c5016537..6d927856 100644 --- a/bacnet-stack/ports/rx62n/device.c +++ b/bacnet-stack/ports/rx62n/device.c @@ -220,10 +220,12 @@ static unsigned property_list_count( */ void Device_Objects_Property_List( BACNET_OBJECT_TYPE object_type, + uint32_t object_instance, struct special_property_list_t *pPropertyList) { struct my_object_functions *pObject = NULL; + (void)object_instance; pPropertyList->Required.pList = NULL; pPropertyList->Optional.pList = NULL; pPropertyList->Proprietary.pList = NULL; diff --git a/bacnet-stack/ports/stm32f10x/device.c b/bacnet-stack/ports/stm32f10x/device.c index 6110f90b..e2a30b15 100644 --- a/bacnet-stack/ports/stm32f10x/device.c +++ b/bacnet-stack/ports/stm32f10x/device.c @@ -280,10 +280,12 @@ static unsigned property_list_count( /* for a given object type, returns the special property list */ void Device_Objects_Property_List( BACNET_OBJECT_TYPE object_type, + uint32_t object_instance, struct special_property_list_t *pPropertyList) { struct my_object_functions *pObject = NULL; + (void)object_instance; pPropertyList->Required.pList = NULL; pPropertyList->Optional.pList = NULL; pPropertyList->Proprietary.pList = NULL; diff --git a/bacnet-stack/ports/xplained/device.c b/bacnet-stack/ports/xplained/device.c index 50b928d1..3ac9b638 100644 --- a/bacnet-stack/ports/xplained/device.c +++ b/bacnet-stack/ports/xplained/device.c @@ -71,7 +71,7 @@ static struct my_object_functions { NULL, NULL, NULL}, { OBJECT_ANALOG_INPUT, Analog_Input_Init, Analog_Input_Count, Analog_Input_Index_To_Instance, Analog_Input_Valid_Instance, - Analog_Input_Object_Name, Analog_Input_Read_Property, + Analog_Input_Object_Name, Analog_Input_Read_Property, Analog_Input_Write_Property, Analog_Input_Property_Lists, NULL, NULL, NULL}, { MAX_BACNET_OBJECT_TYPE, NULL, NULL, NULL, NULL, NULL, NULL, NULL} @@ -192,11 +192,14 @@ bool Device_Write_Property(BACNET_WRITE_PROPERTY_DATA * wp_data) } /* for a given object type, returns the special property list */ -void Device_Objects_Property_List(BACNET_OBJECT_TYPE object_type, +void Device_Objects_Property_List( + BACNET_OBJECT_TYPE object_type, + uint32_t object_instance, struct special_property_list_t *pPropertyList) { struct my_object_functions *pObject = NULL; + (void)object_instance; pPropertyList->Required.pList = NULL; pPropertyList->Optional.pList = NULL; pPropertyList->Proprietary.pList = NULL;