From 15f8e6741d0dd715de0022fc3c8e87acf615dd84 Mon Sep 17 00:00:00 2001 From: tbrennan3 Date: Tue, 1 Jun 2010 21:21:20 +0000 Subject: [PATCH] Corrected the Object Names for 37 and 38 (and friendlier text now). In bacepics, now counts errors and displays error count at the end (if any). Always prints out the Device Address Binding as a '?' if it is Null. --- bacnet-stack/demo/epics/main.c | 14 +++++++++ bacnet-stack/include/bacenum.h | 8 ++--- bacnet-stack/src/bactext.c | 54 +++++++++++++++++----------------- 3 files changed, 45 insertions(+), 31 deletions(-) diff --git a/bacnet-stack/demo/epics/main.c b/bacnet-stack/demo/epics/main.c index 87e63196..211f8f4e 100644 --- a/bacnet-stack/demo/epics/main.c +++ b/bacnet-stack/demo/epics/main.c @@ -76,6 +76,7 @@ static bool Provided_Targ_MAC = false; static bool Error_Detected = false; static uint16_t Last_Error_Class = 0; static uint16_t Last_Error_Code = 0; +static uint16_t Error_Count = 0; /* Counts errors we couldn't get around */ static bool Has_RPM = true; /* Assume device can do RPM, to start */ static EPICS_STATES myState = INITIAL_BINDING; @@ -504,6 +505,13 @@ void PrintReadPropertyData( * screen these out here, unless ShowValues is true. */ switch (rpm_property->propertyIdentifier) { case PROP_DEVICE_ADDRESS_BINDING: + /* Make it VTS3-friendly and don't show "Null" + * as a value. */ + if ( value->tag == BACNET_APPLICATION_TAG_NULL ) { + fprintf(stdout, "?"); + break; + } + /* Else, fall through for normal processing. */ case PROP_DAYLIGHT_SAVINGS_STATUS: case PROP_LOCAL_DATE: case PROP_LOCAL_TIME: @@ -1023,6 +1031,7 @@ int main( /* Don't think we'll ever actually reach this point. */ invoke_id = 0; myState = NEXT_OBJECT; /* Give up and move on to the next. */ + Error_Count++; } break; @@ -1098,6 +1107,7 @@ int main( Print_Property_Identifier( pPropList[Property_List_Index]); fprintf(stdout, " \r\n"); + Error_Count++; if ( ++Property_List_Index >= Property_List_Length ) myState = NEXT_OBJECT; /* Give up and move on to the next. */ } @@ -1111,6 +1121,7 @@ int main( /* Don't think we'll ever actually reach this point. */ invoke_id = 0; myState = NEXT_OBJECT; /* Give up and move on to the next. */ + Error_Count++; } break; @@ -1171,6 +1182,9 @@ int main( } while (myObject.type < MAX_BACNET_OBJECT_TYPE); + if ( Error_Count > 0 ) + fprintf(stderr, "\r-- Found %d Errors \r\n", Error_Count ); + /* Closing brace for all Objects */ printf("} \r\n"); diff --git a/bacnet-stack/include/bacenum.h b/bacnet-stack/include/bacenum.h index 18617c2a..80eec992 100644 --- a/bacnet-stack/include/bacenum.h +++ b/bacnet-stack/include/bacenum.h @@ -899,14 +899,14 @@ typedef enum { OBJECT_STRUCTURED_VIEW = 29, OBJECT_ACCESS_DOOR = 30, OBJECT_LIGHTING_OUTPUT = 31, - OBJECT_ACCESS_CREDENTIAL = 32, + OBJECT_ACCESS_CREDENTIAL = 32, /* Addendum 2008-j */ OBJECT_ACCESS_POINT = 33, OBJECT_ACCESS_RIGHTS = 34, OBJECT_ACCESS_USER = 35, OBJECT_ACCESS_ZONE = 36, - OBJECT_AUTHENTICATION_FACTOR_INPUT = 37, /* credential-data-input */ - mysterious_OBJECT_TYPE = 38, /* Can't find anything assigned to this */ - OBJECT_BITSTRING_VALUE = 39, /* Addendum 2008-w */ + OBJECT_CREDENTIAL_DATA_INPUT = 37, /* authentication-factor-input */ + OBJECT_NETWORK_SECURITY = 38, /* Addendum 2008-g */ + OBJECT_BITSTRING_VALUE = 39, /* Addendum 2008-w */ OBJECT_CHARACTERSTRING_VALUE = 40, OBJECT_DATE_PATTERN_VALUE = 41, OBJECT_DATE_VALUE = 42, diff --git a/bacnet-stack/src/bactext.c b/bacnet-stack/src/bactext.c index 36153eff..2e5c14ed 100644 --- a/bacnet-stack/src/bactext.c +++ b/bacnet-stack/src/bactext.c @@ -208,59 +208,59 @@ INDTEXT_DATA bacnet_object_type_names[] = { , {OBJECT_ACCUMULATOR, "Accumulator"} , - {OBJECT_PULSE_CONVERTER, "Pulse-Converter"} + {OBJECT_PULSE_CONVERTER, "Pulse Converter"} , - {OBJECT_EVENT_LOG, "Event-Log"} + {OBJECT_EVENT_LOG, "Event Log"} , - {OBJECT_GLOBAL_GROUP, "Global-Group"} + {OBJECT_GLOBAL_GROUP, "Global Group"} , - {OBJECT_TREND_LOG_MULTIPLE, "Trend-Log-Multiple"} + {OBJECT_TREND_LOG_MULTIPLE, "Trend Log Multiple"} , - {OBJECT_LOAD_CONTROL, "Load-Control"} + {OBJECT_LOAD_CONTROL, "Load Control"} , - {OBJECT_STRUCTURED_VIEW, "Structured-View"} + {OBJECT_STRUCTURED_VIEW, "Structured View"} , - {OBJECT_ACCESS_DOOR, "Access-Door"} + {OBJECT_ACCESS_DOOR, "Access Door"} , - {OBJECT_LIGHTING_OUTPUT, "Lighting-Output"} + {OBJECT_LIGHTING_OUTPUT, "Lighting Output"} , - {OBJECT_ACCESS_CREDENTIAL, "Access-Credential"} + {OBJECT_ACCESS_CREDENTIAL, "Access Credential"} , - {OBJECT_ACCESS_POINT, "Access-Point"} + {OBJECT_ACCESS_POINT, "Access Point"} , - {OBJECT_ACCESS_RIGHTS, "Access-Rights"} + {OBJECT_ACCESS_RIGHTS, "Access Rights"} , - {OBJECT_ACCESS_USER, "Access-User"} + {OBJECT_ACCESS_USER, "Access User"} , - {OBJECT_ACCESS_ZONE, "Access-Zone"} + {OBJECT_ACCESS_ZONE, "Access Zone"} , - {OBJECT_AUTHENTICATION_FACTOR_INPUT, "Authentication-Factor-Input"} + {OBJECT_CREDENTIAL_DATA_INPUT, "Credential Data Input"} , - {mysterious_OBJECT_TYPE, "object-of-mystery"} + {OBJECT_NETWORK_SECURITY, "Network Security"} , - {OBJECT_BITSTRING_VALUE, "Bitstring-Value"} + {OBJECT_BITSTRING_VALUE, "Bitstring Value"} , - {OBJECT_CHARACTERSTRING_VALUE, "Characterstring-Value"} + {OBJECT_CHARACTERSTRING_VALUE, "Characterstring Value"} , - {OBJECT_DATE_PATTERN_VALUE, "Date-Pattern-Value"} + {OBJECT_DATE_PATTERN_VALUE, "Date Pattern Value"} , - {OBJECT_DATE_VALUE, "Date-Value"} + {OBJECT_DATE_VALUE, "Date Value"} , - {OBJECT_DATETIME_PATTERN_VALUE, "Datetime-Pattern-Value"} + {OBJECT_DATETIME_PATTERN_VALUE, "Datetime Pattern Value"} , - {OBJECT_DATETIME_VALUE, "Datetime-Value"} + {OBJECT_DATETIME_VALUE, "Datetime Value"} , - {OBJECT_INTEGER_VALUE, "Integer-Value"} + {OBJECT_INTEGER_VALUE, "Integer Value"} , - {OBJECT_LARGE_ANALOG_VALUE, "Large-Analog-Value"} + {OBJECT_LARGE_ANALOG_VALUE, "Large Analog Value"} , - {OBJECT_OCTETSTRING_VALUE, "Octetstring-Value"} + {OBJECT_OCTETSTRING_VALUE, "Octetstring Value"} , - {OBJECT_POSITIVE_INTEGER_VALUE, "Positive-Integer-Value"} + {OBJECT_POSITIVE_INTEGER_VALUE, "Positive Integer Value"} , - {OBJECT_TIME_PATTERN_VALUE, "Time-Pattern-Value"} + {OBJECT_TIME_PATTERN_VALUE, "Time Pattern Value"} , - {OBJECT_TIME_VALUE, "Time-Value"} + {OBJECT_TIME_VALUE, "Time Value"} , {0, NULL} /* Enumerated values 0-127 are reserved for definition by ASHRAE.