From 2bb6ecfb3a57f5235fe00f11e18e38b33833c12b Mon Sep 17 00:00:00 2001 From: petermcs Date: Mon, 23 Nov 2009 08:17:49 +0000 Subject: [PATCH] Made device id optional when encoding to match spec for trend logs --- bacnet-stack/src/bacdevobjpropref.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/bacnet-stack/src/bacdevobjpropref.c b/bacnet-stack/src/bacdevobjpropref.c index cdba757c..01663e2b 100644 --- a/bacnet-stack/src/bacdevobjpropref.c +++ b/bacnet-stack/src/bacdevobjpropref.c @@ -75,16 +75,22 @@ int bacapp_encode_device_obj_property_ref( value->propertyIdentifier); apdu_len += len; + /* Array index is optional so check if needed before inserting */ if (value->arrayIndex > 0) { len = encode_context_unsigned(&apdu[apdu_len], 2, value->arrayIndex); apdu_len += len; } - len = - encode_context_object_id(&apdu[apdu_len], 3, - (int) value->deviceIndentifier.type, - value->deviceIndentifier.instance); - apdu_len += len; + /* Likewise, device id is optional so see if needed + * (set type to non device to omit */ + + if(value->deviceIndentifier.type == OBJECT_DEVICE) { + len = + encode_context_object_id(&apdu[apdu_len], 3, + (int) value->deviceIndentifier.type, + value->deviceIndentifier.instance); + apdu_len += len; + } return apdu_len; }