Files
bacnet_stack/bacnet-stack/bacenum.h
T
2005-04-17 01:35:47 +00:00

945 lines
30 KiB
C

/*####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_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 = 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.
MAX_BACNET_OBJECT_TYPES = 23 // used for bit string loop
} 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.
} 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 {
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_RESERVED1 = 13,
BACNET_APPLICATION_TAG_RESERVED2 = 14,
BACNET_APPLICATION_TAG_RESERVED3 = 15
} 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_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
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,
// Other services to be added as they are defined.
// All choice values in this production are reserved
// for definition by ASHRAE.
// Proprietary extensions are made by using the
// UnconfirmedPrivateTransfer service. See Clause 23.
MAX_BACNET_UNCONFIRMED_SERVICE = 10
} 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_PROPERTY_CONDITIONAL = 13,
SERVICE_SUPPORTED_READ_PROPERTY_MULTIPLE = 14,
SERVICE_SUPPORTED_READ_RANGE = 35,
SERVICE_SUPPORTED_WRITE_PROPERTY = 15,
SERVICE_SUPPORTED_WRITE_PROPERTY_MULTIPLE = 16,
// 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.
MAX_BACNET_SERVICES_SUPPORTED = 40
} BACNET_SERVICES_SUPPORTED;
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,
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_INITIALIZE_ROUTING_TABLE = 6,
NETWORK_MESSAGE_INITIALIZE_ROUTING_TABLE_ACK = 7,
NETWORK_MESSAGE_ESTABLISH_CONNECTION_TO_NETWORK = 8,
NETWORK_MESSAGE_DISCONNECT_CONNECTION_TO_NETWORK = 9
// X'0A' to X'7F': Reserved for use by ASHRAE,
// X'80' to X'FF': Available for vendor proprietary messages
} BACNET_NETWORK_MESSAGE_TYPE;
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.
MAX_BACNET_ABORT_REASON = 5,
FIRST_PROPRIETARY_ABORT_REASON = 64,
LAST_PROPRIETARY_ABORT_REASON = 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,
FIRST_PROPRIETARY_REJECT_REASON = 64,
LAST_PROPRIETARY_REJECT_REASON = 65535
} 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.
MAX_BACNET_ERROR_CLASS = 7,
FIRST_PROPRIETARY_ERROR_CLASS = 64,
LAST_PROPRIETARY_ERROR_CLASS = 65535
} 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,
ERROR_CODE_RESERVED1 = 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.
MAX_BACNET_ERROR_CODE = 47,
FIRST_PROPRIETARY_ERROR_CODE = 256,
LAST_PROPRIETARY_ERROR_CODE = 65535
} BACNET_ERROR_CODE;
#endif // end of BACENUM_H