From b6b852ef0834d801ae46c02873ed73c4fa638616 Mon Sep 17 00:00:00 2001 From: skarg Date: Mon, 9 Jul 2012 21:52:19 +0000 Subject: [PATCH] Removed wildcard match for Device Instance since it is only done for ReadProperty and ReadPropertyMultiple services, and the match is done by substitution in those service handlers. --- bacnet-stack/demo/object/device-client.c | 4 +--- bacnet-stack/demo/object/device.c | 4 +--- bacnet-stack/demo/object/gw_device.c | 5 ++--- bacnet-stack/ports/at91sam7s/device.c | 4 +--- bacnet-stack/ports/atmega168/device.c | 3 +-- bacnet-stack/ports/atmega168/h_rp.c | 4 ++++ bacnet-stack/ports/bdk-atxx4-mstp/device.c | 4 +--- bacnet-stack/ports/pic18f6720/device.c | 3 +-- bacnet-stack/ports/pic18f6720/h_rp.c | 4 ++++ bacnet-stack/ports/rx62n/device.c | 4 +--- bacnet-stack/ports/stm32f10x/device.c | 4 +--- 11 files changed, 18 insertions(+), 25 deletions(-) diff --git a/bacnet-stack/demo/object/device-client.c b/bacnet-stack/demo/object/device-client.c index 8f2a686e..aedd2a1b 100644 --- a/bacnet-stack/demo/object/device-client.c +++ b/bacnet-stack/demo/object/device-client.c @@ -209,9 +209,7 @@ bool Device_Set_Object_Instance_Number( bool Device_Valid_Object_Instance_Number( uint32_t object_id) { - /* BACnet allows for a wildcard instance number */ - return ((Object_Instance_Number == object_id) || - (object_id == BACNET_MAX_INSTANCE)); + return (Object_Instance_Number == object_id); } bool Device_Object_Name( diff --git a/bacnet-stack/demo/object/device.c b/bacnet-stack/demo/object/device.c index fa8b1cab..f9a483e7 100644 --- a/bacnet-stack/demo/object/device.c +++ b/bacnet-stack/demo/object/device.c @@ -661,9 +661,7 @@ bool Device_Set_Object_Instance_Number( bool Device_Valid_Object_Instance_Number( uint32_t object_id) { - /* BACnet allows for a wildcard instance number */ - return ((Object_Instance_Number == object_id) || - (object_id == BACNET_MAX_INSTANCE)); + return (Object_Instance_Number == object_id); } bool Device_Object_Name( diff --git a/bacnet-stack/demo/object/gw_device.c b/bacnet-stack/demo/object/gw_device.c index 707dd31e..dbb9f778 100644 --- a/bacnet-stack/demo/object/gw_device.c +++ b/bacnet-stack/demo/object/gw_device.c @@ -393,11 +393,10 @@ bool Routed_Device_Valid_Object_Instance_Number( { bool bResult = false; DEVICE_OBJECT_DATA *pDev = &Devices[iCurrent_Device_Idx]; - /* BACnet allows for a wildcard instance number */ - if (object_id == BACNET_MAX_INSTANCE) - bResult = true; + if (pDev->bacObj.Object_Instance_Number == object_id) bResult = true; + return bResult; } diff --git a/bacnet-stack/ports/at91sam7s/device.c b/bacnet-stack/ports/at91sam7s/device.c index e5e1d60c..7e339df3 100644 --- a/bacnet-stack/ports/at91sam7s/device.c +++ b/bacnet-stack/ports/at91sam7s/device.c @@ -459,9 +459,7 @@ bool Device_Set_Object_Instance_Number( bool Device_Valid_Object_Instance_Number( uint32_t object_id) { - /* BACnet allows for a wildcard instance number */ - return ((Object_Instance_Number == object_id) || - (object_id == BACNET_MAX_INSTANCE)); + return (Object_Instance_Number == object_id); } BACNET_DEVICE_STATUS Device_System_Status( diff --git a/bacnet-stack/ports/atmega168/device.c b/bacnet-stack/ports/atmega168/device.c index ff904aa6..0494ecfb 100644 --- a/bacnet-stack/ports/atmega168/device.c +++ b/bacnet-stack/ports/atmega168/device.c @@ -91,8 +91,7 @@ bool Device_Valid_Object_Instance_Number( uint32_t object_id) { /* BACnet allows for a wildcard instance number */ - return ((Object_Instance_Number == object_id) || - (object_id == BACNET_MAX_INSTANCE)); + return (Object_Instance_Number == object_id); } uint16_t Device_Vendor_Identifier( diff --git a/bacnet-stack/ports/atmega168/h_rp.c b/bacnet-stack/ports/atmega168/h_rp.c index dbb0289e..c6efee86 100644 --- a/bacnet-stack/ports/atmega168/h_rp.c +++ b/bacnet-stack/ports/atmega168/h_rp.c @@ -54,6 +54,10 @@ int Encode_Property_APDU( /* handle each object type */ switch (rp_data->object_type) { case OBJECT_DEVICE: + /* Test for case of indefinite Device object instance */ + if (rp_data->object_instance == BACNET_MAX_INSTANCE) { + rp_data->object_instance = Device_Object_Instance_Number(); + } if (Device_Valid_Object_Instance_Number(rp_data->object_instance)) { apdu_len = Device_Encode_Property_APDU(&apdu[0], diff --git a/bacnet-stack/ports/bdk-atxx4-mstp/device.c b/bacnet-stack/ports/bdk-atxx4-mstp/device.c index 1fe246cd..8ef4856b 100644 --- a/bacnet-stack/ports/bdk-atxx4-mstp/device.c +++ b/bacnet-stack/ports/bdk-atxx4-mstp/device.c @@ -458,9 +458,7 @@ bool Device_Set_Object_Instance_Number( bool Device_Valid_Object_Instance_Number( uint32_t object_id) { - /* BACnet allows for a wildcard instance number */ - return ((Object_Instance_Number == object_id) || - (object_id == BACNET_MAX_INSTANCE)); + return (Object_Instance_Number == object_id); } BACNET_DEVICE_STATUS Device_System_Status( diff --git a/bacnet-stack/ports/pic18f6720/device.c b/bacnet-stack/ports/pic18f6720/device.c index 68b04895..ddaa5678 100644 --- a/bacnet-stack/ports/pic18f6720/device.c +++ b/bacnet-stack/ports/pic18f6720/device.c @@ -123,8 +123,7 @@ bool Device_Valid_Object_Instance_Number( uint32_t object_id) { /* BACnet allows for a wildcard instance number */ - return ((Object_Instance_Number == object_id) || - (object_id == BACNET_MAX_INSTANCE)); + return (Object_Instance_Number == object_id); } BACNET_DEVICE_STATUS Device_System_Status( diff --git a/bacnet-stack/ports/pic18f6720/h_rp.c b/bacnet-stack/ports/pic18f6720/h_rp.c index 0acdabfb..54dd337b 100644 --- a/bacnet-stack/ports/pic18f6720/h_rp.c +++ b/bacnet-stack/ports/pic18f6720/h_rp.c @@ -89,6 +89,10 @@ void handler_read_property( error = true; switch (data.object_type) { case OBJECT_DEVICE: + /* Test for case of indefinite Device object instance */ + if (data.object_instance == BACNET_MAX_INSTANCE) { + data.object_instance = Device_Object_Instance_Number(); + } /* FIXME: probably need a length limitation sent with encode */ if (Device_Valid_Object_Instance_Number(data.object_instance)) { len = diff --git a/bacnet-stack/ports/rx62n/device.c b/bacnet-stack/ports/rx62n/device.c index 1409afb0..991ccede 100644 --- a/bacnet-stack/ports/rx62n/device.c +++ b/bacnet-stack/ports/rx62n/device.c @@ -334,9 +334,7 @@ bool Device_Set_Object_Instance_Number( bool Device_Valid_Object_Instance_Number( uint32_t object_id) { - /* BACnet allows for a wildcard instance number */ - return ((Object_Instance_Number == object_id) || - (object_id == BACNET_MAX_INSTANCE)); + return (Object_Instance_Number == object_id); } char *Device_Name( diff --git a/bacnet-stack/ports/stm32f10x/device.c b/bacnet-stack/ports/stm32f10x/device.c index f773dbf9..a04935d5 100644 --- a/bacnet-stack/ports/stm32f10x/device.c +++ b/bacnet-stack/ports/stm32f10x/device.c @@ -445,9 +445,7 @@ bool Device_Set_Object_Instance_Number( bool Device_Valid_Object_Instance_Number( uint32_t object_id) { - /* BACnet allows for a wildcard instance number */ - return ((Object_Instance_Number == object_id) || - (object_id == BACNET_MAX_INSTANCE)); + return (Object_Instance_Number == object_id); } BACNET_DEVICE_STATUS Device_System_Status(