Files
bacnet_stack/src/bacnet/bacenum.h
T
Steve Karg eedfa58a55 Feature/refactor bacnet ipv4 add unit tests (#64)
* refactor BACnet/IPv4 BVLC into encode-decode library with unit tests
Added Read-Broadcast-Distribution-Table encoding and unit test.
Added Read-Broadcast-Distribution-Table-Ack encoding and unit test.
Added Read-Foreign-Device-Table-Ack encoding and unit test.
Added some BDT/FDT diff copy functions with unit tests
Added some FDT add and delete entry functions with unit tests
Added some BDT set append and clear entry functions with unit tests
Added some BIPv4 address conversion functions with unit tests
Added non-BBMD handling unit test
Added basic unit test for BBMD handler
Added BBMD broadcast mask get set and unit tests
Added IPv6 maintenance timer.
Added ReadFDT app
Fixed ReadBDT app
Added Who-Is to Makefile for individual app build
Fixed debugging code blocks projects by swapping bip.c for h_bbmd.c module.
Ported BACnet/IPv4 to refactored BVLC for Linux, BSD, Windows
Fix datalink debug for DLENV module
Improve BIPv4 linux driver debug info
Added BDT mask functions
Reduce debug info clutter in Who-Is app by using environment option
Fix TTL seconds upper bounds addition
Fix CIDR prefix calculation on Linux BIPv4.
Convert BSD BIPv4 to BVLCv4
Fix CMake build for BIPv4 (Linux, BSD, Windows)
Added [U]nsigned to 0xBAC0 constants
Cleanup POSIX and Win32 API sockets
Remove unnecessary file scope variable initialization
Fix routed NPDU to depend on datalink; fix warning
Remove OS dependent network code from gateway
Enable BBMD client in library by default
Co-authored-by: Steve Karg <skarg@users.sourceforge.net>
Co-authored-by: Steve Karg <steve.karg@legrand.us>
2020-04-04 11:31:54 -05:00

2344 lines
83 KiB
C

/**************************************************************************
*
* Copyright (C) 2012 Steve Karg <skarg@users.sourceforge.net>
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be included
* in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*********************************************************************/
#ifndef BACENUM_H
#define BACENUM_H
typedef enum {
PROP_ACKED_TRANSITIONS = 0,
PROP_ACK_REQUIRED = 1,
PROP_ACTION = 2,
PROP_ACTION_TEXT = 3,
PROP_ACTIVE_TEXT = 4,
PROP_ACTIVE_VT_SESSIONS = 5,
PROP_ALARM_VALUE = 6,
PROP_ALARM_VALUES = 7,
PROP_ALL = 8,
PROP_ALL_WRITES_SUCCESSFUL = 9,
PROP_APDU_SEGMENT_TIMEOUT = 10,
PROP_APDU_TIMEOUT = 11,
PROP_APPLICATION_SOFTWARE_VERSION = 12,
PROP_ARCHIVE = 13,
PROP_BIAS = 14,
PROP_CHANGE_OF_STATE_COUNT = 15,
PROP_CHANGE_OF_STATE_TIME = 16,
PROP_NOTIFICATION_CLASS = 17,
PROP_BLANK_1 = 18,
PROP_CONTROLLED_VARIABLE_REFERENCE = 19,
PROP_CONTROLLED_VARIABLE_UNITS = 20,
PROP_CONTROLLED_VARIABLE_VALUE = 21,
PROP_COV_INCREMENT = 22,
PROP_DATE_LIST = 23,
PROP_DAYLIGHT_SAVINGS_STATUS = 24,
PROP_DEADBAND = 25,
PROP_DERIVATIVE_CONSTANT = 26,
PROP_DERIVATIVE_CONSTANT_UNITS = 27,
PROP_DESCRIPTION = 28,
PROP_DESCRIPTION_OF_HALT = 29,
PROP_DEVICE_ADDRESS_BINDING = 30,
PROP_DEVICE_TYPE = 31,
PROP_EFFECTIVE_PERIOD = 32,
PROP_ELAPSED_ACTIVE_TIME = 33,
PROP_ERROR_LIMIT = 34,
PROP_EVENT_ENABLE = 35,
PROP_EVENT_STATE = 36,
PROP_EVENT_TYPE = 37,
PROP_EXCEPTION_SCHEDULE = 38,
PROP_FAULT_VALUES = 39,
PROP_FEEDBACK_VALUE = 40,
PROP_FILE_ACCESS_METHOD = 41,
PROP_FILE_SIZE = 42,
PROP_FILE_TYPE = 43,
PROP_FIRMWARE_REVISION = 44,
PROP_HIGH_LIMIT = 45,
PROP_INACTIVE_TEXT = 46,
PROP_IN_PROCESS = 47,
PROP_INSTANCE_OF = 48,
PROP_INTEGRAL_CONSTANT = 49,
PROP_INTEGRAL_CONSTANT_UNITS = 50,
PROP_ISSUE_CONFIRMED_NOTIFICATIONS = 51,
PROP_LIMIT_ENABLE = 52,
PROP_LIST_OF_GROUP_MEMBERS = 53,
PROP_LIST_OF_OBJECT_PROPERTY_REFERENCES = 54,
PROP_LIST_OF_SESSION_KEYS = 55,
PROP_LOCAL_DATE = 56,
PROP_LOCAL_TIME = 57,
PROP_LOCATION = 58,
PROP_LOW_LIMIT = 59,
PROP_MANIPULATED_VARIABLE_REFERENCE = 60,
PROP_MAXIMUM_OUTPUT = 61,
PROP_MAX_APDU_LENGTH_ACCEPTED = 62,
PROP_MAX_INFO_FRAMES = 63,
PROP_MAX_MASTER = 64,
PROP_MAX_PRES_VALUE = 65,
PROP_MINIMUM_OFF_TIME = 66,
PROP_MINIMUM_ON_TIME = 67,
PROP_MINIMUM_OUTPUT = 68,
PROP_MIN_PRES_VALUE = 69,
PROP_MODEL_NAME = 70,
PROP_MODIFICATION_DATE = 71,
PROP_NOTIFY_TYPE = 72,
PROP_NUMBER_OF_APDU_RETRIES = 73,
PROP_NUMBER_OF_STATES = 74,
PROP_OBJECT_IDENTIFIER = 75,
PROP_OBJECT_LIST = 76,
PROP_OBJECT_NAME = 77,
PROP_OBJECT_PROPERTY_REFERENCE = 78,
PROP_OBJECT_TYPE = 79,
PROP_OPTIONAL = 80,
PROP_OUT_OF_SERVICE = 81,
PROP_OUTPUT_UNITS = 82,
PROP_EVENT_PARAMETERS = 83,
PROP_POLARITY = 84,
PROP_PRESENT_VALUE = 85,
PROP_PRIORITY = 86,
PROP_PRIORITY_ARRAY = 87,
PROP_PRIORITY_FOR_WRITING = 88,
PROP_PROCESS_IDENTIFIER = 89,
PROP_PROGRAM_CHANGE = 90,
PROP_PROGRAM_LOCATION = 91,
PROP_PROGRAM_STATE = 92,
PROP_PROPORTIONAL_CONSTANT = 93,
PROP_PROPORTIONAL_CONSTANT_UNITS = 94,
PROP_PROTOCOL_CONFORMANCE_CLASS = 95, /* deleted in version 1 revision 2 */
PROP_PROTOCOL_OBJECT_TYPES_SUPPORTED = 96,
PROP_PROTOCOL_SERVICES_SUPPORTED = 97,
PROP_PROTOCOL_VERSION = 98,
PROP_READ_ONLY = 99,
PROP_REASON_FOR_HALT = 100,
PROP_RECIPIENT = 101,
PROP_RECIPIENT_LIST = 102,
PROP_RELIABILITY = 103,
PROP_RELINQUISH_DEFAULT = 104,
PROP_REQUIRED = 105,
PROP_RESOLUTION = 106,
PROP_SEGMENTATION_SUPPORTED = 107,
PROP_SETPOINT = 108,
PROP_SETPOINT_REFERENCE = 109,
PROP_STATE_TEXT = 110,
PROP_STATUS_FLAGS = 111,
PROP_SYSTEM_STATUS = 112,
PROP_TIME_DELAY = 113,
PROP_TIME_OF_ACTIVE_TIME_RESET = 114,
PROP_TIME_OF_STATE_COUNT_RESET = 115,
PROP_TIME_SYNCHRONIZATION_RECIPIENTS = 116,
PROP_UNITS = 117,
PROP_UPDATE_INTERVAL = 118,
PROP_UTC_OFFSET = 119,
PROP_VENDOR_IDENTIFIER = 120,
PROP_VENDOR_NAME = 121,
PROP_VT_CLASSES_SUPPORTED = 122,
PROP_WEEKLY_SCHEDULE = 123,
PROP_ATTEMPTED_SAMPLES = 124,
PROP_AVERAGE_VALUE = 125,
PROP_BUFFER_SIZE = 126,
PROP_CLIENT_COV_INCREMENT = 127,
PROP_COV_RESUBSCRIPTION_INTERVAL = 128,
PROP_CURRENT_NOTIFY_TIME = 129,
PROP_EVENT_TIME_STAMPS = 130,
PROP_LOG_BUFFER = 131,
PROP_LOG_DEVICE_OBJECT_PROPERTY = 132,
/* The enable property is renamed from log-enable in
Addendum b to ANSI/ASHRAE 135-2004(135b-2) */
PROP_ENABLE = 133,
PROP_LOG_INTERVAL = 134,
PROP_MAXIMUM_VALUE = 135,
PROP_MINIMUM_VALUE = 136,
PROP_NOTIFICATION_THRESHOLD = 137,
PROP_PREVIOUS_NOTIFY_TIME = 138,
PROP_PROTOCOL_REVISION = 139,
PROP_RECORDS_SINCE_NOTIFICATION = 140,
PROP_RECORD_COUNT = 141,
PROP_START_TIME = 142,
PROP_STOP_TIME = 143,
PROP_STOP_WHEN_FULL = 144,
PROP_TOTAL_RECORD_COUNT = 145,
PROP_VALID_SAMPLES = 146,
PROP_WINDOW_INTERVAL = 147,
PROP_WINDOW_SAMPLES = 148,
PROP_MAXIMUM_VALUE_TIMESTAMP = 149,
PROP_MINIMUM_VALUE_TIMESTAMP = 150,
PROP_VARIANCE_VALUE = 151,
PROP_ACTIVE_COV_SUBSCRIPTIONS = 152,
PROP_BACKUP_FAILURE_TIMEOUT = 153,
PROP_CONFIGURATION_FILES = 154,
PROP_DATABASE_REVISION = 155,
PROP_DIRECT_READING = 156,
PROP_LAST_RESTORE_TIME = 157,
PROP_MAINTENANCE_REQUIRED = 158,
PROP_MEMBER_OF = 159,
PROP_MODE = 160,
PROP_OPERATION_EXPECTED = 161,
PROP_SETTING = 162,
PROP_SILENCED = 163,
PROP_TRACKING_VALUE = 164,
PROP_ZONE_MEMBERS = 165,
PROP_LIFE_SAFETY_ALARM_VALUES = 166,
PROP_MAX_SEGMENTS_ACCEPTED = 167,
PROP_PROFILE_NAME = 168,
PROP_AUTO_SLAVE_DISCOVERY = 169,
PROP_MANUAL_SLAVE_ADDRESS_BINDING = 170,
PROP_SLAVE_ADDRESS_BINDING = 171,
PROP_SLAVE_PROXY_ENABLE = 172,
PROP_LAST_NOTIFY_RECORD = 173,
PROP_SCHEDULE_DEFAULT = 174,
PROP_ACCEPTED_MODES = 175,
PROP_ADJUST_VALUE = 176,
PROP_COUNT = 177,
PROP_COUNT_BEFORE_CHANGE = 178,
PROP_COUNT_CHANGE_TIME = 179,
PROP_COV_PERIOD = 180,
PROP_INPUT_REFERENCE = 181,
PROP_LIMIT_MONITORING_INTERVAL = 182,
PROP_LOGGING_OBJECT = 183,
PROP_LOGGING_RECORD = 184,
PROP_PRESCALE = 185,
PROP_PULSE_RATE = 186,
PROP_SCALE = 187,
PROP_SCALE_FACTOR = 188,
PROP_UPDATE_TIME = 189,
PROP_VALUE_BEFORE_CHANGE = 190,
PROP_VALUE_SET = 191,
PROP_VALUE_CHANGE_TIME = 192,
/* enumerations 193-206 are new */
PROP_ALIGN_INTERVALS = 193,
/* enumeration 194 is unassigned */
PROP_INTERVAL_OFFSET = 195,
PROP_LAST_RESTART_REASON = 196,
PROP_LOGGING_TYPE = 197,
/* enumeration 198-201 is unassigned */
PROP_RESTART_NOTIFICATION_RECIPIENTS = 202,
PROP_TIME_OF_DEVICE_RESTART = 203,
PROP_TIME_SYNCHRONIZATION_INTERVAL = 204,
PROP_TRIGGER = 205,
PROP_UTC_TIME_SYNCHRONIZATION_RECIPIENTS = 206,
/* enumerations 207-211 are used in Addendum d to ANSI/ASHRAE 135-2004 */
PROP_NODE_SUBTYPE = 207,
PROP_NODE_TYPE = 208,
PROP_STRUCTURED_OBJECT_LIST = 209,
PROP_SUBORDINATE_ANNOTATIONS = 210,
PROP_SUBORDINATE_LIST = 211,
/* enumerations 212-225 are used in Addendum e to ANSI/ASHRAE 135-2004 */
PROP_ACTUAL_SHED_LEVEL = 212,
PROP_DUTY_WINDOW = 213,
PROP_EXPECTED_SHED_LEVEL = 214,
PROP_FULL_DUTY_BASELINE = 215,
/* enumerations 216-217 are unassigned */
/* enumerations 212-225 are used in Addendum e to ANSI/ASHRAE 135-2004 */
PROP_REQUESTED_SHED_LEVEL = 218,
PROP_SHED_DURATION = 219,
PROP_SHED_LEVEL_DESCRIPTIONS = 220,
PROP_SHED_LEVELS = 221,
PROP_STATE_DESCRIPTION = 222,
/* 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,
PROP_DOOR_MEMBERS = 228,
PROP_DOOR_OPEN_TOO_LONG_TIME = 229,
PROP_DOOR_PULSE_TIME = 230,
PROP_DOOR_STATUS = 231,
PROP_DOOR_UNLOCK_DELAY_TIME = 232,
PROP_LOCK_STATUS = 233,
PROP_MASKED_ALARM_VALUES = 234,
PROP_SECURED_STATUS = 235,
/* 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,
PROP_ACCESS_DOORS = 246,
PROP_ACCESS_EVENT = 247,
PROP_ACCESS_EVENT_AUTHENTICATION_FACTOR = 248,
PROP_ACCESS_EVENT_CREDENTIAL = 249,
PROP_ACCESS_EVENT_TIME = 250,
PROP_ACCESS_TRANSACTION_EVENTS = 251,
PROP_ACCOMPANIMENT = 252,
PROP_ACCOMPANIMENT_TIME = 253,
PROP_ACTIVATION_TIME = 254,
PROP_ACTIVE_AUTHENTICATION_POLICY = 255,
PROP_ASSIGNED_ACCESS_RIGHTS = 256,
PROP_AUTHENTICATION_FACTORS = 257,
PROP_AUTHENTICATION_POLICY_LIST = 258,
PROP_AUTHENTICATION_POLICY_NAMES = 259,
PROP_AUTHENTICATION_STATUS = 260,
PROP_AUTHORIZATION_MODE = 261,
PROP_BELONGS_TO = 262,
PROP_CREDENTIAL_DISABLE = 263,
PROP_CREDENTIAL_STATUS = 264,
PROP_CREDENTIALS = 265,
PROP_CREDENTIALS_IN_ZONE = 266,
PROP_DAYS_REMAINING = 267,
PROP_ENTRY_POINTS = 268,
PROP_EXIT_POINTS = 269,
PROP_EXPIRATION_TIME = 270,
PROP_EXTENDED_TIME_ENABLE = 271,
PROP_FAILED_ATTEMPT_EVENTS = 272,
PROP_FAILED_ATTEMPTS = 273,
PROP_FAILED_ATTEMPTS_TIME = 274,
PROP_LAST_ACCESS_EVENT = 275,
PROP_LAST_ACCESS_POINT = 276,
PROP_LAST_CREDENTIAL_ADDED = 277,
PROP_LAST_CREDENTIAL_ADDED_TIME = 278,
PROP_LAST_CREDENTIAL_REMOVED = 279,
PROP_LAST_CREDENTIAL_REMOVED_TIME = 280,
PROP_LAST_USE_TIME = 281,
PROP_LOCKOUT = 282,
PROP_LOCKOUT_RELINQUISH_TIME = 283,
PROP_MASTER_EXEMPTION = 284,
PROP_MAX_FAILED_ATTEMPTS = 285,
PROP_MEMBERS = 286,
PROP_MUSTER_POINT = 287,
PROP_NEGATIVE_ACCESS_RULES = 288,
PROP_NUMBER_OF_AUTHENTICATION_POLICIES = 289,
PROP_OCCUPANCY_COUNT = 290,
PROP_OCCUPANCY_COUNT_ADJUST = 291,
PROP_OCCUPANCY_COUNT_ENABLE = 292,
PROP_OCCUPANCY_EXEMPTION = 293,
PROP_OCCUPANCY_LOWER_LIMIT = 294,
PROP_OCCUPANCY_LOWER_LIMIT_ENFORCED = 295,
PROP_OCCUPANCY_STATE = 296,
PROP_OCCUPANCY_UPPER_LIMIT = 297,
PROP_OCCUPANCY_UPPER_LIMIT_ENFORCED = 298,
PROP_PASSBACK_EXEMPTION = 299,
PROP_PASSBACK_MODE = 300,
PROP_PASSBACK_TIMEOUT = 301,
PROP_POSITIVE_ACCESS_RULES = 302,
PROP_REASON_FOR_DISABLE = 303,
PROP_SUPPORTED_FORMATS = 304,
PROP_SUPPORTED_FORMAT_CLASSES = 305,
PROP_THREAT_AUTHORITY = 306,
PROP_THREAT_LEVEL = 307,
PROP_TRACE_FLAG = 308,
PROP_TRANSACTION_NOTIFICATION_CLASS = 309,
PROP_USER_EXTERNAL_IDENTIFIER = 310,
PROP_USER_INFORMATION_REFERENCE = 311,
/* enumerations 312-316 are unassigned */
PROP_USER_NAME = 317,
PROP_USER_TYPE = 318,
PROP_USES_REMAINING = 319,
PROP_ZONE_FROM = 320,
PROP_ZONE_TO = 321,
PROP_ACCESS_EVENT_TAG = 322,
PROP_GLOBAL_IDENTIFIER = 323,
/* enumerations 324-325 are unassigned */
PROP_VERIFICATION_TIME = 326,
PROP_BASE_DEVICE_SECURITY_POLICY = 327,
PROP_DISTRIBUTION_KEY_REVISION = 328,
PROP_DO_NOT_HIDE = 329,
PROP_KEY_SETS = 330,
PROP_LAST_KEY_SERVER = 331,
PROP_NETWORK_ACCESS_SECURITY_POLICIES = 332,
PROP_PACKET_REORDER_TIME = 333,
PROP_SECURITY_PDU_TIMEOUT = 334,
PROP_SECURITY_TIME_WINDOW = 335,
PROP_SUPPORTED_SECURITY_ALGORITHM = 336,
PROP_UPDATE_KEY_SET_TIMEOUT = 337,
PROP_BACKUP_AND_RESTORE_STATE = 338,
PROP_BACKUP_PREPARATION_TIME = 339,
PROP_RESTORE_COMPLETION_TIME = 340,
PROP_RESTORE_PREPARATION_TIME = 341,
/* enumerations 342-344 are defined in Addendum 2008-w */
PROP_BIT_MASK = 342,
PROP_BIT_TEXT = 343,
PROP_IS_UTC = 344,
PROP_GROUP_MEMBERS = 345,
PROP_GROUP_MEMBER_NAMES = 346,
PROP_MEMBER_STATUS_FLAGS = 347,
PROP_REQUESTED_UPDATE_INTERVAL = 348,
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_TIME = 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,
/* enumerations 387-398 */
PROP_INTERFACE_VALUE = 387,
PROP_FAULT_HIGH_LIMIT = 388,
PROP_FAULT_LOW_LIMIT = 389,
PROP_LOW_DIFF_LIMIT = 390,
PROP_STRIKE_COUNT = 391,
PROP_TIME_OF_STRIKE_COUNT_RESET = 392,
PROP_DEFAULT_TIMEOUT = 393,
PROP_INITIAL_TIMEOUT = 394,
PROP_LAST_STATE_CHANGE = 395,
PROP_STATE_CHANGE_VALUES = 396,
PROP_TIMER_RUNNING = 397,
PROP_TIMER_STATE = 398,
/* enumerations 399-427 are defined in Addendum 2012-ai */
PROP_APDU_LENGTH = 399,
PROP_IP_ADDRESS = 400,
PROP_IP_DEFAULT_GATEWAY = 401,
PROP_IP_DHCP_ENABLE = 402,
PROP_IP_DHCP_LEASE_TIME = 403,
PROP_IP_DHCP_LEASE_TIME_REMAINING = 404,
PROP_IP_DHCP_SERVER = 405,
PROP_IP_DNS_SERVER = 406,
PROP_BACNET_IP_GLOBAL_ADDRESS = 407,
PROP_BACNET_IP_MODE = 408,
PROP_BACNET_IP_MULTICAST_ADDRESS = 409,
PROP_BACNET_IP_NAT_TRAVERSAL = 410,
PROP_IP_SUBNET_MASK = 411,
PROP_BACNET_IP_UDP_PORT = 412,
PROP_BBMD_ACCEPT_FD_REGISTRATIONS = 413,
PROP_BBMD_BROADCAST_DISTRIBUTION_TABLE = 414,
PROP_BBMD_FOREIGN_DEVICE_TABLE = 415,
PROP_CHANGES_PENDING = 416,
PROP_COMMAND = 417,
PROP_FD_BBMD_ADDRESS = 418,
PROP_FD_SUBSCRIPTION_LIFETIME = 419,
PROP_LINK_SPEED = 420,
PROP_LINK_SPEEDS = 421,
PROP_LINK_SPEED_AUTONEGOTIATE = 422,
PROP_MAC_ADDRESS = 423,
PROP_NETWORK_INTERFACE_NAME = 424,
PROP_NETWORK_NUMBER = 425,
PROP_NETWORK_NUMBER_QUALITY = 426,
PROP_NETWORK_TYPE = 427,
PROP_ROUTING_TABLE = 428,
PROP_VIRTUAL_MAC_ADDRESS_TABLE = 429,
/* enumerations 430-491 */
PROP_COMMAND_TIME_ARRAY = 430,
PROP_CURRENT_COMMAND_PRIORITY = 431,
PROP_LAST_COMMAND_TIME = 432,
PROP_VALUE_SOURCE = 433,
PROP_VALUE_SOURCE_ARRAY = 434,
PROP_BACNET_IPV6_MODE = 435,
PROP_IPV6_ADDRESS = 436,
PROP_IPV6_PREFIX_LENGTH = 437,
PROP_BACNET_IPV6_UDP_PORT = 438,
PROP_IPV6_DEFAULT_GATEWAY = 439,
PROP_BACNET_IPV6_MULTICAST_ADDRESS = 440,
PROP_IPV6_DNS_SERVER = 441,
PROP_IPV6_AUTO_ADDRESSING_ENABLE = 442,
PROP_IPV6_DHCP_LEASE_TIME = 443,
PROP_IPV6_DHCP_LEASE_TIME_REMAINING = 444,
PROP_IPV6_DHCP_SERVER = 445,
PROP_IPV6_ZONE_INDEX = 446,
PROP_ASSIGNED_LANDING_CALLS = 447,
PROP_CAR_ASSIGNED_DIRECTION = 448,
PROP_CAR_DOOR_COMMAND = 449,
PROP_CAR_DOOR_STATUS = 450,
PROP_CAR_DOOR_TEXT = 451,
PROP_CAR_DOOR_ZONE = 452,
PROP_CAR_DRIVE_STATUS = 453,
PROP_CAR_LOAD = 454,
PROP_CAR_LOAD_UNITS = 455,
PROP_CAR_MODE = 456,
PROP_CAR_MOVING_DIRECTION = 457,
PROP_CAR_POSITION = 458,
PROP_ELEVATOR_GROUP = 459,
PROP_ENERGY_METER = 460,
PROP_ENERGY_METER_REF = 461,
PROP_ESCALATOR_MODE = 462,
PROP_FAULT_SIGNALS = 463,
PROP_FLOOR_TEXT = 464,
PROP_GROUP_ID = 465,
/* value 466 is unassigned */
PROP_GROUP_MODE = 467,
PROP_HIGHER_DECK = 468,
PROP_INSTALLATION_ID = 469,
PROP_LANDING_CALLS = 470,
PROP_LANDING_CALL_CONTROL = 471,
PROP_LANDING_DOOR_STATUS = 472,
PROP_LOWER_DECK = 473,
PROP_MACHINE_ROOM_ID = 474,
PROP_MAKING_CAR_CALL = 475,
PROP_NEXT_STOPPING_FLOOR = 476,
PROP_OPERATION_DIRECTION = 477,
PROP_PASSENGER_ALARM = 478,
PROP_POWER_MODE = 479,
PROP_REGISTERED_CAR_CALL = 480,
PROP_ACTIVE_COV_MULTIPLE_SUBSCRIPTIONS = 481,
PROP_PROTOCOL_LEVEL = 482,
PROP_REFERENCE_PORT = 483,
PROP_DEPLOYED_PROFILE_LOCATION = 484,
PROP_PROFILE_LOCATION = 485,
PROP_TAGS = 486,
PROP_SUBORDINATE_NODE_TYPES = 487,
PROP_SUBORDINATE_TAGS = 488,
PROP_SUBORDINATE_RELATIONSHIPS = 489,
PROP_DEFAULT_SUBORDINATE_RELATIONSHIP = 490,
PROP_REPRESENTS = 491,
PROP_DEFAULT_PRESENT_VALUE = 492,
PROP_PRESENT_STAGE = 493,
PROP_STAGES = 494,
PROP_STAGE_NAMES = 495,
PROP_TARGET_REFERENCES = 496,
/* 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. */
/* do the max range inside of enum so that
compilers will allocate adequate sized datatype for enum
which is used to store decoding */
MAX_BACNET_PROPERTY_ID = 4194303
} BACNET_PROPERTY_ID;
typedef enum {
EVENT_LOW_LIMIT_ENABLE = 1,
EVENT_HIGH_LIMIT_ENABLE = 2
} BACNET_LIMIT_ENABLE;
typedef enum {
ACTION_DIRECT = 0,
ACTION_REVERSE = 1
} BACNET_ACTION;
typedef enum {
MIN_BINARY_PV = 0, /* for validating incoming values */
BINARY_INACTIVE = 0,
BINARY_ACTIVE = 1,
MAX_BINARY_PV = 1, /* for validating incoming values */
BINARY_NULL = 255 /* our homemade way of storing this info */
} BACNET_BINARY_PV;
typedef enum {
ACTION_BINARY_PV,
ACTION_UNSIGNED,
ACTION_FLOAT
} BACNET_ACTION_VALUE_TYPE;
typedef enum {
EVENT_STATE_NORMAL = 0,
EVENT_STATE_FAULT = 1,
EVENT_STATE_OFFNORMAL = 2,
EVENT_STATE_HIGH_LIMIT = 3,
EVENT_STATE_LOW_LIMIT = 4,
EVENT_STATE_MAX = 5
} BACNET_EVENT_STATE;
typedef enum {
EVENT_ENABLE_TO_OFFNORMAL = 1,
EVENT_ENABLE_TO_FAULT = 2,
EVENT_ENABLE_TO_NORMAL = 4
} BACNET_EVENT_ENABLE;
typedef enum {
STATUS_OPERATIONAL = 0,
STATUS_OPERATIONAL_READ_ONLY = 1,
STATUS_DOWNLOAD_REQUIRED = 2,
STATUS_DOWNLOAD_IN_PROGRESS = 3,
STATUS_NON_OPERATIONAL = 4,
STATUS_BACKUP_IN_PROGRESS = 5,
MAX_DEVICE_STATUS = 6
} BACNET_DEVICE_STATUS;
typedef enum {
/* Acceleration */
UNITS_METERS_PER_SECOND_PER_SECOND = 166,
/* Area */
UNITS_SQUARE_METERS = 0,
UNITS_SQUARE_CENTIMETERS = 116,
UNITS_SQUARE_FEET = 1,
UNITS_SQUARE_INCHES = 115,
/* Currency */
UNITS_CURRENCY1 = 105,
UNITS_CURRENCY2 = 106,
UNITS_CURRENCY3 = 107,
UNITS_CURRENCY4 = 108,
UNITS_CURRENCY5 = 109,
UNITS_CURRENCY6 = 110,
UNITS_CURRENCY7 = 111,
UNITS_CURRENCY8 = 112,
UNITS_CURRENCY9 = 113,
UNITS_CURRENCY10 = 114,
/* Electrical */
UNITS_MILLIAMPERES = 2,
UNITS_AMPERES = 3,
UNITS_AMPERES_PER_METER = 167,
UNITS_AMPERES_PER_SQUARE_METER = 168,
UNITS_AMPERE_SQUARE_METERS = 169,
UNITS_DECIBELS = 199,
UNITS_DECIBELS_MILLIVOLT = 200,
UNITS_DECIBELS_VOLT = 201,
UNITS_FARADS = 170,
UNITS_HENRYS = 171,
UNITS_OHMS = 4,
UNITS_OHM_METERS = 172,
UNITS_MILLIOHMS = 145,
UNITS_KILOHMS = 122,
UNITS_MEGOHMS = 123,
UNITS_MICROSIEMENS = 190,
UNITS_MILLISIEMENS = 202,
UNITS_SIEMENS = 173, /* 1 mho equals 1 siemens */
UNITS_SIEMENS_PER_METER = 174,
UNITS_TESLAS = 175,
UNITS_VOLTS = 5,
UNITS_MILLIVOLTS = 124,
UNITS_KILOVOLTS = 6,
UNITS_MEGAVOLTS = 7,
UNITS_VOLT_AMPERES = 8,
UNITS_KILOVOLT_AMPERES = 9,
UNITS_MEGAVOLT_AMPERES = 10,
UNITS_VOLT_AMPERES_REACTIVE = 11,
UNITS_KILOVOLT_AMPERES_REACTIVE = 12,
UNITS_MEGAVOLT_AMPERES_REACTIVE = 13,
UNITS_VOLTS_PER_DEGREE_KELVIN = 176,
UNITS_VOLTS_PER_METER = 177,
UNITS_DEGREES_PHASE = 14,
UNITS_POWER_FACTOR = 15,
UNITS_WEBERS = 178,
/* Energy */
UNITS_JOULES = 16,
UNITS_KILOJOULES = 17,
UNITS_KILOJOULES_PER_KILOGRAM = 125,
UNITS_MEGAJOULES = 126,
UNITS_WATT_HOURS = 18,
UNITS_KILOWATT_HOURS = 19,
UNITS_MEGAWATT_HOURS = 146,
UNITS_WATT_HOURS_REACTIVE = 203,
UNITS_KILOWATT_HOURS_REACTIVE = 204,
UNITS_MEGAWATT_HOURS_REACTIVE = 205,
UNITS_BTUS = 20,
UNITS_KILO_BTUS = 147,
UNITS_MEGA_BTUS = 148,
UNITS_THERMS = 21,
UNITS_TON_HOURS = 22,
/* Enthalpy */
UNITS_JOULES_PER_KILOGRAM_DRY_AIR = 23,
UNITS_KILOJOULES_PER_KILOGRAM_DRY_AIR = 149,
UNITS_MEGAJOULES_PER_KILOGRAM_DRY_AIR = 150,
UNITS_BTUS_PER_POUND_DRY_AIR = 24,
UNITS_BTUS_PER_POUND = 117,
/* Entropy */
UNITS_JOULES_PER_DEGREE_KELVIN = 127,
UNITS_KILOJOULES_PER_DEGREE_KELVIN = 151,
UNITS_MEGAJOULES_PER_DEGREE_KELVIN = 152,
UNITS_JOULES_PER_KILOGRAM_DEGREE_KELVIN = 128,
/* Force */
UNITS_NEWTON = 153,
/* Frequency */
UNITS_CYCLES_PER_HOUR = 25,
UNITS_CYCLES_PER_MINUTE = 26,
UNITS_HERTZ = 27,
UNITS_KILOHERTZ = 129,
UNITS_MEGAHERTZ = 130,
UNITS_PER_HOUR = 131,
/* Humidity */
UNITS_GRAMS_OF_WATER_PER_KILOGRAM_DRY_AIR = 28,
UNITS_PERCENT_RELATIVE_HUMIDITY = 29,
/* Length */
UNITS_MICROMETERS = 194,
UNITS_MILLIMETERS = 30,
UNITS_CENTIMETERS = 118,
UNITS_KILOMETERS = 193,
UNITS_METERS = 31,
UNITS_INCHES = 32,
UNITS_FEET = 33,
/* Light */
UNITS_CANDELAS = 179,
UNITS_CANDELAS_PER_SQUARE_METER = 180,
UNITS_WATTS_PER_SQUARE_FOOT = 34,
UNITS_WATTS_PER_SQUARE_METER = 35,
UNITS_LUMENS = 36,
UNITS_LUXES = 37,
UNITS_FOOT_CANDLES = 38,
/* Mass */
UNITS_MILLIGRAMS = 196,
UNITS_GRAMS = 195,
UNITS_KILOGRAMS = 39,
UNITS_POUNDS_MASS = 40,
UNITS_TONS = 41,
/* Mass Flow */
UNITS_GRAMS_PER_SECOND = 154,
UNITS_GRAMS_PER_MINUTE = 155,
UNITS_KILOGRAMS_PER_SECOND = 42,
UNITS_KILOGRAMS_PER_MINUTE = 43,
UNITS_KILOGRAMS_PER_HOUR = 44,
UNITS_POUNDS_MASS_PER_SECOND = 119,
UNITS_POUNDS_MASS_PER_MINUTE = 45,
UNITS_POUNDS_MASS_PER_HOUR = 46,
UNITS_TONS_PER_HOUR = 156,
/* Power */
UNITS_MILLIWATTS = 132,
UNITS_WATTS = 47,
UNITS_KILOWATTS = 48,
UNITS_MEGAWATTS = 49,
UNITS_BTUS_PER_HOUR = 50,
UNITS_KILO_BTUS_PER_HOUR = 157,
UNITS_HORSEPOWER = 51,
UNITS_TONS_REFRIGERATION = 52,
/* Pressure */
UNITS_PASCALS = 53,
UNITS_HECTOPASCALS = 133,
UNITS_KILOPASCALS = 54,
UNITS_MILLIBARS = 134,
UNITS_BARS = 55,
UNITS_POUNDS_FORCE_PER_SQUARE_INCH = 56,
UNITS_MILLIMETERS_OF_WATER = 206,
UNITS_CENTIMETERS_OF_WATER = 57,
UNITS_INCHES_OF_WATER = 58,
UNITS_MILLIMETERS_OF_MERCURY = 59,
UNITS_CENTIMETERS_OF_MERCURY = 60,
UNITS_INCHES_OF_MERCURY = 61,
/* Temperature */
UNITS_DEGREES_CELSIUS = 62,
UNITS_DEGREES_KELVIN = 63,
UNITS_DEGREES_KELVIN_PER_HOUR = 181,
UNITS_DEGREES_KELVIN_PER_MINUTE = 182,
UNITS_DEGREES_FAHRENHEIT = 64,
UNITS_DEGREE_DAYS_CELSIUS = 65,
UNITS_DEGREE_DAYS_FAHRENHEIT = 66,
UNITS_DELTA_DEGREES_FAHRENHEIT = 120,
UNITS_DELTA_DEGREES_KELVIN = 121,
/* Time */
UNITS_YEARS = 67,
UNITS_MONTHS = 68,
UNITS_WEEKS = 69,
UNITS_DAYS = 70,
UNITS_HOURS = 71,
UNITS_MINUTES = 72,
UNITS_SECONDS = 73,
UNITS_HUNDREDTHS_SECONDS = 158,
UNITS_MILLISECONDS = 159,
/* Torque */
UNITS_NEWTON_METERS = 160,
/* Velocity */
UNITS_MILLIMETERS_PER_SECOND = 161,
UNITS_MILLIMETERS_PER_MINUTE = 162,
UNITS_METERS_PER_SECOND = 74,
UNITS_METERS_PER_MINUTE = 163,
UNITS_METERS_PER_HOUR = 164,
UNITS_KILOMETERS_PER_HOUR = 75,
UNITS_FEET_PER_SECOND = 76,
UNITS_FEET_PER_MINUTE = 77,
UNITS_MILES_PER_HOUR = 78,
/* Volume */
UNITS_CUBIC_FEET = 79,
UNITS_CUBIC_METERS = 80,
UNITS_IMPERIAL_GALLONS = 81,
UNITS_MILLILITERS = 197,
UNITS_LITERS = 82,
UNITS_US_GALLONS = 83,
/* Volumetric Flow */
UNITS_CUBIC_FEET_PER_SECOND = 142,
UNITS_CUBIC_FEET_PER_MINUTE = 84,
UNITS_CUBIC_FEET_PER_HOUR = 191,
UNITS_CUBIC_METERS_PER_SECOND = 85,
UNITS_CUBIC_METERS_PER_MINUTE = 165,
UNITS_CUBIC_METERS_PER_HOUR = 135,
UNITS_IMPERIAL_GALLONS_PER_MINUTE = 86,
UNITS_MILLILITERS_PER_SECOND = 198,
UNITS_LITERS_PER_SECOND = 87,
UNITS_LITERS_PER_MINUTE = 88,
UNITS_LITERS_PER_HOUR = 136,
UNITS_US_GALLONS_PER_MINUTE = 89,
UNITS_US_GALLONS_PER_HOUR = 192,
/* Other */
UNITS_DEGREES_ANGULAR = 90,
UNITS_DEGREES_CELSIUS_PER_HOUR = 91,
UNITS_DEGREES_CELSIUS_PER_MINUTE = 92,
UNITS_DEGREES_FAHRENHEIT_PER_HOUR = 93,
UNITS_DEGREES_FAHRENHEIT_PER_MINUTE = 94,
UNITS_JOULE_SECONDS = 183,
UNITS_KILOGRAMS_PER_CUBIC_METER = 186,
UNITS_KW_HOURS_PER_SQUARE_METER = 137,
UNITS_KW_HOURS_PER_SQUARE_FOOT = 138,
UNITS_MEGAJOULES_PER_SQUARE_METER = 139,
UNITS_MEGAJOULES_PER_SQUARE_FOOT = 140,
UNITS_NO_UNITS = 95,
UNITS_NEWTON_SECONDS = 187,
UNITS_NEWTONS_PER_METER = 188,
UNITS_PARTS_PER_MILLION = 96,
UNITS_PARTS_PER_BILLION = 97,
UNITS_PERCENT = 98,
UNITS_PERCENT_OBSCURATION_PER_FOOT = 143,
UNITS_PERCENT_OBSCURATION_PER_METER = 144,
UNITS_PERCENT_PER_SECOND = 99,
UNITS_PER_MINUTE = 100,
UNITS_PER_SECOND = 101,
UNITS_PSI_PER_DEGREE_FAHRENHEIT = 102,
UNITS_RADIANS = 103,
UNITS_RADIANS_PER_SECOND = 184,
UNITS_REVOLUTIONS_PER_MINUTE = 104,
UNITS_SQUARE_METERS_PER_NEWTON = 185,
UNITS_WATTS_PER_METER_PER_DEGREE_KELVIN = 189,
UNITS_WATTS_PER_SQUARE_METER_DEGREE_KELVIN = 141,
UNITS_PER_MILLE = 207,
UNITS_GRAMS_PER_GRAM = 208,
UNITS_KILOGRAMS_PER_KILOGRAM = 209,
UNITS_GRAMS_PER_KILOGRAM = 210,
UNITS_MILLIGRAMS_PER_GRAM = 211,
UNITS_MILLIGRAMS_PER_KILOGRAM = 212,
UNITS_GRAMS_PER_MILLILITER = 213,
UNITS_GRAMS_PER_LITER = 214,
UNITS_MILLIGRAMS_PER_LITER = 215,
UNITS_MICROGRAMS_PER_LITER = 216,
UNITS_GRAMS_PER_CUBIC_METER = 217,
UNITS_MILLIGRAMS_PER_CUBIC_METER = 218,
UNITS_MICROGRAMS_PER_CUBIC_METER = 219,
UNITS_NANOGRAMS_PER_CUBIC_METER = 220,
UNITS_GRAMS_PER_CUBIC_CENTIMETER = 221,
UNITS_BECQUERELS = 222,
UNITS_KILOBECQUERELS = 223,
UNITS_MEGABECQUERELS = 224,
UNITS_GRAY = 225,
UNITS_MILLIGRAY = 226,
UNITS_MICROGRAY = 227,
UNITS_SIEVERTS = 228,
UNITS_MILLISIEVERTS = 229,
UNITS_MICROSIEVERTS = 230,
UNITS_MICROSIEVERTS_PER_HOUR = 231,
UNITS_DECIBELS_A = 232,
UNITS_NEPHELOMETRIC_TURBIDITY_UNIT = 233,
UNITS_PH = 234,
UNITS_GRAMS_PER_SQUARE_METER = 235,
UNITS_MINUTES_PER_DEGREE_KELVIN = 236,
UNITS_OHM_METER_SQUARED_PER_METER = 237,
UNITS_AMPERE_SECONDS = 238,
UNITS_VOLT_AMPERE_HOURS = 239,
UNITS_KILOVOLT_AMPERE_HOURS = 240,
UNITS_MEGAVOLT_AMPERE_HOURS = 241,
UNITS_VOLT_AMPERE_HOURS_REACTIVE = 242,
UNITS_KILOVOLT_AMPERE_HOURS_REACTIVE = 243,
UNITS_MEGAVOLT_AMPERE_HOURS_REACTIVE = 244,
UNITS_VOLT_SQUARE_HOURS = 245,
UNITS_AMPERE_SQUARE_HOURS = 246,
UNITS_JOULE_PER_HOURS = 247,
UNITS_CUBIC_FEET_PER_DAY = 248,
UNITS_CUBIC_METERS_PER_DAY = 249,
UNITS_WATT_HOURS_PER_CUBIC_METER = 250,
UNITS_JOULES_PER_CUBIC_METER = 251,
UNITS_MOLE_PERCENT = 252,
UNITS_PASCAL_SECONDS = 253,
UNITS_MILLION_STANDARD_CUBIC_FEET_PER_MINUTE = 254,
/* 255 - NOT USED */
UNITS_STANDARD_CUBIC_FEET_PER_DAY = 47808,
UNITS_MILLION_STANDARD_CUBIC_FEET_PER_DAY = 47809,
UNITS_THOUSAND_CUBIC_FEET_PER_DAY = 47810,
UNITS_THOUSAND_STANDARD_CUBIC_FEET_PER_DAY = 47811,
UNITS_POUNDS_MASS_PER_DAY = 47812,
/* 47813 - NOT USED */
UNITS_MILLIREMS = 47814,
UNITS_MILLIREMS_PER_HOUR = 47815,
/* Enumerated values 0-255 and 47808-49999 are reserved for
definition by ASHRAE. */
/* Enumerated values 256-47807 and 50000-65535 may be used by others
subject to the procedures and constraints described in Clause 23. */
/* do the proprietary range inside of enum so that
compilers will allocate adequate sized datatype for enum
which is used to store decoding */
UNITS_PROPRIETARY_RANGE_MIN = 256,
UNITS_PROPRIETARY_RANGE_MAX = 65535
} BACNET_ENGINEERING_UNITS;
typedef enum {
POLARITY_NORMAL = 0,
POLARITY_REVERSE = 1,
MAX_POLARITY = 2
} BACNET_POLARITY;
typedef enum {
PROGRAM_REQUEST_READY = 0,
PROGRAM_REQUEST_LOAD = 1,
PROGRAM_REQUEST_RUN = 2,
PROGRAM_REQUEST_HALT = 3,
PROGRAM_REQUEST_RESTART = 4,
PROGRAM_REQUEST_UNLOAD = 5
} BACNET_PROGRAM_REQUEST;
typedef enum {
PROGRAM_STATE_IDLE = 0,
PROGRAM_STATE_LOADING = 1,
PROGRAM_STATE_RUNNING = 2,
PROGRAM_STATE_WAITING = 3,
PROGRAM_STATE_HALTED = 4,
PROGRAM_STATE_UNLOADING = 5
} BACNET_PROGRAM_STATE;
typedef enum {
PROGRAM_ERROR_NORMAL = 0,
PROGRAM_ERROR_LOAD_FAILED = 1,
PROGRAM_ERROR_INTERNAL = 2,
PROGRAM_ERROR_PROGRAM = 3,
PROGRAM_ERROR_OTHER = 4,
/* Enumerated values 0-63 are reserved for definition by ASHRAE. */
/* Enumerated values 64-65535 may be used by others subject to */
/* the procedures and constraints described in Clause 23. */
/* do the max range inside of enum so that
compilers will allocate adequate sized datatype for enum
which is used to store decoding */
PROGRAM_ERROR_PROPRIETARY_MIN = 64,
PROGRAM_ERROR_PROPRIETARY_MAX = 65535
} BACNET_PROGRAM_ERROR;
typedef enum {
RESTART_REASON_UNKNOWN = 0,
RESTART_REASON_COLDSTART = 1,
RESTART_REASON_WARMSTART = 2,
RESTART_REASON_DETECTED_POWER_LOST = 3,
RESTART_REASON_DETECTED_POWER_OFF = 4,
RESTART_REASON_HARDWARE_WATCHDOG = 5,
RESTART_REASON_SOFTWARE_WATCHDOG = 6,
RESTART_REASON_SUSPENDED = 7,
/* Enumerated values 0-63 are reserved for definition by ASHRAE.
Enumerated values 64-255 may be used by others subject to the
procedures and constraints described in Clause 23. */
/* do the max range inside of enum so that
compilers will allocate adequate sized datatype for enum
which is used to store decoding */
RESTART_REASON_PROPRIETARY_MIN = 64,
RESTART_REASON_PROPRIETARY_MAX = 255
} BACNET_RESTART_REASON;
typedef enum {
PROP_STATE_BOOLEAN_VALUE = 0,
PROP_STATE_BINARY_VALUE = 1,
PROP_STATE_EVENT_TYPE = 2,
PROP_STATE_POLARITY = 3,
PROP_STATE_PROGRAM_CHANGE = 4,
PROP_STATE_PROGRAM_STATE = 5,
PROP_STATE_REASON_FOR_HALT = 6,
PROP_STATE_RELIABILITY = 7,
PROP_STATE_EVENT_STATE = 8,
PROP_STATE_SYSTEM_STATUS = 9,
PROP_STATE_UNITS = 10,
PROP_STATE_UNSIGNED_VALUE = 11,
PROP_STATE_LIFE_SAFETY_MODE = 12,
PROP_STATE_LIFE_SAFETY_STATE = 13,
PROP_STATE_RESTART_REASON = 14,
PROP_STATE_DOOR_ALARM_STATE = 15,
PROP_STATE_ACTION = 16,
PROP_STATE_DOOR_SECURED_STATUS = 17,
PROP_STATE_DOOR_STATUS = 18,
PROP_STATE_DOOR_VALUE = 19,
PROP_STATE_FILE_ACCESS_METHOD = 20,
PROP_STATE_LOCK_STATUS = 21,
PROP_STATE_LIFE_SAFETY_OPERATION = 22,
PROP_STATE_MAINTENANCE = 23,
PROP_STATE_NODE_TYPE = 24,
PROP_STATE_NOTIFY_TYPE = 25,
PROP_STATE_SECURITY_LEVEL = 26,
PROP_STATE_SHED_STATE = 27,
PROP_STATE_SILENCED_STATE = 28,
PROP_STATE_ACCESS_EVENT = 30,
PROP_STATE_ZONE_OCCUPANCY_STATE = 31,
PROP_STATE_ACCESS_CRED_DISABLE_REASON = 32,
PROP_STATE_ACCESS_CRED_DISABLE = 33,
PROP_STATE_AUTHENTICATION_STATUS = 34
} BACNET_PROPERTY_STATES;
typedef enum {
RELIABILITY_NO_FAULT_DETECTED = 0,
RELIABILITY_NO_SENSOR = 1,
RELIABILITY_OVER_RANGE = 2,
RELIABILITY_UNDER_RANGE = 3,
RELIABILITY_OPEN_LOOP = 4,
RELIABILITY_SHORTED_LOOP = 5,
RELIABILITY_NO_OUTPUT = 6,
RELIABILITY_UNRELIABLE_OTHER = 7,
RELIABILITY_PROCESS_ERROR = 8,
RELIABILITY_MULTI_STATE_FAULT = 9,
RELIABILITY_CONFIGURATION_ERROR = 10,
RELIABILITY_MEMBER_FAULT = 11,
RELIABILITY_COMMUNICATION_FAILURE = 12,
RELIABILITY_TRIPPED = 13,
/* Enumerated values 0-63 are reserved for definition by ASHRAE. */
/* Enumerated values 64-65535 may be used by others subject to */
/* the procedures and constraints described in Clause 23. */
/* do the max range inside of enum so that
compilers will allocate adequate sized datatype for enum
which is used to store decoding */
RELIABILITY_PROPRIETARY_MIN = 64,
RELIABILITY_PROPRIETARY_MAX = 65535
} BACNET_RELIABILITY;
typedef enum {
EVENT_CHANGE_OF_BITSTRING = 0,
EVENT_CHANGE_OF_STATE = 1,
EVENT_CHANGE_OF_VALUE = 2,
EVENT_COMMAND_FAILURE = 3,
EVENT_FLOATING_LIMIT = 4,
EVENT_OUT_OF_RANGE = 5,
/* complex-event-type (6), -- see comment below */
/* event-buffer-ready (7), -- context tag 7 is deprecated */
EVENT_CHANGE_OF_LIFE_SAFETY = 8,
EVENT_EXTENDED = 9,
EVENT_BUFFER_READY = 10,
EVENT_UNSIGNED_RANGE = 11,
EVENT_ACCESS_EVENT = 13,
EVENT_DOUBLE_OUT_OF_RANGE = 14,
EVENT_SIGNED_OUT_OF_RANGE = 15,
EVENT_UNSIGNED_OUT_OF_RANGE = 16,
EVENT_CHANGE_OF_CHARACTERSTRING = 17,
EVENT_CHANGE_OF_STATUS_FLAGS = 18,
EVENT_CHANGE_OF_RELIABILITY = 19,
EVENT_NONE = 20,
EVENT_CHANGE_OF_DISCRETE_VALUE = 21,
EVENT_CHANGE_OF_TIMER = 22,
/* Enumerated values 0-63 are reserved for definition by ASHRAE. */
/* Enumerated values 64-65535 may be used by others subject to */
/* the procedures and constraints described in Clause 23. */
/* It is expected that these enumerated values will correspond to */
/* the use of the complex-event-type CHOICE [6] of the */
/* BACnetNotificationParameters production. */
/* The last enumeration used in this version is 22. */
/* do the max range inside of enum so that
compilers will allocate adequate sized datatype for enum
which is used to store decoding */
EVENT_PROPRIETARY_MIN = 64,
EVENT_PROPRIETARY_MAX = 65535
} BACNET_EVENT_TYPE;
typedef enum {
FILE_RECORD_ACCESS = 0,
FILE_STREAM_ACCESS = 1,
FILE_RECORD_AND_STREAM_ACCESS = 2
} BACNET_FILE_ACCESS_METHOD;
typedef enum {
MIN_LIFE_SAFETY_MODE = 0,
LIFE_SAFETY_MODE_OFF = 0,
LIFE_SAFETY_MODE_ON = 1,
LIFE_SAFETY_MODE_TEST = 2,
LIFE_SAFETY_MODE_MANNED = 3,
LIFE_SAFETY_MODE_UNMANNED = 4,
LIFE_SAFETY_MODE_ARMED = 5,
LIFE_SAFETY_MODE_DISARMED = 6,
LIFE_SAFETY_MODE_PREARMED = 7,
LIFE_SAFETY_MODE_SLOW = 8,
LIFE_SAFETY_MODE_FAST = 9,
LIFE_SAFETY_MODE_DISCONNECTED = 10,
LIFE_SAFETY_MODE_ENABLED = 11,
LIFE_SAFETY_MODE_DISABLED = 12,
LIFE_SAFETY_MODE_AUTOMATIC_RELEASE_DISABLED = 13,
LIFE_SAFETY_MODE_DEFAULT = 14,
MAX_LIFE_SAFETY_MODE = 15,
/* Enumerated values 0-255 are reserved for definition by ASHRAE. */
/* Enumerated values 256-65535 may be used by others subject to */
/* procedures and constraints described in Clause 23. */
/* do the max range inside of enum so that
compilers will allocate adequate sized datatype for enum
which is used to store decoding */
LIFE_SAFETY_MODE_PROPRIETARY_MIN = 256,
LIFE_SAFETY_MODE_PROPRIETARY_MAX = 65535
} BACNET_LIFE_SAFETY_MODE;
typedef enum {
LIFE_SAFETY_OP_NONE = 0,
LIFE_SAFETY_OP_SILENCE = 1,
LIFE_SAFETY_OP_SILENCE_AUDIBLE = 2,
LIFE_SAFETY_OP_SILENCE_VISUAL = 3,
LIFE_SAFETY_OP_RESET = 4,
LIFE_SAFETY_OP_RESET_ALARM = 5,
LIFE_SAFETY_OP_RESET_FAULT = 6,
LIFE_SAFETY_OP_UNSILENCE = 7,
LIFE_SAFETY_OP_UNSILENCE_AUDIBLE = 8,
LIFE_SAFETY_OP_UNSILENCE_VISUAL = 9,
/* Enumerated values 0-63 are reserved for definition by ASHRAE. */
/* Enumerated values 64-65535 may be used by others subject to */
/* procedures and constraints described in Clause 23. */
/* do the max range inside of enum so that
compilers will allocate adequate sized datatype for enum
which is used to store decoding */
LIFE_SAFETY_OP_PROPRIETARY_MIN = 64,
LIFE_SAFETY_OP_PROPRIETARY_MAX = 65535
} BACNET_LIFE_SAFETY_OPERATION;
typedef enum {
MIN_LIFE_SAFETY_STATE = 0,
LIFE_SAFETY_STATE_QUIET = 0,
LIFE_SAFETY_STATE_PRE_ALARM = 1,
LIFE_SAFETY_STATE_ALARM = 2,
LIFE_SAFETY_STATE_FAULT = 3,
LIFE_SAFETY_STATE_FAULT_PRE_ALARM = 4,
LIFE_SAFETY_STATE_FAULT_ALARM = 5,
LIFE_SAFETY_STATE_NOT_READY = 6,
LIFE_SAFETY_STATE_ACTIVE = 7,
LIFE_SAFETY_STATE_TAMPER = 8,
LIFE_SAFETY_STATE_TEST_ALARM = 9,
LIFE_SAFETY_STATE_TEST_ACTIVE = 10,
LIFE_SAFETY_STATE_TEST_FAULT = 11,
LIFE_SAFETY_STATE_TEST_FAULT_ALARM = 12,
LIFE_SAFETY_STATE_HOLDUP = 13,
LIFE_SAFETY_STATE_DURESS = 14,
LIFE_SAFETY_STATE_TAMPER_ALARM = 15,
LIFE_SAFETY_STATE_ABNORMAL = 16,
LIFE_SAFETY_STATE_EMERGENCY_POWER = 17,
LIFE_SAFETY_STATE_DELAYED = 18,
LIFE_SAFETY_STATE_BLOCKED = 19,
LIFE_SAFETY_STATE_LOCAL_ALARM = 20,
LIFE_SAFETY_STATE_GENERAL_ALARM = 21,
LIFE_SAFETY_STATE_SUPERVISORY = 22,
LIFE_SAFETY_STATE_TEST_SUPERVISORY = 23,
MAX_LIFE_SAFETY_STATE = 24,
/* Enumerated values 0-255 are reserved for definition by ASHRAE. */
/* Enumerated values 256-65535 may be used by others subject to */
/* procedures and constraints described in Clause 23. */
/* do the max range inside of enum so that
compilers will allocate adequate sized datatype for enum
which is used to store decoding */
LIFE_SAFETY_STATE_PROPRIETARY_MIN = 256,
LIFE_SAFETY_STATE_PROPRIETARY_MAX = 65535
} BACNET_LIFE_SAFETY_STATE;
typedef enum {
SILENCED_STATE_UNSILENCED = 0,
SILENCED_STATE_AUDIBLE_SILENCED = 1,
SILENCED_STATE_VISIBLE_SILENCED = 2,
SILENCED_STATE_ALL_SILENCED = 3,
/* Enumerated values 0-63 are reserved for definition by ASHRAE. */
/* Enumerated values 64-65535 may be used by others subject to */
/* procedures and constraints described in Clause 23. */
/* do the max range inside of enum so that
compilers will allocate adequate sized datatype for enum
which is used to store decoding */
SILENCED_STATE_PROPRIETARY_MIN = 64,
SILENCED_STATE_PROPRIETARY_MAX = 65535
} BACNET_SILENCED_STATE;
typedef enum {
MAINTENANCE_NONE = 0,
MAINTENANCE_PERIODIC_TEST = 1,
MAINTENANCE_NEED_SERVICE_OPERATIONAL = 2,
MAINTENANCE_NEED_SERVICE_INOPERATIVE = 3,
/* Enumerated values 0-255 are reserved for definition by ASHRAE. */
/* Enumerated values 256-65535 may be used by others subject to */
/* procedures and constraints described in Clause 23. */
/* do the max range inside of enum so that
compilers will allocate adequate sized datatype for enum
which is used to store decoding */
MAINTENANCE_PROPRIETARY_MIN = 256,
MAINTENANCE_PROPRIETARY_MAX = 65535
} BACNET_MAINTENANCE;
typedef enum {
NOTIFY_ALARM = 0,
NOTIFY_EVENT = 1,
NOTIFY_ACK_NOTIFICATION = 2,
NOTIFY_MAX = 3
} BACNET_NOTIFY_TYPE;
typedef enum {
OBJECT_ANALOG_INPUT = 0,
OBJECT_ANALOG_OUTPUT = 1,
OBJECT_ANALOG_VALUE = 2,
OBJECT_BINARY_INPUT = 3,
OBJECT_BINARY_OUTPUT = 4,
OBJECT_BINARY_VALUE = 5,
OBJECT_CALENDAR = 6,
OBJECT_COMMAND = 7,
OBJECT_DEVICE = 8,
OBJECT_EVENT_ENROLLMENT = 9,
OBJECT_FILE = 10,
OBJECT_GROUP = 11,
OBJECT_LOOP = 12,
OBJECT_MULTI_STATE_INPUT = 13,
OBJECT_MULTI_STATE_OUTPUT = 14,
OBJECT_NOTIFICATION_CLASS = 15,
OBJECT_PROGRAM = 16,
OBJECT_SCHEDULE = 17,
OBJECT_AVERAGING = 18,
OBJECT_MULTI_STATE_VALUE = 19,
OBJECT_TRENDLOG = 20,
OBJECT_LIFE_SAFETY_POINT = 21,
OBJECT_LIFE_SAFETY_ZONE = 22,
OBJECT_ACCUMULATOR = 23,
OBJECT_PULSE_CONVERTER = 24,
OBJECT_EVENT_LOG = 25,
OBJECT_GLOBAL_GROUP = 26,
OBJECT_TREND_LOG_MULTIPLE = 27,
OBJECT_LOAD_CONTROL = 28,
OBJECT_STRUCTURED_VIEW = 29,
OBJECT_ACCESS_DOOR = 30,
OBJECT_TIMER = 31,
/* Note: 31 was lighting output, but BACnet editor changed it... */
OBJECT_ACCESS_CREDENTIAL = 32, /* Addendum 2008-j */
OBJECT_ACCESS_POINT = 33,
OBJECT_ACCESS_RIGHTS = 34,
OBJECT_ACCESS_USER = 35,
OBJECT_ACCESS_ZONE = 36,
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, /* 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 */
OBJECT_BINARY_LIGHTING_OUTPUT = 55, /* Addendum 135-2012az */
OBJECT_NETWORK_PORT = 56, /* Addendum 135-2012az */
OBJECT_ELEVATOR_GROUP = 57, /* Addendum 135-2012aq */
OBJECT_ESCALATOR = 58, /* Addendum 135-2012aq */
OBJECT_LIFT = 59, /* Addendum 135-2012aq */
OBJECT_STAGING = 60, /* Addendum 135-2016bd */
/* 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. */
/* do the max range inside of enum so that
compilers will allocate adequate sized datatype for enum
which is used to store decoding */
OBJECT_PROPRIETARY_MIN = 128,
OBJECT_PROPRIETARY_MAX = 1023,
MAX_BACNET_OBJECT_TYPE = 1024,
OBJECT_NONE = 0xFFFFu
} BACNET_OBJECT_TYPE;
typedef enum {
SEGMENTATION_BOTH = 0,
SEGMENTATION_TRANSMIT = 1,
SEGMENTATION_RECEIVE = 2,
SEGMENTATION_NONE = 3,
MAX_BACNET_SEGMENTATION = 4
} BACNET_SEGMENTATION;
typedef enum {
VT_CLASS_DEFAULT = 0,
VT_CLASS_ANSI_X34 = 1, /* real name is ANSI X3.64 */
VT_CLASS_DEC_VT52 = 2,
VT_CLASS_DEC_VT100 = 3,
VT_CLASS_DEC_VT220 = 4,
VT_CLASS_HP_700_94 = 5, /* real name is HP 700/94 */
VT_CLASS_IBM_3130 = 6,
/* Enumerated values 0-63 are reserved for definition by ASHRAE. */
/* Enumerated values 64-65535 may be used by others subject to */
/* the procedures and constraints described in Clause 23. */
/* do the max range inside of enum so that
compilers will allocate adequate sized datatype for enum
which is used to store decoding */
VT_CLASS_PROPRIETARY_MIN = 64,
VT_CLASS_PROPRIETARY_MAX = 65535
} BACNET_VT_CLASS;
typedef enum {
CHARACTER_ANSI_X34 = 0, /* deprecated */
CHARACTER_UTF8 = 0,
CHARACTER_MS_DBCS = 1,
CHARACTER_JISC_6226 = 2,
CHARACTER_UCS4 = 3,
CHARACTER_UCS2 = 4,
CHARACTER_ISO8859 = 5,
MAX_CHARACTER_STRING_ENCODING = 6
} BACNET_CHARACTER_STRING_ENCODING;
typedef enum {
BACNET_APPLICATION_TAG_NULL = 0,
BACNET_APPLICATION_TAG_BOOLEAN = 1,
BACNET_APPLICATION_TAG_UNSIGNED_INT = 2,
BACNET_APPLICATION_TAG_SIGNED_INT = 3,
BACNET_APPLICATION_TAG_REAL = 4,
BACNET_APPLICATION_TAG_DOUBLE = 5,
BACNET_APPLICATION_TAG_OCTET_STRING = 6,
BACNET_APPLICATION_TAG_CHARACTER_STRING = 7,
BACNET_APPLICATION_TAG_BIT_STRING = 8,
BACNET_APPLICATION_TAG_ENUMERATED = 9,
BACNET_APPLICATION_TAG_DATE = 10,
BACNET_APPLICATION_TAG_TIME = 11,
BACNET_APPLICATION_TAG_OBJECT_ID = 12,
BACNET_APPLICATION_TAG_RESERVE1 = 13,
BACNET_APPLICATION_TAG_RESERVE2 = 14,
BACNET_APPLICATION_TAG_RESERVE3 = 15,
MAX_BACNET_APPLICATION_TAG = 16,
/* Extra stuff - complex tagged data - not specifically enumerated */
/* Means : "nothing", an empty list, not even a null character */
BACNET_APPLICATION_TAG_EMPTYLIST,
/* BACnetWeeknday */
BACNET_APPLICATION_TAG_WEEKNDAY,
/* BACnetDateRange */
BACNET_APPLICATION_TAG_DATERANGE,
/* BACnetDateTime */
BACNET_APPLICATION_TAG_DATETIME,
/* BACnetTimeStamp */
BACNET_APPLICATION_TAG_TIMESTAMP,
/* Error Class, Error Code */
BACNET_APPLICATION_TAG_ERROR,
/* BACnetDeviceObjectPropertyReference */
BACNET_APPLICATION_TAG_DEVICE_OBJECT_PROPERTY_REFERENCE,
/* BACnetDeviceObjectReference */
BACNET_APPLICATION_TAG_DEVICE_OBJECT_REFERENCE,
/* BACnetObjectPropertyReference */
BACNET_APPLICATION_TAG_OBJECT_PROPERTY_REFERENCE,
/* BACnetDestination (Recipient_List) */
BACNET_APPLICATION_TAG_DESTINATION,
/* BACnetRecipient */
BACNET_APPLICATION_TAG_RECIPIENT,
/* BACnetCOVSubscription */
BACNET_APPLICATION_TAG_COV_SUBSCRIPTION,
/* BACnetCalendarEntry */
BACNET_APPLICATION_TAG_CALENDAR_ENTRY,
/* BACnetWeeklySchedule */
BACNET_APPLICATION_TAG_WEEKLY_SCHEDULE,
/* BACnetSpecialEvent */
BACNET_APPLICATION_TAG_SPECIAL_EVENT,
/* BACnetReadAccessSpecification */
BACNET_APPLICATION_TAG_READ_ACCESS_SPECIFICATION,
/* BACnetLightingCommand */
BACNET_APPLICATION_TAG_LIGHTING_COMMAND
} BACNET_APPLICATION_TAG;
/* note: these are not the real values, */
/* but are shifted left for easy encoding */
typedef enum {
PDU_TYPE_CONFIRMED_SERVICE_REQUEST = 0,
PDU_TYPE_UNCONFIRMED_SERVICE_REQUEST = 0x10,
PDU_TYPE_SIMPLE_ACK = 0x20,
PDU_TYPE_COMPLEX_ACK = 0x30,
PDU_TYPE_SEGMENT_ACK = 0x40,
PDU_TYPE_ERROR = 0x50,
PDU_TYPE_REJECT = 0x60,
PDU_TYPE_ABORT = 0x70
} BACNET_PDU_TYPE;
typedef enum {
/* Alarm and Event Services */
SERVICE_CONFIRMED_ACKNOWLEDGE_ALARM = 0,
SERVICE_CONFIRMED_COV_NOTIFICATION = 1,
SERVICE_CONFIRMED_EVENT_NOTIFICATION = 2,
SERVICE_CONFIRMED_GET_ALARM_SUMMARY = 3,
SERVICE_CONFIRMED_GET_ENROLLMENT_SUMMARY = 4,
SERVICE_CONFIRMED_GET_EVENT_INFORMATION = 29,
SERVICE_CONFIRMED_SUBSCRIBE_COV = 5,
SERVICE_CONFIRMED_SUBSCRIBE_COV_PROPERTY = 28,
SERVICE_CONFIRMED_LIFE_SAFETY_OPERATION = 27,
/* File Access Services */
SERVICE_CONFIRMED_ATOMIC_READ_FILE = 6,
SERVICE_CONFIRMED_ATOMIC_WRITE_FILE = 7,
/* Object Access Services */
SERVICE_CONFIRMED_ADD_LIST_ELEMENT = 8,
SERVICE_CONFIRMED_REMOVE_LIST_ELEMENT = 9,
SERVICE_CONFIRMED_CREATE_OBJECT = 10,
SERVICE_CONFIRMED_DELETE_OBJECT = 11,
SERVICE_CONFIRMED_READ_PROPERTY = 12,
SERVICE_CONFIRMED_READ_PROP_CONDITIONAL = 13,
SERVICE_CONFIRMED_READ_PROP_MULTIPLE = 14,
SERVICE_CONFIRMED_READ_RANGE = 26,
SERVICE_CONFIRMED_WRITE_PROPERTY = 15,
SERVICE_CONFIRMED_WRITE_PROP_MULTIPLE = 16,
/* Remote Device Management Services */
SERVICE_CONFIRMED_DEVICE_COMMUNICATION_CONTROL = 17,
SERVICE_CONFIRMED_PRIVATE_TRANSFER = 18,
SERVICE_CONFIRMED_TEXT_MESSAGE = 19,
SERVICE_CONFIRMED_REINITIALIZE_DEVICE = 20,
/* Virtual Terminal Services */
SERVICE_CONFIRMED_VT_OPEN = 21,
SERVICE_CONFIRMED_VT_CLOSE = 22,
SERVICE_CONFIRMED_VT_DATA = 23,
/* Security Services */
SERVICE_CONFIRMED_AUTHENTICATE = 24,
SERVICE_CONFIRMED_REQUEST_KEY = 25,
/* Services added after 1995 */
/* readRange (26) see Object Access Services */
/* lifeSafetyOperation (27) see Alarm and Event Services */
/* subscribeCOVProperty (28) see Alarm and Event Services */
/* getEventInformation (29) see Alarm and Event Services */
MAX_BACNET_CONFIRMED_SERVICE = 30
} BACNET_CONFIRMED_SERVICE;
typedef enum {
SERVICE_UNCONFIRMED_I_AM = 0,
SERVICE_UNCONFIRMED_I_HAVE = 1,
SERVICE_UNCONFIRMED_COV_NOTIFICATION = 2,
SERVICE_UNCONFIRMED_EVENT_NOTIFICATION = 3,
SERVICE_UNCONFIRMED_PRIVATE_TRANSFER = 4,
SERVICE_UNCONFIRMED_TEXT_MESSAGE = 5,
SERVICE_UNCONFIRMED_TIME_SYNCHRONIZATION = 6,
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 = 11
} BACNET_UNCONFIRMED_SERVICE;
/* Bit String Enumerations */
typedef enum {
/* Alarm and Event Services */
SERVICE_SUPPORTED_ACKNOWLEDGE_ALARM = 0,
SERVICE_SUPPORTED_CONFIRMED_COV_NOTIFICATION = 1,
SERVICE_SUPPORTED_CONFIRMED_EVENT_NOTIFICATION = 2,
SERVICE_SUPPORTED_GET_ALARM_SUMMARY = 3,
SERVICE_SUPPORTED_GET_ENROLLMENT_SUMMARY = 4,
SERVICE_SUPPORTED_GET_EVENT_INFORMATION = 39,
SERVICE_SUPPORTED_SUBSCRIBE_COV = 5,
SERVICE_SUPPORTED_SUBSCRIBE_COV_PROPERTY = 38,
SERVICE_SUPPORTED_LIFE_SAFETY_OPERATION = 37,
/* File Access Services */
SERVICE_SUPPORTED_ATOMIC_READ_FILE = 6,
SERVICE_SUPPORTED_ATOMIC_WRITE_FILE = 7,
/* Object Access Services */
SERVICE_SUPPORTED_ADD_LIST_ELEMENT = 8,
SERVICE_SUPPORTED_REMOVE_LIST_ELEMENT = 9,
SERVICE_SUPPORTED_CREATE_OBJECT = 10,
SERVICE_SUPPORTED_DELETE_OBJECT = 11,
SERVICE_SUPPORTED_READ_PROPERTY = 12,
SERVICE_SUPPORTED_READ_PROP_CONDITIONAL = 13,
SERVICE_SUPPORTED_READ_PROP_MULTIPLE = 14,
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,
SERVICE_SUPPORTED_TEXT_MESSAGE = 19,
SERVICE_SUPPORTED_REINITIALIZE_DEVICE = 20,
/* Virtual Terminal Services */
SERVICE_SUPPORTED_VT_OPEN = 21,
SERVICE_SUPPORTED_VT_CLOSE = 22,
SERVICE_SUPPORTED_VT_DATA = 23,
/* Security Services */
SERVICE_SUPPORTED_AUTHENTICATE = 24,
SERVICE_SUPPORTED_REQUEST_KEY = 25,
SERVICE_SUPPORTED_I_AM = 26,
SERVICE_SUPPORTED_I_HAVE = 27,
SERVICE_SUPPORTED_UNCONFIRMED_COV_NOTIFICATION = 28,
SERVICE_SUPPORTED_UNCONFIRMED_EVENT_NOTIFICATION = 29,
SERVICE_SUPPORTED_UNCONFIRMED_PRIVATE_TRANSFER = 30,
SERVICE_SUPPORTED_UNCONFIRMED_TEXT_MESSAGE = 31,
SERVICE_SUPPORTED_TIME_SYNCHRONIZATION = 32,
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. */
} BACNET_SERVICES_SUPPORTED;
/* Bit String Enumerations */
typedef enum {
STATUS_FLAG_IN_ALARM = 0,
STATUS_FLAG_FAULT = 1,
STATUS_FLAG_OVERRIDDEN = 2,
STATUS_FLAG_OUT_OF_SERVICE = 3
} BACNET_STATUS_FLAGS;
typedef enum {
LOG_STATUS_LOG_DISABLED = 0,
LOG_STATUS_BUFFER_PURGED = 1,
LOG_STATUS_LOG_INTERRUPTED = 2
} BACNET_LOG_STATUS;
typedef enum {
LOGGING_TYPE_POLLED = 0,
LOGGING_TYPE_COV = 1,
LOGGING_TYPE_TRIGGERED = 2
} BACNET_LOGGING_TYPE;
typedef enum {
ACKNOWLEDGMENT_FILTER_ALL = 0,
ACKNOWLEDGMENT_FILTER_ACKED = 1,
ACKNOWLEDGMENT_FILTER_NOT_ACKED = 2
} BACNET_ACKNOWLEDGMENT_FILTER;
typedef enum {
EVENT_STATE_FILTER_OFFNORMAL = 0,
EVENT_STATE_FILTER_FAULT = 1,
EVENT_STATE_FILTER_NORMAL = 2,
EVENT_STATE_FILTER_ALL = 3,
EVENT_STATE_FILTER_ACTIVE = 4
} BACNET_EVENT_STATE_FILTER;
typedef enum {
SELECTION_LOGIC_AND = 0,
SELECTION_LOGIC_OR = 1,
SELECTION_LOGIC_ALL = 2
} BACNET_SELECTION_LOGIC;
typedef enum {
RELATION_SPECIFIER_EQUAL = 0,
RELATION_SPECIFIER_NOT_EQUAL = 1,
RELATION_SPECIFIER_LESS_THAN = 2,
RELATION_SPECIFIER_GREATER_THAN = 3,
RELATION_SPECIFIER_LESS_THAN_OR_EQUAL = 4,
RELATION_SPECIFIER_GREATER_THAN_OR_EQUAL = 5
} BACNET_RELATION_SPECIFIER;
typedef enum {
COMMUNICATION_ENABLE = 0,
COMMUNICATION_DISABLE = 1,
COMMUNICATION_DISABLE_INITIATION = 2,
MAX_BACNET_COMMUNICATION_ENABLE_DISABLE = 3
} BACNET_COMMUNICATION_ENABLE_DISABLE;
typedef enum {
MESSAGE_PRIORITY_NORMAL = 0,
MESSAGE_PRIORITY_URGENT = 1,
MESSAGE_PRIORITY_CRITICAL_EQUIPMENT = 2,
MESSAGE_PRIORITY_LIFE_SAFETY = 3
} BACNET_MESSAGE_PRIORITY;
/*Network Layer Message Type */
/*If Bit 7 of the control octet described in 6.2.2 is 1, */
/* a message type octet shall be present as shown in Figure 6-1. */
/* The following message types are indicated: */
typedef enum {
NETWORK_MESSAGE_WHO_IS_ROUTER_TO_NETWORK = 0,
NETWORK_MESSAGE_I_AM_ROUTER_TO_NETWORK = 1,
NETWORK_MESSAGE_I_COULD_BE_ROUTER_TO_NETWORK = 2,
NETWORK_MESSAGE_REJECT_MESSAGE_TO_NETWORK = 3,
NETWORK_MESSAGE_ROUTER_BUSY_TO_NETWORK = 4,
NETWORK_MESSAGE_ROUTER_AVAILABLE_TO_NETWORK = 5,
NETWORK_MESSAGE_INIT_RT_TABLE = 6,
NETWORK_MESSAGE_INIT_RT_TABLE_ACK = 7,
NETWORK_MESSAGE_ESTABLISH_CONNECTION_TO_NETWORK = 8,
NETWORK_MESSAGE_DISCONNECT_CONNECTION_TO_NETWORK = 9,
NETWORK_MESSAGE_CHALLENGE_REQUEST = 10,
NETWORK_MESSAGE_SECURITY_PAYLOAD = 11,
NETWORK_MESSAGE_SECURITY_RESPONSE = 12,
NETWORK_MESSAGE_REQUEST_KEY_UPDATE = 13,
NETWORK_MESSAGE_UPDATE_KEY_SET = 14,
NETWORK_MESSAGE_UPDATE_DISTRIBUTION_KEY = 15,
NETWORK_MESSAGE_REQUEST_MASTER_KEY = 16,
NETWORK_MESSAGE_SET_MASTER_KEY = 17,
NETWORK_MESSAGE_WHAT_IS_NETWORK_NUMBER = 18,
NETWORK_MESSAGE_NETWORK_NUMBER_IS = 19,
/* X'14' to X'7F': Reserved for use by ASHRAE, */
/* X'80' to X'FF': Available for vendor proprietary messages */
NETWORK_MESSAGE_INVALID = 0x100
} BACNET_NETWORK_MESSAGE_TYPE;
typedef enum {
ABORT_REASON_OTHER = 0,
ABORT_REASON_BUFFER_OVERFLOW = 1,
ABORT_REASON_INVALID_APDU_IN_THIS_STATE = 2,
ABORT_REASON_PREEMPTED_BY_HIGHER_PRIORITY_TASK = 3,
ABORT_REASON_SEGMENTATION_NOT_SUPPORTED = 4,
ABORT_REASON_SECURITY_ERROR = 5,
ABORT_REASON_INSUFFICIENT_SECURITY = 6,
/* Enumerated values 0-63 are reserved for definition by ASHRAE. */
/* Enumerated values 64-65535 may be used by others subject to */
/* the procedures and constraints described in Clause 23. */
MAX_BACNET_ABORT_REASON = 7,
/* do the MAX here instead of outside of enum so that
compilers will allocate adequate sized datatype for enum */
ABORT_REASON_PROPRIETARY_FIRST = 64,
ABORT_REASON_PROPRIETARY_LAST = 65535
} BACNET_ABORT_REASON;
typedef enum {
REJECT_REASON_OTHER = 0,
REJECT_REASON_BUFFER_OVERFLOW = 1,
REJECT_REASON_INCONSISTENT_PARAMETERS = 2,
REJECT_REASON_INVALID_PARAMETER_DATA_TYPE = 3,
REJECT_REASON_INVALID_TAG = 4,
REJECT_REASON_MISSING_REQUIRED_PARAMETER = 5,
REJECT_REASON_PARAMETER_OUT_OF_RANGE = 6,
REJECT_REASON_TOO_MANY_ARGUMENTS = 7,
REJECT_REASON_UNDEFINED_ENUMERATION = 8,
REJECT_REASON_UNRECOGNIZED_SERVICE = 9,
/* Enumerated values 0-63 are reserved for definition by ASHRAE. */
/* Enumerated values 64-65535 may be used by others subject to */
/* the procedures and constraints described in Clause 23. */
MAX_BACNET_REJECT_REASON = 10,
/* do the MAX here instead of outside of enum so that
compilers will allocate adequate sized datatype for enum */
REJECT_REASON_PROPRIETARY_FIRST = 64,
REJECT_REASON_PROPRIETARY_LAST = 65535
} BACNET_REJECT_REASON;
typedef enum {
ERROR_CLASS_DEVICE = 0,
ERROR_CLASS_OBJECT = 1,
ERROR_CLASS_PROPERTY = 2,
ERROR_CLASS_RESOURCES = 3,
ERROR_CLASS_SECURITY = 4,
ERROR_CLASS_SERVICES = 5,
ERROR_CLASS_VT = 6,
ERROR_CLASS_COMMUNICATION = 7,
/* Enumerated values 0-63 are reserved for definition by ASHRAE. */
/* Enumerated values 64-65535 may be used by others subject to */
/* the procedures and constraints described in Clause 23. */
MAX_BACNET_ERROR_CLASS = 8,
/* do the MAX here instead of outside of enum so that
compilers will allocate adequate sized datatype for enum */
ERROR_CLASS_PROPRIETARY_FIRST = 64,
ERROR_CLASS_PROPRIETARY_LAST = 65535
} BACNET_ERROR_CLASS;
/* These are sorted in the order given in
Clause 18. ERROR, REJECT AND ABORT CODES
The Class and Code pairings are required
to be used in accordance with Clause 18. */
typedef enum {
/* valid for all classes */
ERROR_CODE_OTHER = 0,
/* Error Class - Device */
ERROR_CODE_DEVICE_BUSY = 3,
ERROR_CODE_CONFIGURATION_IN_PROGRESS = 2,
ERROR_CODE_OPERATIONAL_PROBLEM = 25,
/* Error Class - Object */
ERROR_CODE_DYNAMIC_CREATION_NOT_SUPPORTED = 4,
ERROR_CODE_NO_OBJECTS_OF_SPECIFIED_TYPE = 17,
ERROR_CODE_OBJECT_DELETION_NOT_PERMITTED = 23,
ERROR_CODE_OBJECT_IDENTIFIER_ALREADY_EXISTS = 24,
ERROR_CODE_READ_ACCESS_DENIED = 27,
ERROR_CODE_UNKNOWN_OBJECT = 31,
ERROR_CODE_UNSUPPORTED_OBJECT_TYPE = 36,
/* Error Class - Property */
ERROR_CODE_CHARACTER_SET_NOT_SUPPORTED = 41,
ERROR_CODE_DATATYPE_NOT_SUPPORTED = 47,
ERROR_CODE_INCONSISTENT_SELECTION_CRITERION = 8,
ERROR_CODE_INVALID_ARRAY_INDEX = 42,
ERROR_CODE_INVALID_DATA_TYPE = 9,
ERROR_CODE_NOT_COV_PROPERTY = 44,
ERROR_CODE_OPTIONAL_FUNCTIONALITY_NOT_SUPPORTED = 45,
ERROR_CODE_PROPERTY_IS_NOT_AN_ARRAY = 50,
/* ERROR_CODE_READ_ACCESS_DENIED = 27, */
ERROR_CODE_UNKNOWN_PROPERTY = 32,
ERROR_CODE_VALUE_OUT_OF_RANGE = 37,
ERROR_CODE_WRITE_ACCESS_DENIED = 40,
/* Error Class - Resources */
ERROR_CODE_NO_SPACE_FOR_OBJECT = 18,
ERROR_CODE_NO_SPACE_TO_ADD_LIST_ELEMENT = 19,
ERROR_CODE_NO_SPACE_TO_WRITE_PROPERTY = 20,
/* Error Class - Security */
ERROR_CODE_AUTHENTICATION_FAILED = 1,
/* ERROR_CODE_CHARACTER_SET_NOT_SUPPORTED = 41, */
ERROR_CODE_INCOMPATIBLE_SECURITY_LEVELS = 6,
ERROR_CODE_INVALID_OPERATOR_NAME = 12,
ERROR_CODE_KEY_GENERATION_ERROR = 15,
ERROR_CODE_PASSWORD_FAILURE = 26,
ERROR_CODE_SECURITY_NOT_SUPPORTED = 28,
ERROR_CODE_TIMEOUT = 30,
/* Error Class - Services */
/* ERROR_CODE_CHARACTER_SET_NOT_SUPPORTED = 41, */
ERROR_CODE_COV_SUBSCRIPTION_FAILED = 43,
ERROR_CODE_DUPLICATE_NAME = 48,
ERROR_CODE_DUPLICATE_OBJECT_ID = 49,
ERROR_CODE_FILE_ACCESS_DENIED = 5,
ERROR_CODE_INCONSISTENT_PARAMETERS = 7,
ERROR_CODE_INVALID_CONFIGURATION_DATA = 46,
ERROR_CODE_INVALID_FILE_ACCESS_METHOD = 10,
ERROR_CODE_INVALID_FILE_START_POSITION = 11,
ERROR_CODE_INVALID_PARAMETER_DATA_TYPE = 13,
ERROR_CODE_INVALID_TIME_STAMP = 14,
ERROR_CODE_MISSING_REQUIRED_PARAMETER = 16,
/* ERROR_CODE_OPTIONAL_FUNCTIONALITY_NOT_SUPPORTED = 45, */
ERROR_CODE_PROPERTY_IS_NOT_A_LIST = 22,
ERROR_CODE_SERVICE_REQUEST_DENIED = 29,
/* Error Class - VT */
ERROR_CODE_UNKNOWN_VT_CLASS = 34,
ERROR_CODE_UNKNOWN_VT_SESSION = 35,
ERROR_CODE_NO_VT_SESSIONS_AVAILABLE = 21,
ERROR_CODE_VT_SESSION_ALREADY_CLOSED = 38,
ERROR_CODE_VT_SESSION_TERMINATION_FAILURE = 39,
/* unused */
ERROR_CODE_RESERVED1 = 33,
/* new error codes from new addenda */
ERROR_CODE_ABORT_BUFFER_OVERFLOW = 51,
ERROR_CODE_ABORT_INVALID_APDU_IN_THIS_STATE = 52,
ERROR_CODE_ABORT_PREEMPTED_BY_HIGHER_PRIORITY_TASK = 53,
ERROR_CODE_ABORT_SEGMENTATION_NOT_SUPPORTED = 54,
ERROR_CODE_ABORT_PROPRIETARY = 55,
ERROR_CODE_ABORT_OTHER = 56,
ERROR_CODE_INVALID_TAG = 57,
ERROR_CODE_NETWORK_DOWN = 58,
ERROR_CODE_REJECT_BUFFER_OVERFLOW = 59,
ERROR_CODE_REJECT_INCONSISTENT_PARAMETERS = 60,
ERROR_CODE_REJECT_INVALID_PARAMETER_DATA_TYPE = 61,
ERROR_CODE_REJECT_INVALID_TAG = 62,
ERROR_CODE_REJECT_MISSING_REQUIRED_PARAMETER = 63,
ERROR_CODE_REJECT_PARAMETER_OUT_OF_RANGE = 64,
ERROR_CODE_REJECT_TOO_MANY_ARGUMENTS = 65,
ERROR_CODE_REJECT_UNDEFINED_ENUMERATION = 66,
ERROR_CODE_REJECT_UNRECOGNIZED_SERVICE = 67,
ERROR_CODE_REJECT_PROPRIETARY = 68,
ERROR_CODE_REJECT_OTHER = 69,
ERROR_CODE_UNKNOWN_DEVICE = 70,
ERROR_CODE_UNKNOWN_ROUTE = 71,
ERROR_CODE_VALUE_NOT_INITIALIZED = 72,
ERROR_CODE_INVALID_EVENT_STATE = 73,
ERROR_CODE_NO_ALARM_CONFIGURED = 74,
ERROR_CODE_LOG_BUFFER_FULL = 75,
ERROR_CODE_LOGGED_VALUE_PURGED = 76,
ERROR_CODE_NO_PROPERTY_SPECIFIED = 77,
ERROR_CODE_NOT_CONFIGURED_FOR_TRIGGERED_LOGGING = 78,
ERROR_CODE_UNKNOWN_SUBSCRIPTION = 79,
ERROR_CODE_PARAMETER_OUT_OF_RANGE = 80,
ERROR_CODE_LIST_ELEMENT_NOT_FOUND = 81,
ERROR_CODE_BUSY = 82,
ERROR_CODE_COMMUNICATION_DISABLED = 83,
ERROR_CODE_SUCCESS = 84,
ERROR_CODE_ACCESS_DENIED = 85,
ERROR_CODE_BAD_DESTINATION_ADDRESS = 86,
ERROR_CODE_BAD_DESTINATION_DEVICE_ID = 87,
ERROR_CODE_BAD_SIGNATURE = 88,
ERROR_CODE_BAD_SOURCE_ADDRESS = 89,
ERROR_CODE_BAD_TIMESTAMP = 90,
ERROR_CODE_CANNOT_USE_KEY = 91,
ERROR_CODE_CANNOT_VERIFY_MESSAGE_ID = 92,
ERROR_CODE_CORRECT_KEY_REVISION = 93,
ERROR_CODE_DESTINATION_DEVICE_ID_REQUIRED = 94,
ERROR_CODE_DUPLICATE_MESSAGE = 95,
ERROR_CODE_ENCRYPTION_NOT_CONFIGURED = 96,
ERROR_CODE_ENCRYPTION_REQUIRED = 97,
ERROR_CODE_INCORRECT_KEY = 98,
ERROR_CODE_INVALID_KEY_DATA = 99,
ERROR_CODE_KEY_UPDATE_IN_PROGRESS = 100,
ERROR_CODE_MALFORMED_MESSAGE = 101,
ERROR_CODE_NOT_KEY_SERVER = 102,
ERROR_CODE_SECURITY_NOT_CONFIGURED = 103,
ERROR_CODE_SOURCE_SECURITY_REQUIRED = 104,
ERROR_CODE_TOO_MANY_KEYS = 105,
ERROR_CODE_UNKNOWN_AUTHENTICATION_TYPE = 106,
ERROR_CODE_UNKNOWN_KEY = 107,
ERROR_CODE_UNKNOWN_KEY_REVISION = 108,
ERROR_CODE_UNKNOWN_SOURCE_MESSAGE = 109,
ERROR_CODE_NOT_ROUTER_TO_DNET = 110,
ERROR_CODE_ROUTER_BUSY = 111,
ERROR_CODE_UNKNOWN_NETWORK_MESSAGE = 112,
ERROR_CODE_MESSAGE_TOO_LONG = 113,
ERROR_CODE_SECURITY_ERROR = 114,
ERROR_CODE_ADDRESSING_ERROR = 115,
ERROR_CODE_WRITE_BDT_FAILED = 116,
ERROR_CODE_READ_BDT_FAILED = 117,
ERROR_CODE_REGISTER_FOREIGN_DEVICE_FAILED = 118,
ERROR_CODE_READ_FDT_FAILED = 119,
ERROR_CODE_DELETE_FDT_ENTRY_FAILED = 120,
ERROR_CODE_DISTRIBUTE_BROADCAST_FAILED = 121,
ERROR_CODE_UNKNOWN_FILE_SIZE = 122,
ERROR_CODE_ABORT_APDU_TOO_LONG = 123,
ERROR_CODE_ABORT_APPLICATION_EXCEEDED_REPLY_TIME = 124,
ERROR_CODE_ABORT_OUT_OF_RESOURCES = 125,
ERROR_CODE_ABORT_TSM_TIMEOUT = 126,
ERROR_CODE_ABORT_WINDOW_SIZE_OUT_OF_RANGE = 127,
ERROR_CODE_FILE_FULL = 128,
ERROR_CODE_INCONSISTENT_CONFIGURATION = 129,
ERROR_CODE_INCONSISTENT_OBJECT_TYPE = 130,
ERROR_CODE_INTERNAL_ERROR = 131,
ERROR_CODE_NOT_CONFIGURED = 132,
ERROR_CODE_OUT_OF_MEMORY = 133,
ERROR_CODE_VALUE_TOO_LONG = 134,
ERROR_CODE_ABORT_INSUFFICIENT_SECURITY = 135,
ERROR_CODE_ABORT_SECURITY_ERROR = 136,
MAX_BACNET_ERROR_CODE = 137,
/* Enumerated values 0-255 are reserved for definition by ASHRAE. */
/* Enumerated values 256-65535 may be used by others subject to */
/* the procedures and constraints described in Clause 23. */
/* do the max range inside of enum so that
compilers will allocate adequate sized datatype for enum
which is used to store decoding */
ERROR_CODE_PROPRIETARY_FIRST = 256,
ERROR_CODE_PROPRIETARY_LAST = 65535
} BACNET_ERROR_CODE;
typedef enum {
BACNET_REINIT_COLDSTART = 0,
BACNET_REINIT_WARMSTART = 1,
BACNET_REINIT_STARTBACKUP = 2,
BACNET_REINIT_ENDBACKUP = 3,
BACNET_REINIT_STARTRESTORE = 4,
BACNET_REINIT_ENDRESTORE = 5,
BACNET_REINIT_ABORTRESTORE = 6,
BACNET_REINIT_ACTIVATE_CHANGES = 7,
BACNET_REINIT_IDLE = 255,
BACNET_REINIT_MAX = 255
} BACNET_REINITIALIZED_STATE;
typedef enum BACnetNodeType {
BACNET_NODE_UNKNOWN = 0,
BACNET_NODE_SYSTEM = 1,
BACNET_NODE_NETWORK = 2,
BACNET_NODE_DEVICE = 3,
BACNET_NODE_ORGANIZATIONAL = 4,
BACNET_NODE_AREA = 5,
BACNET_NODE_EQUIPMENT = 6,
BACNET_NODE_POINT = 7,
BACNET_NODE_COLLECTION = 8,
BACNET_NODE_PROPERTY = 9,
BACNET_NODE_FUNCTIONAL = 10,
BACNET_NODE_OTHER = 11
} BACNET_NODE_TYPE;
typedef enum BACnetShedState {
BACNET_SHED_INACTIVE = 0,
BACNET_SHED_REQUEST_PENDING = 1,
BACNET_SHED_COMPLIANT = 2,
BACNET_SHED_NON_COMPLIANT = 3
} BACNET_SHED_STATE;
typedef enum BACnetLightingOperation {
BACNET_LIGHTS_NONE = 0,
BACNET_LIGHTS_FADE_TO = 1,
BACNET_LIGHTS_RAMP_TO = 2,
BACNET_LIGHTS_STEP_UP = 3,
BACNET_LIGHTS_STEP_DOWN = 4,
BACNET_LIGHTS_STEP_ON = 5,
BACNET_LIGHTS_STEP_OFF = 6,
BACNET_LIGHTS_WARN = 7,
BACNET_LIGHTS_WARN_OFF = 8,
BACNET_LIGHTS_WARN_RELINQUISH = 9,
BACNET_LIGHTS_STOP = 10,
MAX_BACNET_LIGHTING_OPERATION = 11,
/* Enumerated values 0-255 are reserved for definition by ASHRAE.
Enumerated values 256-65535 may be used by others subject to
the procedures and constraints described in Clause 23 */
BACNET_LIGHTS_PROPRIETARY_FIRST = 256,
BACNET_LIGHTS_PROPRIETARY_LAST = 65535
} BACNET_LIGHTING_OPERATION;
typedef enum BACnetLightingInProgress {
BACNET_LIGHTING_IDLE = 0,
BACNET_LIGHTING_FADE_ACTIVE = 1,
BACNET_LIGHTING_RAMP_ACTIVE = 2,
BACNET_LIGHTING_NOT_CONTROLLED = 3,
BACNET_LIGHTING_OTHER = 4,
MAX_BACNET_LIGHTING_IN_PROGRESS = 5
} BACNET_LIGHTING_IN_PROGRESS;
typedef enum BACnetLightingTransition {
BACNET_LIGHTING_TRANSITION_IDLE = 0,
BACNET_LIGHTING_TRANSITION_FADE = 1,
BACNET_LIGHTING_TRANSITION_RAMP = 2,
MAX_BACNET_LIGHTING_TRANSITION = 3,
/* Enumerated values 0-63 are reserved for definition by ASHRAE.
Enumerated values 64-255 may be used by others subject to
the procedures and constraints described in Clause 23. */
BACNET_LIGHTING_TRANSITION_PROPRIETARY_FIRST = 64,
BACNET_LIGHTING_TRANSITION_PROPRIETARY_LAST = 255
} BACNET_LIGHTING_TRANSITION;
/* NOTE: BACNET_DAYS_OF_WEEK is different than BACNET_WEEKDAY */
/* 0=Monday-6=Sunday */
typedef enum BACnetDaysOfWeek {
BACNET_DAYS_OF_WEEK_MONDAY = 0,
BACNET_DAYS_OF_WEEK_TUESDAY = 1,
BACNET_DAYS_OF_WEEK_WEDNESDAY = 2,
BACNET_DAYS_OF_WEEK_THURSDAY = 3,
BACNET_DAYS_OF_WEEK_FRIDAY = 4,
BACNET_DAYS_OF_WEEK_SATURDAY = 5,
BACNET_DAYS_OF_WEEK_SUNDAY = 6,
MAX_BACNET_DAYS_OF_WEEK = 7
} BACNET_DAYS_OF_WEEK;
typedef enum BACnetEventTransitionBits {
TRANSITION_TO_OFFNORMAL = 0,
TRANSITION_TO_FAULT = 1,
TRANSITION_TO_NORMAL = 2,
MAX_BACNET_EVENT_TRANSITION = 3
} BACNET_EVENT_TRANSITION_BITS;
/* Not in standard, but useful for store Ack_Required */
typedef enum BACnetEventTransitionMask {
TRANSITION_TO_OFFNORMAL_MASKED = 1,
TRANSITION_TO_FAULT_MASKED = 2,
TRANSITION_TO_NORMAL_MASKED = 4
} BACNET_EVENT_TRANSITION_MASK;
/* Access Enumerations */
/* Door Alarm State */
typedef enum {
DOOR_ALARM_STATE_NORMAL = 0,
DOOR_ALARM_STATE_ALARM = 1,
DOOR_ALARM_STATE_DOOR_OPEN_TOO_LONG = 2,
DOOR_ALARM_STATE_FORCED_OPEN = 3,
DOOR_ALARM_STATE_TAMPER = 4,
DOOR_ALARM_STATE_DOOR_FAULT = 5,
DOOR_ALARM_STATE_LOCK_DOWN = 6,
DOOR_ALARM_STATE_FREE_ACCESS = 7,
DOOR_ALARM_STATE_EGRESS_OPEN = 8
} BACNET_DOOR_ALARM_STATE;
/* Door Secured Status */
typedef enum {
DOOR_SECURED_STATUS_SECURED = 0,
DOOR_SECURED_STATUS_UNSECURED = 1,
DOOR_SECURED_STATUS_UNKNOWN = 2
} BACNET_DOOR_SECURED_STATUS;
/* Door Status */
typedef enum {
DOOR_STATUS_CLOSED = 0,
DOOR_STATUS_OPENED = 1,
DOOR_STATUS_UNKNOWN = 2,
DOOR_STATUS_DOOR_FAULT = 3,
DOOR_STATUS_UNUSED = 4,
DOOR_STATUS_NONE = 5,
DOOR_STATUS_CLOSING = 6,
DOOR_STATUS_OPENING = 7,
DOOR_STATUS_SAFETY_LOCKED = 8,
DOOR_STATUS_LIMITED_OPENED = 9
} BACNET_DOOR_STATUS;
/* Door Value */
typedef enum {
DOOR_VALUE_LOCK = 0,
DOOR_VALUE_UNLOCK = 1,
DOOR_VALUE_PULSE_UNLOCK = 2,
DOOR_VALUE_EXTENDED_PULSE_UNLOCK = 3
} BACNET_DOOR_VALUE;
/* Lock Status */
typedef enum {
LOCK_STATUS_LOCKED = 0,
LOCK_STATUS_UNLOCKED = 1,
LOCK_STATUS_LOCK_FAULT = 2,
LOCK_STATUS_UNUSED = 3,
LOCK_STATUS_UNKNOWN = 4
} BACNET_LOCK_STATUS;
/* Access Event */
typedef enum {
ACCESS_EVENT_NONE = 0,
ACCESS_EVENT_GRANTED = 1,
ACCESS_EVENT_MUSTER = 2,
ACCESS_EVENT_PASSBACK_DETECTED = 3,
ACCESS_EVENT_DURESS = 4,
ACCESS_EVENT_TRACE = 5,
ACCESS_EVENT_LOCKOUT_MAX_ATTEMPTS = 6,
ACCESS_EVENT_LOCKOUT_OTHER = 7,
ACCESS_EVENT_LOCKOUT_RELINQUISHED = 8,
ACCESS_EVENT_LOCKED_BY_HIGHER_AUTHORITY = 9,
ACCESS_EVENT_OUT_OF_SERVICE = 10,
ACCESS_EVENT_OUT_OF_SERVICE_RELINQUISHED = 11,
ACCESS_EVENT_ACCOMPANIMENT_BY = 12,
ACCESS_EVENT_AUTHENTICATION_FACTOR_READ = 13,
ACCESS_EVENT_AUTHORIZATION_DELAYED = 14,
ACCESS_EVENT_VERIFICATION_REQUIRED = 15,
/* values over 128 indicate that access is denied */
ACCESS_EVENT_DENIED_DENY_ALL = 128,
ACCESS_EVENT_DENIED_UNKNOWN_CREDENTIAL = 129,
ACCESS_EVENT_DENIED_AUTHENTICATION_UNAVAILABLE = 130,
ACCESS_EVENT_DENIED_AUTHENTICATION_FACTOR_TIMEOUT = 131,
ACCESS_EVENT_DENIED_INCORRECT_AUTHENTICATION_FACTOR = 132,
ACCESS_EVENT_DENIED_ZONE_NO_ACCESS_RIGHTS = 133,
ACCESS_EVENT_DENIED_POINT_NO_ACCESS_RIGHTS = 134,
ACCESS_EVENT_DENIED_NO_ACCESS_RIGHTS = 135,
ACCESS_EVENT_DENIED_OUT_OF_TIME_RANGE = 136,
ACCESS_EVENT_DENIED_THREAT_LEVEL = 137,
ACCESS_EVENT_DENIED_PASSBACK = 138,
ACCESS_EVENT_DENIED_UNEXPECTED_LOCATION_USAGE = 139,
ACCESS_EVENT_DENIED_MAX_ATTEMPTS = 140,
ACCESS_EVENT_DENIED_LOWER_OCCUPANCY_LIMIT = 141,
ACCESS_EVENT_DENIED_UPPER_OCCUPANCY_LIMIT = 142,
ACCESS_EVENT_DENIED_AUTHENTICATION_FACTOR_LOST = 143,
ACCESS_EVENT_DENIED_AUTHENTICATION_FACTOR_STOLEN = 144,
ACCESS_EVENT_DENIED_AUTHENTICATION_FACTOR_DAMAGED = 145,
ACCESS_EVENT_DENIED_AUTHENTICATION_FACTOR_DESTROYED = 146,
ACCESS_EVENT_DENIED_AUTHENTICATION_FACTOR_DISABLED = 147,
ACCESS_EVENT_DENIED_AUTHENTICATION_FACTOR_ERROR = 148,
ACCESS_EVENT_DENIED_CREDENTIAL_UNASSIGNED = 149,
ACCESS_EVENT_DENIED_CREDENTIAL_NOT_PROVISIONED = 150,
ACCESS_EVENT_DENIED_CREDENTIAL_NOT_YET_ACTIVE = 151,
ACCESS_EVENT_DENIED_CREDENTIAL_EXPIRED = 152,
ACCESS_EVENT_DENIED_CREDENTIAL_MANUAL_DISABLE = 153,
ACCESS_EVENT_DENIED_CREDENTIAL_LOCKOUT = 154,
ACCESS_EVENT_DENIED_CREDENTIAL_MAX_DAYS = 155,
ACCESS_EVENT_DENIED_CREDENTIAL_MAX_USES = 156,
ACCESS_EVENT_DENIED_CREDENTIAL_INACTIVITY = 157,
ACCESS_EVENT_DENIED_CREDENTIAL_DISABLED = 158,
ACCESS_EVENT_DENIED_NO_ACCOMPANIMENT = 159,
ACCESS_EVENT_DENIED_INCORRECT_ACCOMPANIMENT = 160,
ACCESS_EVENT_DENIED_LOCKOUT = 161,
ACCESS_EVENT_DENIED_VERIFICATION_FAILED = 162,
ACCESS_EVENT_DENIED_VERIFICATION_TIMEOUT = 163,
ACCESS_EVENT_DENIED_OTHER = 164
} BACNET_ACCESS_EVENT;
/* Authentication Status */
typedef enum {
AUTHENTICATION_STATUS_NOT_READY = 0,
AUTHENTICATION_STATUS_READY = 1,
AUTHENTICATION_STATUS_DISABLED = 2,
AUTHENTICATION_STATUS_WAITING_FOR_AUTHENTICATION_FACTOR = 3,
AUTHENTICATION_STATUS_WAITING_FOR_ACCOMPANIMENT = 4,
AUTHENTICATION_STATUS_WAITING_FOR_VERIFICATION = 5,
AUTHENTICATION_STATUS_IN_PROGRESS = 6
} BACNET_AUTHENTICATION_STATUS;
/* Authorization Mode */
typedef enum {
AUTHORIZATION_MODE_AUTHORIZE = 0,
AUTHORIZATION_MODE_GRANT_ACTIVE = 1,
AUTHORIZATION_MODE_DENY_ALL = 2,
AUTHORIZATION_MODE_VERIFICATION_REQUIRED = 3,
AUTHORIZATION_MODE_AUTHORIZATION_DELAYED = 4,
AUTHORIZATION_MODE_NONE = 5
} BACNET_AUTHORIZATION_MODE;
/* Access Passback Mode */
typedef enum {
ACCESS_PASSBACK_MODE_PASSBACK_OFF = 0,
ACCESS_PASSBACK_MODE_HARD_PASSBACK = 1,
ACCESS_PASSBACK_MODE_SOFT_PASSBACK = 2
} BACNET_ACCESS_PASSBACK_MODE;
/* Access Zone Occupancy State */
typedef enum {
ACCESS_ZONE_OCCUPANCY_STATE_NORMAL = 0,
ACCESS_ZONE_OCCUPANCY_STATE_BELOW_LOWER_LIMIT = 1,
ACCESS_ZONE_OCCUPANCY_STATE_AT_LOWER_LIMIT = 2,
ACCESS_ZONE_OCCUPANCY_STATE_AT_UPPER_LIMIT = 3,
ACCESS_ZONE_OCCUPANCY_STATE_ABOVE_UPPER_LIMIT = 4,
ACCESS_ZONE_OCCUPANCY_STATE_DISABLED = 5,
ACCESS_ZONE_OCCUPANCY_STATE_NOT_SUPPORTED = 6
} BACNET_ACCESS_ZONE_OCCUPANCY_STATE;
/* Access User Type */
typedef enum {
ACCESS_USER_TYPE_ASSET = 0,
ACCESS_USER_TYPE_GROUP = 1,
ACCESS_USER_TYPE_PERSON = 2
} BACNET_ACCESS_USER_TYPE;
/* Access Authentication Factor Disable */
typedef enum {
ACCESS_AUTHENTICATION_FACTOR_DISABLE_NONE = 0,
ACCESS_AUTHENTICATION_FACTOR_DISABLE_DISABLED = 1,
ACCESS_AUTHENTICATION_FACTOR_DISABLE_DISABLED_LOST = 2,
ACCESS_AUTHENTICATION_FACTOR_DISABLE_DISABLED_STOLEN = 3,
ACCESS_AUTHENTICATION_FACTOR_DISABLE_DISABLED_DAMAGED = 4,
ACCESS_AUTHENTICATION_FACTOR_DISABLE_DISABLED_DESTROYED = 5,
ACCESS_AUTHENTICATION_FACTOR_DISABLE_MAX = 6
} BACNET_ACCESS_AUTHENTICATION_FACTOR_DISABLE;
/* Authorization Exemption */
typedef enum {
AUTHORIZATION_EXEMPTION_PASSBACK = 0,
AUTHORIZATION_EXEMPTION_OCCUPANCY_CHECK = 1,
AUTHORIZATION_EXEMPTION_ACCESS_RIGHTS = 2,
AUTHORIZATION_EXEMPTION_LOCKOUT = 3,
AUTHORIZATION_EXEMPTION_DENY = 4,
AUTHORIZATION_EXEMPTION_VERIFICATION = 5,
AUTHORIZATION_EXEMPTION_AUTHORIZATION_DELAY = 6
} BACNET_AUTHORIZATION_EXEMPTION;
/* The Network Reject Reasons for NETWORK_MESSAGE_REJECT_MESSAGE_TO_NETWORK */
typedef enum {
NETWORK_REJECT_UNKNOWN_ERROR = 0,
NETWORK_REJECT_NO_ROUTE = 1,
NETWORK_REJECT_ROUTER_BUSY = 2,
NETWORK_REJECT_UNKNOWN_MESSAGE_TYPE = 3,
NETWORK_REJECT_MESSAGE_TOO_LONG = 4,
NETWORK_REJECT_BACNET_SECURITY = 5,
NETWORK_REJECT_BAD_ADDRESS = 6,
/* Reasons this value or above we don't know about */
NETWORK_REJECT_REASON_INVALID
} BACNET_NETWORK_REJECT_REASONS;
typedef enum BACnetWriteStatus {
BACNET_WRITE_STATUS_IDLE = 0,
BACNET_WRITE_STATUS_IN_PROGRESS = 1,
BACNET_WRITE_STATUS_SUCCESSFUL = 2,
BACNET_WRITE_STATUS_FAILED = 3
} BACNET_WRITE_STATUS;
/* BACnetNetworkType ::= ENUMERATED */
typedef enum {
PORT_TYPE_ETHERNET = 0,
PORT_TYPE_ARCNET = 1,
PORT_TYPE_MSTP = 2,
PORT_TYPE_PTP = 3,
PORT_TYPE_LONTALK = 4,
PORT_TYPE_BIP = 5,
PORT_TYPE_ZIGBEE = 6,
PORT_TYPE_VIRTUAL = 7,
PORT_TYPE_NON_BACNET = 8,
PORT_TYPE_BIP6 = 9,
/* Enumerated values 0-63 are reserved for definition by ASHRAE.
Enumerated values 64-255 may be used by others subject to the
procedures and constraints described in Clause 23. */
PORT_TYPE_MAX = 255
} BACNET_PORT_TYPE;
/* BACnetNetworkNumberQuality ::= ENUMERATED */
typedef enum {
PORT_QUALITY_UNKNOWN = 0,
PORT_QUALITY_LEARNED = 1,
PORT_QUALITY_LEARNED_CONFIGURED = 2,
PORT_QUALITY_CONFIGURED = 3
} BACNET_PORT_QUALITY;
/* BACnetNetworkPortCommand :: = ENUMERATED */
typedef enum {
PORT_COMMAND_IDLE = 0,
PORT_COMMAND_DISCARD_CHANGES = 1,
PORT_COMMAND_RENEW_FD_REGISTRATION = 2,
PORT_COMMAND_RESTART_SLAVE_DISCOVERY = 3,
PORT_COMMAND_RENEW_DHCP = 4,
PORT_COMMAND_RESTART_AUTONEGOTIATION = 5,
PORT_COMMAND_DISCONNECT = 6,
PORT_COMMAND_RESTART_PORT = 7
/* Enumerated values 0-127 are reserved for definition by ASHRAE.
Enumerated values 128-255 may be used by others subject to the
procedures and constraints described in Clause 23. */
} BACNET_PORT_COMMAND;
typedef enum {
BACNET_SECURITY_LEVEL_INCAPABLE = 0,
BACNET_SECURITY_LEVEL_PLAIN = 1,
BACNET_SECURITY_LEVEL_SIGNED = 2,
BACNET_SECURITY_LEVEL_ENCRYPTED = 3,
BACNET_SECURITY_LEVEL_SIGNED_END_TO_END = 4,
BACNET_SECURITY_LEVEL_ENCRYPTED_END_TO_END = 5
} BACNET_SECURITY_LEVEL;
typedef enum {
BACNET_SECURITY_POLICY_PLAIN_NOT_TRUSTED = 0,
BACNET_SECURITY_POLICY_PLAIN_TRUSTED = 1,
BACNET_SECURITY_POLICY_SIGNED_TRUSTED = 2,
BACNET_SECURITY_POLICY_ENCRYPTED_TRUSTED = 3
} BACNET_SECURITY_POLICY;
typedef enum {
KIA_AES_MD5 = 0,
KIA_AES_SHA256 = 1,
/* 2-255 reserved */
KIA_MAX_KEY_IDENTIFIER_ALGORITHM = 255
} BACNET_KEY_IDENTIFIER_ALGORITHM;
typedef enum {
KIKN_NOT_USED = 0,
KIKN_DEVICE_MASTER = 1,
KIKN_DISTRIBUTION = 2,
KIKN_INSTALLATION = 3,
KIKN_GENERAL_NETWORK_ACCESS = 4,
KIKN_USER_AUTHENTICATED = 5,
KIKN_MIN_APPLICATION_SPECIFIC = 6,
KIKN_MAX_APPLICATION_SPECIFIC = 127,
/* 128-255 reserved */
KIKN_MAX_KEY_IDENTIFIER_KEY_NUMBER = 255
} BACNET_KEY_IDENTIFIER_KEY_NUMBER;
typedef enum {
SEC_RESP_SUCCESS = 0,
SEC_RESP_ACCESS_DENIED = 1,
SEC_RESP_BAD_DESTINATION_ADDRESS = 2,
SEC_RESP_BAD_DESTINATION_DEVICE_ID = 3,
SEC_RESP_BAD_SIGNATURE = 4,
SEC_RESP_BAD_SOURCE_ADDRESS = 5,
SEC_RESP_BAD_TIMESTAMP = 6,
SEC_RESP_CANNOT_USE_KEY = 7,
SEC_RESP_CANNOT_VERIFY_MESSAGE_ID = 8,
SEC_RESP_CORRECT_KEY_REVISION = 9,
SEC_RESP_DESTINATION_DEVICE_ID_REQUIRED = 10,
SEC_RESP_DUPLICATE_MESSAGE = 11,
SEC_RESP_ENCRYPTION_NOT_CONFIGURED = 12,
SEC_RESP_ENCRYPTION_REQUIRED = 13,
SEC_RESP_INCORRECT_KEY = 14,
SEC_RESP_INVALID_KEY_DATA = 15,
SEC_RESP_KEY_UPDATE_IN_PROGRESS = 16,
SEC_RESP_MALFORMED_MESSAGE = 17,
SEC_RESP_NOT_KEY_SERVER = 18,
SEC_RESP_SECURITY_NOT_CONFIGURED = 19,
SEC_RESP_SOURCE_SECURITY_REQUIRED = 20,
SEC_RESP_TOO_MANY_KEYS = 21,
SEC_RESP_UNKNOWN_AUTHENTICATION_TYPE = 22,
SEC_RESP_UNKNOWN_KEY = 23,
SEC_RESP_UNKNOWN_KEY_REVISION = 24,
SEC_RESP_UNKNOWN_SOURCE_MESSAGE = 25
} BACNET_SECURITY_RESPONSE_CODE;
typedef enum {
ACCESS_CREDENTIAL_DISABLE_NONE = 0,
ACCESS_CREDENTIAL_DISABLE = 1,
ACCESS_CREDENTIAL_DISABLE_MANUAL = 2,
ACCESS_CREDENTIAL_DISABLE_LOCKOUT = 3,
ACCESS_CREDENTIAL_DISABLE_MAX = 4
/* Enumerated values 0-63 are reserved for definition by ASHRAE.
Enumerated values 64-65535 may be used by others subject to
the procedures and constraints described in Clause 23. */
} BACNET_ACCESS_CREDENTIAL_DISABLE;
typedef enum {
CREDENTIAL_DISABLED = 0,
CREDENTIAL_DISABLED_NEEDS_PROVISIONING = 1,
CREDENTIAL_DISABLED_UNASSIGNED = 2,
CREDENTIAL_DISABLED_NOT_YET_ACTIVE = 3,
CREDENTIAL_DISABLED_EXPIRED = 4,
CREDENTIAL_DISABLED_LOCKOUT = 5,
CREDENTIAL_DISABLED_MAX_DAYS = 6,
CREDENTIAL_DISABLED_MAX_USES = 7,
CREDENTIAL_DISABLED_INACTIVITY = 8,
CREDENTIAL_DISABLED_MANUAL = 9,
CREDENTIAL_DISABLED_MAX = 10
/* Enumerated values 0-63 are reserved for definition by ASHRAE.
Enumerated values 64-65535 may be used by others subject to
the procedures and constraints described in Clause 23. */
} BACNET_ACCESS_CREDENTIAL_DISABLE_REASON;
typedef enum {
AUTHENTICATION_NONE = 0,
AUTHENTICATION_DISABLED = 1,
AUTHENTICATION_DISABLED_LOST = 2,
AUTHENTICATION_DISABLED_STOLEN = 3,
AUTHENTICATION_DISABLED_DAMAGED = 4,
AUTHENTICATION_DISABLED_DESTROYED = 5,
AUTHENTICATION_DISABLED_MAX = 6
/* Enumerated values 0-63 are reserved for definition by ASHRAE.
Enumerated values 64-65535 may be used by others subject to
the procedures and constraints described in Clause 23. */
} BACNET_AUTHENTICATION_DISABLE_REASON;
typedef enum {
AUTHENTICATION_FACTOR_UNDEFINED = 0,
AUTHENTICATION_FACTOR_ERROR = 1,
AUTHENTICATION_FACTOR_CUSTOM = 2,
AUTHENTICATION_FACTOR_SIMPLE_NUMBER16 = 3,
AUTHENTICATION_FACTOR_SIMPLE_NUMBER32 = 4,
AUTHENTICATION_FACTOR_SIMPLE_NUMBER56 = 5,
AUTHENTICATION_FACTOR_SIMPLE_ALPHA_NUMERIC = 6,
AUTHENTICATION_FACTOR_ABA_TRACK2 = 7,
AUTHENTICATION_FACTOR_WIEGAND26 = 8,
AUTHENTICATION_FACTOR_WIEGAND37 = 9,
AUTHENTICATION_FACTOR_WIEGAND37_FACILITY = 10,
AUTHENTICATION_FACTOR_FACILITY16_CARD32 = 11,
AUTHENTICATION_FACTOR_FACILITY32_CARD32 = 12,
AUTHENTICATION_FACTOR_FASC_N = 13,
AUTHENTICATION_FACTOR_FASC_N_BCD = 14,
AUTHENTICATION_FACTOR_FASC_N_LARGE = 15,
AUTHENTICATION_FACTOR_FASC_N_LARGE_BCD = 16,
AUTHENTICATION_FACTOR_GSA75 = 17,
AUTHENTICATION_FACTOR_CHUID = 18,
AUTHENTICATION_FACTOR_CHUID_FULL = 19,
AUTHENTICATION_FACTOR_GUID = 20,
AUTHENTICATION_FACTOR_CBEFF_A = 21,
AUTHENTICATION_FACTOR_CBEFF_B = 22,
AUTHENTICATION_FACTOR_CBEFF_C = 23,
AUTHENTICATION_FACTOR_USER_PASSWORD = 24,
AUTHENTICATION_FACTOR_MAX = 25
} BACNET_AUTHENTICATION_FACTOR_TYPE;
typedef enum {
NETWORK_TYPE_ETHERNET = 0,
NETWORK_TYPE_ARCNET = 1,
NETWORK_TYPE_MSTP = 2,
NETWORK_TYPE_PTP = 3,
NETWORK_TYPE_LONTALK = 4,
NETWORK_TYPE_BACNET_IPV4 = 5,
NETWORK_TYPE_ZIGBEE = 6,
NETWORK_TYPE_VIRTUAL = 7,
/* (8), removed in version 1 revision 18 */
NETWORK_TYPE_BACNET_IPV6 = 9,
NETWORK_TYPE_SERIAL = 10,
/* Enumerated values 0-63 are reserved for definition by ASHRAE.
Enumerated values 64-255 may be used by others subject to the
procedures and constraints described in Clause 23. */
/* do the max range inside of enum so that
compilers will allocate adequate sized datatype for enum
which is used to store decoding */
NETWORK_TYPE_PROPRIETARY_MIN = 64,
NETWORK_TYPE_PROPRIETARY_MAX = 255
} BACNET_NETWORK_TYPE;
/* Network Number Quality, Addendum 135-2012az */
typedef enum {
NETWORK_NUMBER_QUALITIY_UNKNOWN = 0,
NETWORK_NUMBER_QUALITIY_LEARNED = 1,
NETWORK_NUMBER_QUALITIY_LEARNED_CONFIGURED = 2,
NETWORK_NUMBER_QUALITIY_CONFIGURED = 3
} BACNET_NETWORK_NUMBER_QUALITY;
typedef enum BACnetNetworkPortCommand_T {
NETWORK_PORT_COMMAND_IDLE = 0,
NETWORK_PORT_COMMAND_DISCARD_CHANGES = 1,
NETWORK_PORT_COMMAND_RENEW_FD_REGISTRATION = 2,
NETWORK_PORT_COMMAND_RESTART_SLAVE_DISCOVERY = 3,
NETWORK_PORT_COMMAND_RENEW_DHCP = 4,
NETWORK_PORT_COMMAND_RESTART_AUTONEGOTIATION = 5,
NETWORK_PORT_COMMAND_DISCONNECT = 6,
NETWORK_PORT_COMMAND_RESTART_PORT = 7,
/* Enumerated values 0-127 are reserved for definition
by ASHRAE. Enumerated values 128-255 may be used
by others subject to the procedures and constraints
described in Clause 23. */
/* do the max range inside of enum so that
compilers will allocate adequate sized datatype for enum
which is used to store decoding */
NETWORK_PORT_COMMAND_PROPRIETARY_MIN = 128,
NETWORK_PORT_COMMAND_PROPRIETARY_MAX = 255
} BACNET_NETWORK_PORT_COMMAND;
typedef enum BACnetProtocolLevel_T {
BACNET_PROTOCOL_LEVEL_PHYSICAL=0,
BACNET_PROTOCOL_LEVEL_PROTOCOL=1,
BACNET_PROTOCOL_LEVEL_BACNET_APPLICATION=2,
BACNET_PROTOCOL_LEVEL_NON_BACNET_APPLICATION=3
} BACNET_PROTOCOL_LEVEL;
typedef enum BACnetIPMode_T {
BACNET_IP_MODE_NORMAL = 0,
BACNET_IP_MODE_FOREIGN = 1,
BACNET_IP_MODE_BBMD = 2
} BACNET_IP_MODE;
#endif /* end of BACENUM_H */