diff --git a/bacnet-stack/bacenum.h b/bacnet-stack/bacenum.h new file mode 100644 index 00000000..d1631e08 --- /dev/null +++ b/bacnet-stack/bacenum.h @@ -0,0 +1,829 @@ +/*####COPYRIGHTBEGIN#### + ------------------------------------------- + Copyright (C) 2003 Steve Karg + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + As a special exception, if other files instantiate templates or + use macros or inline functions from this file, or you compile + this file and link it with other works to produce a work based + on this file, this file does not by itself cause the resulting + work to be covered by the GNU General Public License. However + the source code for this file must still be made available in + accordance with section (3) of the GNU General Public License. + + This exception does not invalidate any other reasons why a work + based on this file might be covered by the GNU General Public + License. + ------------------------------------------- +####COPYRIGHTEND####*/ +#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 = 132, + PROP_LOG_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_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, + // 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. + // The highest enumeration used in this version is 168. +} BACNET_PROPERTY_ID; + +typedef enum +{ + ACTION_DIRECT = 0, + ACTION_REVERSE = 1, +} BACNET_ACTION; + +typedef enum +{ + BINARY_INACTIVE = 0, + BINARY_ACTIVE = 1, +} 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, +} BACNET_EVENT_STATE; + +typedef enum +{ + STATUS_OPERATIONAL = 0, + STATUS_OPERATIONAL_READ_ONLY = 1, + STATUS_DOWNLOAD_REQUIRED = 2, + STATUS_DOWNLOAD_IN_PROGRESS = 3, + STATUS_NON_OPERATIONAL = 4, +} BACNET_DEVICE_STATUS; + +typedef enum +{ + //Area + UNITS_SQUARE_METERS = 0, + UNITS_SQUARE_FEET = 1, + //Electrical + UNITS_MILLIAMPERES = 2, + UNITS_AMPERES = 3, + UNITS_OHMS = 4, + UNITS_VOLTS = 5, + 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_DEGREES_PHASE = 14, + UNITS_POWER_FACTOR = 15, + //Energy + UNITS_JOULES = 16, + UNITS_KILOJOULES = 17, + UNITS_WATT_HOURS = 18, + UNITS_KILOWATT_HOURS = 19, + UNITS_BTU = 20, + UNITS_THERM = 21, + UNITS_TON_HOR = 22, + //Enthalpy + UNITS_JOULES_PER_KILOGRAM_DRY_AIR = 23, + UNITS_BTU_PER_POUND_DRY_AIR = 24, + //Frecuency + UNITS_CYCLES_PER_HOUR = 25, + UNITS_CYCLES_PER_MINUTE = 26, + UNITS_HERTZ = 27, + //Humidity + UNITS_GRAMS_OF_WATER_PER_KILOGRAM_DRY_AIR = 28, + UNITS_PERCENT_RELATIVE_HUMIDITY = 29, + //Length + UNITS_MILLIMETER = 30, + UNITS_METERS = 31, + UNITS_INCH = 32, + UNITS_FEET = 33, + //Light + UNITS_WATTS_PER_SQUARE_FOOT = 34, + UNITS_WATTS_PER_SQUARE_METER = 35, + UNITS_LUMEN = 36, + UNITS_LUX = 37, + UNITS_FOOT_CANDLES = 38, + //Mass + UNITS_KILOGRAMS = 39, + UNITS_POUNDS_MASS = 40, + UNITS_TONS = 41, + //Mass Flow + UNITS_KILOGRAMS_PER_SECOND = 42, + UNITS_KILOGRAMS_PER_MINUTE = 43, + UNITS_KILOGRAMS_PER_HOUR = 44, + UNITS_POUNDS_MASS_PER_MINUTE = 45, + UNITS_POUNDS_MASS_PER_HOUR = 46, + //Power + UNITS_WATTS = 47, + UNITS_KILOWATTS = 48, + UNITS_MEGAWATTS = 49, + UNITS_BTU_PER_HOUR = 50, + UNITS_HORSEPOWER = 51, + UNITS_TONS_REFRIGERATIONS = 52, + //Pressure + UNITS_PASCALS = 53, + UNITS_KILOPASCAL = 54, + UNITS_BAR = 55, + UNITS_POUNDS_FORCE_PER_SQUARE_INCH = 56, + 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_FAHRENHEIT = 64, + UNITS_DEGREE_DAYS_CELSIUS = 65, + UNITS_DEGREE_DAYS_FAHRENHEIT = 66, + //Time + UNITS_YEAR = 67, + UNITS_MONTH = 68, + UNITS_WEEK = 69, + UNITS_DAY = 70, + UNITS_HOUR = 71, + UNITS_MINUTE = 72, + UNITS_SECOND = 73, + //Velocity + UNITS_METERS_PER_SECOND = 74, + 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_LITERS = 82, + UNITS_US_GALLONS = 83, + //Volumetric Flow + UNITS_CUBIC_FEET_PER_MINUTE = 84, + UNITS_CUBIC_METERS_PER_SECOND = 85, + UNITS_IMPERIAL_GALLONS_PER_MINUTE = 86, + UNITS_LITERS_PER_SECOND = 87, + UNITS_LITERS_PER_MINUTE = 88, + UNITS_US_GALLONS_PER_MINUTE = 89, + //Others + 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_NO_UNITS = 95, + UNITS_PARTS_PER_MILLION = 96, + UNITS_PARTS_PER_BILLION = 97, + UNITS_PERCENT = 98, + UNITS_PERCENT_PER_SECOND = 99, + UNITS_PER_MINUTE = 100, + UNITS_PER_SECOND = 101, + UNITS_PSI_PER_DEGREE_FAHRENHEIT = 102, + UNITS_RADIANS = 103, + UNITS_REVOLUTIONS_PER_MINUTE = 104, +} BACNET_ENGINEERING_UNITS; + +typedef enum +{ + POLARITY_NORMAL = 0, + POLARITY_REVERSE = 1, +} 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. +} BACNET_PROGRAM_ERROR; + +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, + // 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_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, + CHANGE_OF_LIFE_SAFETY = 8, + // 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 8. +} 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 +{ + 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, + // 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. +} BACNET_LIFE_SAFETY_MODE; + +typedef enum +{ + LIFE_SAFETY_OPERATION_NONE = 0, + LIFE_SAFETY_OPERATION_SILENCE = 1, + LIFE_SAFETY_OPERATION_SILENCE_AUDIBLE = 2, + LIFE_SAFETY_OPERATION_SILENCE_VISUAL = 3, + LIFE_SAFETY_OPERATION_RESET = 4, + LIFE_SAFETY_OPERATION_RESET_ALARM = 5, + LIFE_SAFETY_OPERATION_RESET_FAULT = 6, + // 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. +} BACNET_LIFE_SAFETY_OPERATION; + +typedef enum +{ + 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, + // 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. +} BACNET_LIFE_SAFETY_STATE; + +typedef enum +{ + MAINTENANCE_NONE = 0, + MAINTENANCE_PERIODIC_TEST = 1, + AINTENANCE_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. +} BACNET_MAINTENANCE; + +typedef enum +{ + NOTIFY_ALARM = 0, + NOTIFY_EVENT = 1, + NOTIFY_ACK_NOTIFICATION = 2, +} 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_O = 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, + // 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. +} BACNET_OBJECT_TYPE; + +typedef enum +{ + SEGMENTATION_BOTH = 0, + SEGMENTATION_TRANSMIT = 1, + SEGMENTATION_RECEIVE = 2, + SEGMENTATION_NONE = 3, +} 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. +} BACNET_VT_CLASS; + +typedef enum +{ + CHARACTER_ANSI = 0, + CHARACTER_MS_DBCS = 1, + CHARACTER_JISC_6226 = 2, + CHARACTER_UCS4 = 3, + CHARACTER_UCS2 = 4, + CHARACTER_ISO8859 = 5, +} BACNET_CHARACTER_STRING; + +typedef enum +{ + SERVICE_SUBSCRIBE_COV = 5, + SERVICE_READ_PROPERTY = 12, + SERVICE_WRITE_PROPERTY = 15, +} BACNET_SERVICE_IDENTIFIER; + +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_PROPERTY_CONDITIONAL = 13, + SERVICE_CONFIRMED_READ_PROPERTY_MULTIPLE = 14, + SERVICE_CONFIRMED_READ_RANGE = 26, + SERVICE_CONFIRMED_WRITE_PROPERTY = 15, + SERVICE_CONFIRMED_WRITE_PROPERTY_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 +} 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 + // 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. +} BACNET_UNCONFIRMED_SERVICE; + +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 +} BACNET_COMMUNICATION_ENABLE_DISABLE; + +typedef enum { + MESSAGE_PRIORITY_NORMAL = 0, + MESSAGE_PRIORITY_URGENT = 1 +} BACNET_MESSAGE_PRIORITY; + +typedef enum { + REINITIALIZED_STATE_COLD_START = 0, + REINITIALIZED_STATE_WARM_START = 1, + REINITIALIZED_STATE_START_BACKUP = 2, + REINITIALIZED_STATE_END_BACKUP = 3, + REINITIALIZED_STATE_START_RESTORE = 4, + REINITIALIZED_STATE_END_RESTORE = 5, + REINITIALIZED_STATE_ABORT_RESTORE = 6 +} BACNET_REINITIALIZED_STATE_OF_DEVICE; + +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, + // 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_ABORT_REASON; + +typedef enum { + OTHER = 0, + BUFFER-OVERFLOW = 1, + INCONSISTENT-PARAMETERS = 2, + INVALID-PARAMETER-DATA-TYPE = 3, + INVALID-TAG = 4, + MISSING-REQUIRED-PARAMETER = 5, + PARAMETER-OUT-OF-RANGE = 6, + TOO-MANY-ARGUMENTS = 7, + UNDEFINED-ENUMERATION = 8, + 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. +} BACNET_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, + // 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_ERROR_CLASS; + +typedef enum { + ERROR_CODE_OTHER = 0, + ERROR_CODE_AUTHENTICATION_FAILED = 1, + ERROR_CODE_CHARACTER_SET_NOT_SUPPORTED = 41, + ERROR_CODE_CONFIGURATION_IN_PROGRESS = 2, + ERROR_CODE_DEVICE_BUSY = 3, + ERROR_CODE_DYNAMIC_CREATION_NOT_SUPPORTED = 4, + ERROR_CODE_FILE_ACCESS_DENIED = 5, + ERROR_CODE_INCOMPATIBLE_SECURITY_LEVELS = 6, + ERROR_CODE_INCONSISTENT_PARAMETERS = 7, + ERROR_CODE_INCONSISTENT_SELECTION_CRITERION = 8, + ERROR_CODE_INVALID_ARRAY_INDEX = 42, + ERROR_CODE_INVALID_CONFIGURATION_DATA = 46, + ERROR_CODE_INVALID_DATA_TYPE = 9, + ERROR_CODE_INVALID_FILE_ACCESS_METHOD = 10, + ERROR_CODE_ERROR_CODE_INVALID_FILE_START_POSITION = 11, + ERROR_CODE_INVALID_OPERATOR_NAME = 12, + ERROR_CODE_INVALID_PARAMETER_DATA_TYPE = 13, + ERROR_CODE_INVALID_TIME_STAMP = 14, + ERROR_CODE_KEY_GENERATION_ERROR = 15, + ERROR_CODE_MISSING_REQUIRED_PARAMETER = 16, + ERROR_CODE_NO_OBJECTS_OF_SPECIFIED_TYPE = 17, + 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_CODE_NO_VT_SESSIONS_AVAILABLE = 21, + ERROR_CODE_OBJECT_DELETION_NOT_PERMITTED = 23, + ERROR_CODE_OBJECT_IDENTIFIER_ALREADY_EXISTS = 24, + ERROR_CODE_OPERATIONAL_PROBLEM = 25, + ERROR_CODE_OPTIONAL_FUNCTIONALITY_NOT_SUPPORTED, = 45, + ERROR_CODE_PASSWORD_FAILURE = 26, + ERROR_CODE_PROPERTY_IS_NOT_A_LIST = 22, + ERROR_CODE_READ_ACCESS_DENIED = 27, + ERROR_CODE_SECURITY_NOT_SUPPORTED = 28, + ERROR_CODE_SERVICE_REQUEST_DENIED = 29, + ERROR_CODE_TIMEOUT = 30, + ERROR_CODE_UNKNOWN_OBJECT = 31, + ERROR_CODE_UNKNOWN_PROPERTY = 32, + // this enumeration was removed = 33, + ERROR_CODE_UNKNOWN_VT_CLASS = 34, + ERROR_CODE_UNKNOWN_VT_SESSION = 35, + ERROR_CODE_UNSUPPORTED_OBJECT_TYPE = 36, + ERROR_CODE_VALUE_OUT_OF_RANGE = 37, + ERROR_CODE_VT_SESSION_ALREADY_CLOSED = 38, + ERROR_CODE_VT_SESSION_TERMINATION_FAILURE = 39, + ERROR_CODE_WRITE_ACCESS_DENIED = 40, + // see character_set_not_supported = 41, + // see invalid_array_index = 42, + ERROR_CODE_COV_SUBSCRIPTION_FAILED = 43, + ERROR_CODE_NOT_COV_PROPERTY = 44, + // see optional_functionality_not_supported, = 45, + // see invalid_configuration_data = 46, + // 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. + // The last enumeration used in this version is 46. +} BACNET_ERROR_CODE; + +#endif // end of BACENUM_H +