From a12e106643b3dc3af0fe8661d96bb76f03c23a79 Mon Sep 17 00:00:00 2001 From: skarg Date: Fri, 7 Dec 2012 22:00:57 +0000 Subject: [PATCH] Updated the objects, services, and properties for the 135-2012 version of the BACnet standard. --- bacnet-stack/demo/object/lo.c | 11 ++-- bacnet-stack/include/bacenum.h | 98 +++++++++++++++++++---------- bacnet-stack/src/bactext.c | 111 ++++++++++++++++++++++++--------- 3 files changed, 150 insertions(+), 70 deletions(-) diff --git a/bacnet-stack/demo/object/lo.c b/bacnet-stack/demo/object/lo.c index 0b98692b..399593df 100644 --- a/bacnet-stack/demo/object/lo.c +++ b/bacnet-stack/demo/object/lo.c @@ -25,10 +25,7 @@ /* Lighting Output Objects - customize for your use */ -/* WARNING! This object is still BACnet DRAFT status! - If you need to implement in a real product, you will - need to modify the new OBJECT type and properties to - be in the proprietrary range to be BACnet compliant */ +/* FIXME: This object was written to the BACnet DRAFT addendum. */ #include #include @@ -331,7 +328,7 @@ bool Lighting_Output_Present_Value_Relinquish( return status; } -float Lighting_Output_Progress_Value( +float Lighting_Output_Tracking_Value( uint32_t object_instance) { float value = LIGHTING_RELINQUISH_DEFAULT; @@ -403,9 +400,9 @@ int Lighting_Output_Read_Property( Lighting_Output_Present_Value(rpdata->object_instance); apdu_len = encode_application_real(&apdu[0], real_value); break; - case PROP_PROGRESS_VALUE: + case PROP_TRACKING_VALUE: real_value = - Lighting_Output_Progress_Value(rpdata->object_instance); + Lighting_Output_Tracking_Value(rpdata->object_instance); apdu_len = encode_application_real(&apdu[0], real_value); break; case PROP_LIGHTING_COMMAND: diff --git a/bacnet-stack/include/bacenum.h b/bacnet-stack/include/bacenum.h index 95b88ac8..26a0fc10 100644 --- a/bacnet-stack/include/bacenum.h +++ b/bacnet-stack/include/bacenum.h @@ -250,10 +250,7 @@ typedef enum { PROP_SHED_LEVEL_DESCRIPTIONS = 220, PROP_SHED_LEVELS = 221, PROP_STATE_DESCRIPTION = 222, - /* enumerations 223-225 are used in Addendum i to ANSI/ASHRAE 135-2004 */ - PROP_FADE_TIME = 223, - PROP_LIGHTING_COMMAND = 224, - PROP_LIGHTING_COMMAND_PRIORITY = 225, + /* enumerations 223-225 are unassigned */ /* enumerations 226-235 are used in Addendum f to ANSI/ASHRAE 135-2004 */ PROP_DOOR_ALARM_STATE = 226, PROP_DOOR_EXTENDED_PULSE_TIME = 227, @@ -265,15 +262,7 @@ typedef enum { PROP_LOCK_STATUS = 233, PROP_MASKED_ALARM_VALUES = 234, PROP_SECURED_STATUS = 235, - /* enumerations 236-243 are used in Addendum i to ANSI/ASHRAE 135-2004 */ - PROP_OFF_DELAY = 236, - PROP_ON_DELAY = 237, - PROP_POWER = 238, - PROP_POWER_ON_VALUE = 239, - PROP_PROGRESS_VALUE = 240, - PROP_RAMP_RATE = 241, - PROP_STEP_INCREMENT = 242, - PROP_SYSTEM_FAILURE_VALUE = 243, + /* enumerations 236-243 are unassigned */ /* enumerations 244-311 are used in Addendum j to ANSI/ASHRAE 135-2004 */ PROP_ABSENTEE_LIMIT = 244, PROP_ACCESS_ALARM_EVENTS = 245, @@ -379,19 +368,53 @@ typedef enum { PROP_COVU_PERIOD = 349, PROP_COVU_RECIPIENTS = 350, PROP_EVENT_MESSAGE_TEXTS = 351, + /* enumerations 352-363 are defined in Addendum 2010-af */ + PROP_EVENT_MESSAGE_TEXTS_CONFIG = 352, + PROP_EVENT_DETECTION_ENABLE = 353, + PROP_EVENT_ALGORITHM_INHIBIT = 354, + PROP_EVENT_ALGORITHM_INHIBIT_REF = 355, + PROP_TIME_DELAY_NORMAL = 356, + PROP_RELIABILITY_EVALUATION_INHIBIT = 357, + PROP_FAULT_PARAMETERS = 358, + PROP_FAULT_TYPE = 359, + PROP_LOCAL_FORWARDING_ONLY = 360, + PROP_PROCESS_IDENTIFIER_FILTER = 361, + PROP_SUBSCRIBED_RECIPIENTS = 362, + PROP_PORT_FILTER = 363, + /* enumeration 364 is defined in Addendum 2010-ae */ + PROP_AUTHORIZATION_EXEMPTIONS = 364, + /* enumerations 365-370 are defined in Addendum 2010-aa */ + PROP_ALLOW_GROUP_DELAY_INHIBIT = 365, + PROP_CHANNEL_NUMBER = 366, + PROP_CONTROL_GROUPS = 367, + PROP_EXECUTION_DELAY = 368, + PROP_LAST_PRIORITY = 369, + PROP_WRITE_STATUS = 370, + /* enumeration 371 is defined in Addendum 2010-ao */ + PROP_PROPERTY_LIST = 371, /* enumeration 372 is defined in Addendum 2010-ak */ PROP_SERIAL_NUMBER = 372, + /* enumerations 373-386 are defined in Addendum 2010-i */ + PROP_BLINK_WARN_ENABLE = 373, + PROP_DEFAULT_FADE_TIME = 374, + PROP_DEFAULT_RAMP_RATE = 375, + PROP_DEFAULT_STEP_INCREMENT = 376, + PROP_EGRESS_TIMER = 377, + PROP_IN_PROGRESS = 378, + PROP_INSTANTANEOUS_POWER = 379, + PROP_LIGHTING_COMMAND = 380, + PROP_LIGHTING_COMMAND_DEFAULT_PRIORITY = 381, + PROP_MAX_ACTUAL_VALUE = 382, + PROP_MIN_ACTUAL_VALUE = 383, + PROP_POWER = 384, + PROP_TRANSITION = 385, + PROP_EGRESS_ACTIVE = 386 /* The special property identifiers all, optional, and required */ /* are reserved for use in the ReadPropertyConditional and */ /* ReadPropertyMultiple services or services not defined in this standard. */ /* Enumerated values 0-511 are reserved for definition by ASHRAE. */ /* Enumerated values 512-4194303 may be used by others subject to the */ /* procedures and constraints described in Clause 23. */ - /* enumerations used to test Addendum i to ANSI/ASHRAE 135-2008 - private */ - PROP_BLINK_PRIORITY_THRESHOLD = 4201, - PROP_BLINK_TIME = 4202, - PROP_BINARY_ACTIVE_VALUE = 4203, - PROP_BINARY_INACTIVE_VALUE = 4204 } BACNET_PROPERTY_ID; /* do the MAX as define rather than enumeration for devices @@ -916,7 +939,7 @@ typedef enum { OBJECT_LOAD_CONTROL = 28, OBJECT_STRUCTURED_VIEW = 29, OBJECT_ACCESS_DOOR = 30, - OBJECT_LIGHTING_OUTPUT = 31, + /* 31 was lighting output, but BACnet editor changed it... */ OBJECT_ACCESS_CREDENTIAL = 32, /* Addendum 2008-j */ OBJECT_ACCESS_POINT = 33, OBJECT_ACCESS_RIGHTS = 34, @@ -925,17 +948,21 @@ typedef enum { 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, - OBJECT_DATETIME_PATTERN_VALUE = 43, - OBJECT_DATETIME_VALUE = 44, - OBJECT_INTEGER_VALUE = 45, - OBJECT_LARGE_ANALOG_VALUE = 46, - OBJECT_OCTETSTRING_VALUE = 47, - OBJECT_POSITIVE_INTEGER_VALUE = 48, - OBJECT_TIME_PATTERN_VALUE = 49, - OBJECT_TIME_VALUE = 50, + OBJECT_CHARACTERSTRING_VALUE = 40, /* Addendum 2008-w */ + OBJECT_DATE_PATTERN_VALUE = 41, /* Addendum 2008-w */ + OBJECT_DATE_VALUE = 42, /* Addendum 2008-w */ + OBJECT_DATETIME_PATTERN_VALUE = 43, /* Addendum 2008-w */ + OBJECT_DATETIME_VALUE = 44, /* Addendum 2008-w */ + OBJECT_INTEGER_VALUE = 45, /* Addendum 2008-w */ + OBJECT_LARGE_ANALOG_VALUE = 46, /* Addendum 2008-w */ + OBJECT_OCTETSTRING_VALUE = 47, /* Addendum 2008-w */ + OBJECT_POSITIVE_INTEGER_VALUE = 48, /* Addendum 2008-w */ + OBJECT_TIME_PATTERN_VALUE = 49, /* Addendum 2008-w */ + OBJECT_TIME_VALUE = 50, /* Addendum 2008-w */ + OBJECT_NOTIFICATION_FORWARDER = 51, /* Addendum 2010-af */ + OBJECT_ALERT_ENROLLMENT = 52, /* Addendum 2010-af */ + OBJECT_CHANNEL = 53, /* Addendum 2010-aa */ + OBJECT_LIGHTING_OUTPUT = 54, /* Addendum 2010-i */ /* used for bit string loop */ PROPRIETARY_BACNET_OBJECT_TYPE = 128, MAX_BACNET_OBJECT_TYPE = 1024 @@ -1065,12 +1092,14 @@ typedef enum { SERVICE_UNCONFIRMED_WHO_HAS = 7, SERVICE_UNCONFIRMED_WHO_IS = 8, SERVICE_UNCONFIRMED_UTC_TIME_SYNCHRONIZATION = 9, + /* addendum 2010-aa */ + SERVICE_UNCONFIRMED_WRITE_GROUP = 10, /* Other services to be added as they are defined. */ /* All choice values in this production are reserved */ /* for definition by ASHRAE. */ /* Proprietary extensions are made by using the */ /* UnconfirmedPrivateTransfer service. See Clause 23. */ - MAX_BACNET_UNCONFIRMED_SERVICE = 10 + MAX_BACNET_UNCONFIRMED_SERVICE = 11 } BACNET_UNCONFIRMED_SERVICE; /* Bit String Enumerations */ @@ -1099,6 +1128,7 @@ typedef enum { SERVICE_SUPPORTED_READ_RANGE = 35, SERVICE_SUPPORTED_WRITE_PROPERTY = 15, SERVICE_SUPPORTED_WRITE_PROP_MULTIPLE = 16, + SERVICE_SUPPORTED_WRITE_GROUP = 40, /* Remote Device Management Services */ SERVICE_SUPPORTED_DEVICE_COMMUNICATION_CONTROL = 17, SERVICE_SUPPORTED_PRIVATE_TRANSFER = 18, @@ -1121,9 +1151,9 @@ typedef enum { SERVICE_SUPPORTED_UTC_TIME_SYNCHRONIZATION = 36, SERVICE_SUPPORTED_WHO_HAS = 33, SERVICE_SUPPORTED_WHO_IS = 34 - /* Other services to be added as they are defined. */ - /* All values in this production are reserved */ - /* for definition by ASHRAE. */ + /* Other services to be added as they are defined. */ + /* All values in this production are reserved */ + /* for definition by ASHRAE. */ } BACNET_SERVICES_SUPPORTED; typedef enum { diff --git a/bacnet-stack/src/bactext.c b/bacnet-stack/src/bactext.c index 9cdb8f1a..0e4febf2 100644 --- a/bacnet-stack/src/bactext.c +++ b/bacnet-stack/src/bactext.c @@ -107,6 +107,9 @@ INDTEXT_DATA bacnet_unconfirmed_service_names[] = { {SERVICE_UNCONFIRMED_UTC_TIME_SYNCHRONIZATION, "UTC-Time-Synchronization"} , + {SERVICE_UNCONFIRMED_WRITE_GROUP, + "Write-Group"} + , {0, NULL} }; @@ -263,10 +266,18 @@ INDTEXT_DATA bacnet_object_type_names[] = { , {OBJECT_TIME_VALUE, "Time Value"} , + {OBJECT_NOTIFICATION_FORWARDER, "Notification Forwarder"} + , + {OBJECT_ALERT_ENROLLMENT, "Alert Enrollment"} + , + {OBJECT_CHANNEL, "Channel"} + , + {OBJECT_LIGHTING_OUTPUT, "Lighting Output"} + , {0, NULL} -/* Enumerated values 0-127 are reserved for definition by ASHRAE. - Enumerated values 128-1023 may be used by others subject to - the procedures and constraints described in Clause 23. */ + /* Enumerated values 0-127 are reserved for definition by ASHRAE. + Enumerated values 128-1023 may be used by others subject to + the procedures and constraints described in Clause 23. */ }; const char *bactext_object_type_name( @@ -720,12 +731,6 @@ INDTEXT_DATA bacnet_property_names[] = { , {PROP_STATE_DESCRIPTION, "state-description"} , - {PROP_FADE_TIME, "fade-time"} - , - {PROP_LIGHTING_COMMAND, "lighting-command"} - , - {PROP_LIGHTING_COMMAND_PRIORITY, "lighting-command-priority"} - , {PROP_DOOR_ALARM_STATE, "door-alarm-state"} , {PROP_DOOR_EXTENDED_PULSE_TIME, "door-extended-pulse-time"} @@ -746,22 +751,6 @@ INDTEXT_DATA bacnet_property_names[] = { , {PROP_SECURED_STATUS, "secured-status"} , - {PROP_OFF_DELAY, "off-delay"} - , - {PROP_ON_DELAY, "on-delay"} - , - {PROP_POWER, "power"} - , - {PROP_POWER_ON_VALUE, "power-on-value"} - , - {PROP_PROGRESS_VALUE, "progress-value"} - , - {PROP_RAMP_RATE, "ramp-rate"} - , - {PROP_STEP_INCREMENT, "step-increment"} - , - {PROP_SYSTEM_FAILURE_VALUE, "system-failure-value"} - , {PROP_ABSENTEE_LIMIT, "absentee-limit"} , {PROP_ACCESS_ALARM_EVENTS, "access-alarm-events"} @@ -913,10 +902,6 @@ INDTEXT_DATA bacnet_property_names[] = { , {PROP_ZONE_TO, "zone-to"} , - {PROP_BINARY_ACTIVE_VALUE, "binary-active-value"} - , - {PROP_BINARY_INACTIVE_VALUE, "binary-inactive-value"} - , {PROP_VERIFICATION_TIME, "verification-time"} , {PROP_BASE_DEVICE_SECURITY_POLICY, "base-device-security-policy"} @@ -970,8 +955,76 @@ INDTEXT_DATA bacnet_property_names[] = { , {PROP_EVENT_MESSAGE_TEXTS, "event-message-texts"} , + {PROP_EVENT_MESSAGE_TEXTS_CONFIG, "event-message-texts-config"} + , + {PROP_EVENT_DETECTION_ENABLE, "event-detection-enable"} + , + {PROP_EVENT_ALGORITHM_INHIBIT, "event-algorithm-inhibit"} + , + {PROP_EVENT_ALGORITHM_INHIBIT_REF, "event-algorithm-inhibit-ref"} + , + {PROP_TIME_DELAY_NORMAL, "time-delay-normal"} + , + {PROP_RELIABILITY_EVALUATION_INHIBIT, "reliability-evaluation-inhibit"} + , + {PROP_FAULT_PARAMETERS, "fault-parameters"} + , + {PROP_FAULT_TYPE, "fault-type"} + , + {PROP_LOCAL_FORWARDING_ONLY, "local-forwarding-only"} + , + {PROP_PROCESS_IDENTIFIER_FILTER, "process-identifier-filter"} + , + {PROP_SUBSCRIBED_RECIPIENTS, "subscribed-recipients"} + , + {PROP_PORT_FILTER, "port-filter"} + , + {PROP_AUTHORIZATION_EXEMPTIONS, "authorization-exemptions"} + , + {PROP_ALLOW_GROUP_DELAY_INHIBIT, "allow-group-delay-inhibit"} + , + {PROP_CHANNEL_NUMBER, "channel-number"} + , + {PROP_CONTROL_GROUPS, "control-groups"} + , + {PROP_EXECUTION_DELAY, "execution-delay"} + , + {PROP_LAST_PRIORITY, "last-priority"} + , + {PROP_WRITE_STATUS, "write-status"} + , + {PROP_PROPERTY_LIST, "property-list"} + , {PROP_SERIAL_NUMBER, "serial-number"} , + {PROP_BLINK_WARN_ENABLE, "blink-warn-enable"} + , + {PROP_DEFAULT_FADE_TIME, "default-fade-time"} + , + {PROP_DEFAULT_RAMP_RATE, "default-ramp-rate"} + , + {PROP_DEFAULT_STEP_INCREMENT, "default-step-increment"} + , + {PROP_EGRESS_TIMER, "egress-timer"} + , + {PROP_IN_PROGRESS, "in-progress"} + , + {PROP_INSTANTANEOUS_POWER, "instantaneous-power"} + , + {PROP_LIGHTING_COMMAND, "lighting-command"} + , + {PROP_LIGHTING_COMMAND_DEFAULT_PRIORITY, "lighting-command-default-priority"} + , + {PROP_MAX_ACTUAL_VALUE, "max-actual-value"} + , + {PROP_MIN_ACTUAL_VALUE, "min-actual-value"} + , + {PROP_POWER, "power"} + , + {PROP_TRANSITION, "transition"} + , + {PROP_EGRESS_ACTIVE, "egress-active"} + , {0, NULL} /* Enumerated values 0-511 are reserved for definition by ASHRAE. Enumerated values 512-4194303 may be used by others subject to the