From a7c598306b3ef8b50d33d19f2f366bbee0d5539e Mon Sep 17 00:00:00 2001 From: skarg Date: Thu, 15 Oct 2009 04:06:19 +0000 Subject: [PATCH] Changed the object type print to be as defined in EPICS. Changed property names to show "proprietary #" when in proprietary range. --- bacnet-stack/demo/handler/h_rpm_a.c | 10 ++++++-- bacnet-stack/demo/handler/h_ucov.c | 9 +++++-- bacnet-stack/include/bacenum.h | 1 + bacnet-stack/src/bacapp.c | 40 +++++++++++++++++++++++------ 4 files changed, 48 insertions(+), 12 deletions(-) diff --git a/bacnet-stack/demo/handler/h_rpm_a.c b/bacnet-stack/demo/handler/h_rpm_a.c index efe9872e..5730a2c5 100644 --- a/bacnet-stack/demo/handler/h_rpm_a.c +++ b/bacnet-stack/demo/handler/h_rpm_a.c @@ -206,8 +206,14 @@ static void PrintReadPropertyMultipleData( listOfProperties = rpm_data->listOfProperties; while (listOfProperties) { #if PRINT_ENABLED - fprintf(stdout, " %s: ", - bactext_property_name(listOfProperties->propertyIdentifier)); + if (listOfProperties->propertyIdentifier < 512) { + fprintf(stdout, " %s: ", + bactext_property_name( + listOfProperties->propertyIdentifier)); + } else { + fprintf(stdout, " proprietary %u: ", + listOfProperties->propertyIdentifier); + } #endif if (listOfProperties->propertyArrayIndex != BACNET_ARRAY_ALL) { #if PRINT_ENABLED diff --git a/bacnet-stack/demo/handler/h_ucov.c b/bacnet-stack/demo/handler/h_ucov.c index a2cc2682..67aaab92 100644 --- a/bacnet-stack/demo/handler/h_ucov.c +++ b/bacnet-stack/demo/handler/h_ucov.c @@ -70,8 +70,13 @@ void handler_ucov_notification( bactext_object_type_name(cov_data.monitoredObjectIdentifier.type), cov_data.monitoredObjectIdentifier.instance); fprintf(stderr, "time remaining=%u seconds ", cov_data.timeRemaining); - fprintf(stderr, "%s ", - bactext_property_name(property_value.propertyIdentifier)); + if (property_value.propertyIdentifier < 512) { + fprintf(stderr, "%s ", + bactext_property_name(property_value.propertyIdentifier)); + } else { + fprintf(stderr, "proprietary %u ", + property_value.propertyIdentifier); + } if (property_value.propertyArrayIndex != BACNET_ARRAY_ALL) { fprintf(stderr, "%u ", property_value.propertyArrayIndex); } diff --git a/bacnet-stack/include/bacenum.h b/bacnet-stack/include/bacenum.h index f6e883f3..c21b02e0 100644 --- a/bacnet-stack/include/bacenum.h +++ b/bacnet-stack/include/bacenum.h @@ -903,6 +903,7 @@ typedef enum { /* the procedures and constraints described in Clause 23. */ } BACNET_OBJECT_TYPE; /* used for bit string loop */ +#define PROPRIETARY_BACNET_OBJECT_TYPE 128 #define MAX_BACNET_OBJECT_TYPE 1023 typedef enum { diff --git a/bacnet-stack/src/bacapp.c b/bacnet-stack/src/bacapp.c index c06dacef..6de46a3c 100644 --- a/bacnet-stack/src/bacapp.c +++ b/bacnet-stack/src/bacapp.c @@ -847,17 +847,31 @@ bool bacapp_print_value( case BACNET_APPLICATION_TAG_ENUMERATED: switch (property) { case PROP_OBJECT_TYPE: - fprintf(stream, "%s", - bactext_object_type_name(value->type.Enumerated)); + if (value->type.Enumerated < MAX_ASHRAE_OBJECT_TYPE) { + fprintf(stream, "%s", + bactext_object_type_name( + value->type.Enumerated)); + } else if (value->type.Enumerated < 128) { + fprintf(stream, "reserved %u", + value->type.Enumerated); + } else { + fprintf(stream, "proprietary %u", + value->type.Enumerated); + } break; case PROP_EVENT_STATE: fprintf(stream, "%s", bactext_event_state_name(value->type.Enumerated)); break; case PROP_UNITS: - fprintf(stream, "%s", - bactext_engineering_unit_name(value->type. - Enumerated)); + if (value->type.Enumerated < 256) { + fprintf(stream, "%s", + bactext_engineering_unit_name(value->type. + Enumerated)); + } else { + fprintf(stream, "proprietary %u",value->type. + Enumerated); + } break; case PROP_PRESENT_VALUE: fprintf(stream, "%s", @@ -921,9 +935,19 @@ bool bacapp_print_value( } break; case BACNET_APPLICATION_TAG_OBJECT_ID: - fprintf(stream, "%s %u", - bactext_object_type_name(value->type.Object_Id.type), - value->type.Object_Id.instance); + if (value->type.Object_Id.type < MAX_ASHRAE_OBJECT_TYPE) { + fprintf(stream, "(%s, %u)", + bactext_object_type_name(value->type.Object_Id.type), + value->type.Object_Id.instance); + } else if (value->type.Object_Id.type < 128) { + fprintf(stream, "(reserved %u, %u)", + value->type.Object_Id.type, + value->type.Object_Id.instance); + } else { + fprintf(stream, "(proprietary %u, %u)", + value->type.Object_Id.type, + value->type.Object_Id.instance); + } break; default: status = false;