Bugfix/bactext enumeration updates 2024 (#1020)

* Extended some BACnet enumerations from 135-2024 protocol-revision 25-30.  

* Changed usage of _FIRST and _LAST to _MIN and _MAX in some enumerations to be consistent.

* Added object type and services supported BACnetBitString sizes for protocol revision 25-30

*Added new BACnetPropertyIdentifier, BACnetEngineeringUnits, BACnetEventState, BACnetRestartReason, BACnetLifeSafetyMode, BACnetLifeSafetyOperation, BACnetLifeSafetyState, BACnet_Services_Supported, BACnetLightingOperation, BACnetBinaryLightingPV, BACnetNetworkPortCommand, BACnetAuthenticationDecision, BACnetAuthorizationPosture, BACnetFaultType, BACnetPriorityFilter, BACnetResultFlags, and BACnetSuccessFilter enumerations.

* Added BACnet text for BACnetLifeSafetyMode, BACnetLifeSafetyOperation, BACnetRestartReason, BACnetNetworkType, BACnetNetworkNumberQuality, BACnetNetworkPortCommand, BACnetAuthenticationDecision, BACnetAuthorizationPosture, BACnetFaultType, BACnetPriorityFilter, BACnetSuccessFilter, and BACnetResultFlags.
This commit is contained in:
Steve Karg
2025-06-17 14:36:57 -05:00
committed by GitHub
parent c2c987f11a
commit b0a97c6f75
14 changed files with 720 additions and 109 deletions
+14
View File
@@ -91,6 +91,20 @@ The git repositories are hosted at the following sites:
### Added ### Added
* Added object type and services supported BACnetBitString sizes for
protocol revision 25-30. (#1020)
* Added new BACnet text for BACnetLifeSafetyMode, BACnetLifeSafetyOperation,
BACnetRestartReason, BACnetNetworkType, BACnetNetworkNumberQuality,
BACnetNetworkPortCommand, BACnetAuthenticationDecision,
BACnetAuthorizationPosture, BACnetFaultType, BACnetPriorityFilter,
BACnetSuccessFilter, and BACnetResultFlags. (#1020)
* Added new BACnetPropertyIdentifier, BACnetEngineeringUnits, BACnetEventState,
BACnetRestartReason, BACnetLifeSafetyMode, BACnetLifeSafetyOperation,
BACnetLifeSafetyState, BACnet_Services_Supported, BACnetLightingOperation,
BACnetBinaryLightingPV, BACnetNetworkPortCommand,
BACnetAuthenticationDecision, BACnetAuthorizationPosture, BACnetFaultType,
BACnetPriorityFilter, BACnetResultFlags, and BACnetSuccessFilter
enumerations. (#1020)
* Added the option to specify a target destination for * Added the option to specify a target destination for
apps/server-discover. (#958) apps/server-discover. (#958)
* Added Program object task state transitions from request and callbacks. (#960) * Added Program object task state transitions from request and callbacks. (#960)
+3 -7
View File
@@ -22,8 +22,8 @@
#include "bacnet/iam.h" #include "bacnet/iam.h"
#include "bacnet/arf.h" #include "bacnet/arf.h"
#include "bacnet/npdu.h" #include "bacnet/npdu.h"
#include "bacnet/abort.h"
#include "bacnet/apdu.h" #include "bacnet/apdu.h"
#include "bacport.h"
#include "bacnet/whois.h" #include "bacnet/whois.h"
#include "bacnet/rp.h" #include "bacnet/rp.h"
#include "bacnet/proplist.h" #include "bacnet/proplist.h"
@@ -40,6 +40,7 @@
#include "bacnet/datalink/bip.h" #include "bacnet/datalink/bip.h"
#include "bacnet/basic/bbmd/h_bbmd.h" #include "bacnet/basic/bbmd/h_bbmd.h"
#include "bacnet/datalink/dlenv.h" #include "bacnet/datalink/dlenv.h"
#include "bacport.h"
#include "bacepics.h" #include "bacepics.h"
/* (Doxygen note: The next two lines pull all the following Javadoc /* (Doxygen note: The next two lines pull all the following Javadoc
@@ -201,12 +202,7 @@ static void MyAbortHandler(
#endif #endif
Error_Detected = true; Error_Detected = true;
Last_Error_Class = ERROR_CLASS_SERVICES; Last_Error_Class = ERROR_CLASS_SERVICES;
if (abort_reason < MAX_BACNET_ABORT_REASON) { Last_Error_Code = abort_convert_to_error_code(abort_reason);
Last_Error_Code =
(ERROR_CODE_ABORT_BUFFER_OVERFLOW - 1) + abort_reason;
} else {
Last_Error_Code = ERROR_CODE_ABORT_OTHER;
}
} }
} }
+1 -1
View File
@@ -166,7 +166,7 @@ static void Init_Service_Handlers(void)
Device_Init(NULL); Device_Init(NULL);
/* create some dynamically created objects as examples */ /* create some dynamically created objects as examples */
object_data.object_instance = BACNET_MAX_INSTANCE; object_data.object_instance = BACNET_MAX_INSTANCE;
for (i = 0; i <= BACNET_OBJECT_TYPE_LAST; i++) { for (i = 0; i <= BACNET_OBJECT_TYPE_RESERVED_MIN; i++) {
object_data.object_type = i; object_data.object_type = i;
if (Device_Create_Object(&object_data)) { if (Device_Create_Object(&object_data)) {
printf( printf(
+2 -2
View File
@@ -2244,7 +2244,7 @@ static int bacapp_snprintf_enumerated(
ret_val = bacapp_snprintf_property_identifier(str, str_len, value); ret_val = bacapp_snprintf_property_identifier(str, str_len, value);
break; break;
case PROP_OBJECT_TYPE: case PROP_OBJECT_TYPE:
if (value <= BACNET_OBJECT_TYPE_LAST) { if (value <= BACNET_OBJECT_TYPE_RESERVED_MIN) {
ret_val = bacapp_snprintf( ret_val = bacapp_snprintf(
str, str_len, "%s", bactext_object_type_name(value)); str, str_len, "%s", bactext_object_type_name(value));
} else if (value <= BACNET_OBJECT_TYPE_RESERVED_MAX) { } else if (value <= BACNET_OBJECT_TYPE_RESERVED_MAX) {
@@ -2472,7 +2472,7 @@ static int bacapp_snprintf_object_id(
slen = bacapp_snprintf(str, str_len, "("); slen = bacapp_snprintf(str, str_len, "(");
ret_val += bacapp_snprintf_shift(slen, &str, &str_len); ret_val += bacapp_snprintf_shift(slen, &str, &str_len);
if (object_id->type <= BACNET_OBJECT_TYPE_LAST) { if (object_id->type <= BACNET_OBJECT_TYPE_RESERVED_MIN) {
slen = bacapp_snprintf( slen = bacapp_snprintf(
str, str_len, "%s, ", bactext_object_type_name(object_id->type)); str, str_len, "%s, ", bactext_object_type_name(object_id->type));
} else if (object_id->type < BACNET_OBJECT_TYPE_RESERVED_MAX) { } else if (object_id->type < BACNET_OBJECT_TYPE_RESERVED_MAX) {
+31 -4
View File
@@ -24,8 +24,8 @@
/* This stack implements this version of BACnet */ /* This stack implements this version of BACnet */
#define BACNET_PROTOCOL_VERSION 1 #define BACNET_PROTOCOL_VERSION 1
/* Although this stack can implement a later revision, /* Although this stack can implement any revision,
* sometimes another revision is desired */ * sometimes a specific revision is desired */
#ifndef BACNET_PROTOCOL_REVISION #ifndef BACNET_PROTOCOL_REVISION
#define BACNET_PROTOCOL_REVISION 24 #define BACNET_PROTOCOL_REVISION 24
#endif #endif
@@ -91,7 +91,7 @@
#define MAX_ASHRAE_OBJECT_TYPE 57 #define MAX_ASHRAE_OBJECT_TYPE 57
#define MAX_BACNET_SERVICES_SUPPORTED 41 #define MAX_BACNET_SERVICES_SUPPORTED 41
#elif (BACNET_PROTOCOL_REVISION == 18) || (BACNET_PROTOCOL_REVISION == 19) #elif (BACNET_PROTOCOL_REVISION == 18) || (BACNET_PROTOCOL_REVISION == 19)
/* from 135-2016 version of the BACnet Standard */ /* ANSI/ASHRAE 135-2016 */
#define MAX_ASHRAE_OBJECT_TYPE 60 #define MAX_ASHRAE_OBJECT_TYPE 60
#define MAX_BACNET_SERVICES_SUPPORTED 44 #define MAX_BACNET_SERVICES_SUPPORTED 44
#elif (BACNET_PROTOCOL_REVISION == 20) || (BACNET_PROTOCOL_REVISION == 21) #elif (BACNET_PROTOCOL_REVISION == 20) || (BACNET_PROTOCOL_REVISION == 21)
@@ -99,6 +99,8 @@
#define MAX_ASHRAE_OBJECT_TYPE 63 #define MAX_ASHRAE_OBJECT_TYPE 63
#define MAX_BACNET_SERVICES_SUPPORTED 47 #define MAX_BACNET_SERVICES_SUPPORTED 47
#elif (BACNET_PROTOCOL_REVISION == 22) #elif (BACNET_PROTOCOL_REVISION == 22)
/* Addendum 135-2016bj, 135-2016by, 135-2016bz */
/* ANSI/ASHRAE 135-2020 */
#define MAX_ASHRAE_OBJECT_TYPE 63 #define MAX_ASHRAE_OBJECT_TYPE 63
#define MAX_BACNET_SERVICES_SUPPORTED 47 #define MAX_BACNET_SERVICES_SUPPORTED 47
#elif (BACNET_PROTOCOL_REVISION == 23) #elif (BACNET_PROTOCOL_REVISION == 23)
@@ -106,9 +108,34 @@
#define MAX_ASHRAE_OBJECT_TYPE 63 #define MAX_ASHRAE_OBJECT_TYPE 63
#define MAX_BACNET_SERVICES_SUPPORTED 47 #define MAX_BACNET_SERVICES_SUPPORTED 47
#elif (BACNET_PROTOCOL_REVISION == 24) #elif (BACNET_PROTOCOL_REVISION == 24)
/* Addendum 135-2020ca, 135-2020cc, 135-2020bv */ /* Addendum 135-2020bv, 135-2020ca, 135-2020cc, 135-2020ce */
#define MAX_ASHRAE_OBJECT_TYPE 65 #define MAX_ASHRAE_OBJECT_TYPE 65
#define MAX_BACNET_SERVICES_SUPPORTED 49 #define MAX_BACNET_SERVICES_SUPPORTED 49
#elif (BACNET_PROTOCOL_REVISION == 25)
/* Addendum 135-2020cf */
#define MAX_ASHRAE_OBJECT_TYPE 65
#define MAX_BACNET_SERVICES_SUPPORTED 49
#elif (BACNET_PROTOCOL_REVISION == 26)
/* Addendum 135-2020ch, 135-2020ck, 135-2020cn, 135-2020cq, 135-2020cs */
#define MAX_ASHRAE_OBJECT_TYPE 65
#define MAX_BACNET_SERVICES_SUPPORTED 49
#elif (BACNET_PROTOCOL_REVISION == 27)
/* Addendum 135-2020bx, 135-2020ci */
#define MAX_ASHRAE_OBJECT_TYPE 65
#define MAX_BACNET_SERVICES_SUPPORTED 49
#elif (BACNET_PROTOCOL_REVISION == 28)
/* Addendum 135-2020cj, 135-2020co */
#define MAX_ASHRAE_OBJECT_TYPE 65
#define MAX_BACNET_SERVICES_SUPPORTED 49
#elif (BACNET_PROTOCOL_REVISION == 29)
/* Addendum 135-2020cp Addition of Authentication and Authorization */
/* ANSI/ASHRAE 135-2024 */
#define MAX_ASHRAE_OBJECT_TYPE 65
#define MAX_BACNET_SERVICES_SUPPORTED 50
#elif (BACNET_PROTOCOL_REVISION == 30)
/* Addendum 135-2020cm BACnet Energy Services Interface */
#define MAX_ASHRAE_OBJECT_TYPE 65
#define MAX_BACNET_SERVICES_SUPPORTED 50
#else #else
#error MAX_ASHRAE_OBJECT_TYPE and MAX_BACNET_SERVICES_SUPPORTED not defined! #error MAX_ASHRAE_OBJECT_TYPE and MAX_BACNET_SERVICES_SUPPORTED not defined!
#endif #endif
+223 -69
View File
@@ -8,7 +8,7 @@
#ifndef BACNET_ENUMERATIONS_H #ifndef BACNET_ENUMERATIONS_H
#define BACNET_ENUMERATIONS_H #define BACNET_ENUMERATIONS_H
typedef enum { typedef enum BACnetPropertyIdentifier {
PROP_ACKED_TRANSITIONS = 0, PROP_ACKED_TRANSITIONS = 0,
PROP_ACK_REQUIRED = 1, PROP_ACK_REQUIRED = 1,
PROP_ACTION = 2, PROP_ACTION = 2,
@@ -568,8 +568,24 @@ typedef enum {
PROP_HIGH_END_TRIM = 4194335, PROP_HIGH_END_TRIM = 4194335,
PROP_LOW_END_TRIM = 4194336, PROP_LOW_END_TRIM = 4194336,
PROP_TRIM_FADE_TIME = 4194337, PROP_TRIM_FADE_TIME = 4194337,
/* Addendum 135-2020bx */
/* enumerations 4194338-4194340 are defined in Addendum 2020bx */
PROP_DEVICE_ADDRESS_PROXY_ENABLE = 4194338,
PROP_DEVICE_ADDRESS_PROXY_TABLE = 4194339,
PROP_DEVICE_ADDRESS_PROXY_TIMEOUT = 4194340,
/* enumerations 4194341-4194342 are defined in Addendum 2020cj */
PROP_DEFAULT_ON_VALUE = 4194341,
PROP_LAST_ON_VALUE = 4194342,
/* enumerations 4194343-4194349 are defined in Addendum 2020cp */
PROP_AUTHORIZATION_CACHE = 4194343,
PROP_AUTHORIZATION_GROUPS = 4194344,
PROP_AUTHORIZATION_POLICY = 4194345,
PROP_AUTHORIZATION_SCOPE = 4194346,
PROP_AUTHORIZATION_SERVER = 4194347,
PROP_AUTHORIZATION_STATUS = 4194348,
PROP_MAX_PROXIED_I_AMS_PER_SECOND = 4194349,
/* update this value which is used in testing */ /* update this value which is used in testing */
PROP_RESERVED_RANGE_LAST = 4194337, PROP_RESERVED_RANGE_LAST = 4194349,
/* Enumerated values 4194303-16777215 are reserved /* Enumerated values 4194303-16777215 are reserved
for definition by ASHRAE. */ for definition by ASHRAE. */
/* do the max range inside of enum so that /* do the max range inside of enum so that
@@ -583,9 +599,12 @@ typedef enum {
EVENT_HIGH_LIMIT_ENABLE = 2 EVENT_HIGH_LIMIT_ENABLE = 2
} BACNET_LIMIT_ENABLE; } BACNET_LIMIT_ENABLE;
typedef enum { ACTION_DIRECT = 0, ACTION_REVERSE = 1 } BACNET_ACTION; typedef enum BACnetAction {
ACTION_DIRECT = 0,
ACTION_REVERSE = 1
} BACNET_ACTION;
typedef enum { typedef enum BACnetBinaryPV {
MIN_BINARY_PV = 0, /* for validating incoming values */ MIN_BINARY_PV = 0, /* for validating incoming values */
BINARY_INACTIVE = 0, BINARY_INACTIVE = 0,
BINARY_ACTIVE = 1, BINARY_ACTIVE = 1,
@@ -599,13 +618,18 @@ typedef enum {
ACTION_FLOAT ACTION_FLOAT
} BACNET_ACTION_VALUE_TYPE; } BACNET_ACTION_VALUE_TYPE;
typedef enum { typedef enum BACnetEventState {
EVENT_STATE_NORMAL = 0, EVENT_STATE_NORMAL = 0,
EVENT_STATE_FAULT = 1, EVENT_STATE_FAULT = 1,
EVENT_STATE_OFFNORMAL = 2, EVENT_STATE_OFFNORMAL = 2,
EVENT_STATE_HIGH_LIMIT = 3, EVENT_STATE_HIGH_LIMIT = 3,
EVENT_STATE_LOW_LIMIT = 4, EVENT_STATE_LOW_LIMIT = 4,
EVENT_STATE_LIFE_SAFETY_ALARM = 5,
EVENT_STATE_MAX = 5 EVENT_STATE_MAX = 5
/* 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.
The last enumeration used in this version is 5. */
} BACNET_EVENT_STATE; } BACNET_EVENT_STATE;
typedef enum { typedef enum {
@@ -614,7 +638,7 @@ typedef enum {
EVENT_ENABLE_TO_NORMAL = 4 EVENT_ENABLE_TO_NORMAL = 4
} BACNET_EVENT_ENABLE; } BACNET_EVENT_ENABLE;
typedef enum { typedef enum BACnetDeviceStatus {
STATUS_OPERATIONAL = 0, STATUS_OPERATIONAL = 0,
STATUS_OPERATIONAL_READ_ONLY = 1, STATUS_OPERATIONAL_READ_ONLY = 1,
STATUS_DOWNLOAD_REQUIRED = 2, STATUS_DOWNLOAD_REQUIRED = 2,
@@ -622,9 +646,12 @@ typedef enum {
STATUS_NON_OPERATIONAL = 4, STATUS_NON_OPERATIONAL = 4,
STATUS_BACKUP_IN_PROGRESS = 5, STATUS_BACKUP_IN_PROGRESS = 5,
MAX_DEVICE_STATUS = 6 MAX_DEVICE_STATUS = 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_DEVICE_STATUS; } BACNET_DEVICE_STATUS;
typedef enum { typedef enum BACnetEngineeringUnits {
/* Enumerated values 0-255 are reserved for definition by ASHRAE. */ /* Enumerated values 0-255 are reserved for definition by ASHRAE. */
/* Acceleration */ /* Acceleration */
UNITS_METERS_PER_SECOND_PER_SECOND = 166, UNITS_METERS_PER_SECOND_PER_SECOND = 166,
@@ -739,6 +766,7 @@ typedef enum {
UNITS_PER_MILLISECOND = 47824, UNITS_PER_MILLISECOND = 47824,
/* Humidity */ /* Humidity */
UNITS_GRAMS_OF_WATER_PER_KILOGRAM_DRY_AIR = 28, UNITS_GRAMS_OF_WATER_PER_KILOGRAM_DRY_AIR = 28,
UNITS_GRAINS_OF_WATER_PER_POUND_DRY_AIR = 47972,
UNITS_PERCENT_RELATIVE_HUMIDITY = 29, UNITS_PERCENT_RELATIVE_HUMIDITY = 29,
/* Length */ /* Length */
UNITS_MICROMETERS = 194, UNITS_MICROMETERS = 194,
@@ -865,6 +893,9 @@ typedef enum {
UNITS_SECONDS = 73, UNITS_SECONDS = 73,
UNITS_HUNDREDTHS_SECONDS = 158, UNITS_HUNDREDTHS_SECONDS = 158,
UNITS_MILLISECONDS = 159, UNITS_MILLISECONDS = 159,
UNITS_MICROSECONDS = 47979,
UNITS_NANOSECONDS = 47980,
UNITS_PICOSECONDS = 47981,
/* Torque */ /* Torque */
UNITS_NEWTON_METERS = 160, UNITS_NEWTON_METERS = 160,
UNITS_POUND_FORCE_FEET = 47904, UNITS_POUND_FORCE_FEET = 47904,
@@ -995,6 +1026,10 @@ typedef enum {
UNITS_MILLIGRAMS_PER_CUBIC_CENTIMETER = 47895, UNITS_MILLIGRAMS_PER_CUBIC_CENTIMETER = 47895,
UNITS_MICROGRAMS_PER_CUBIC_CENTIMETER = 47896, UNITS_MICROGRAMS_PER_CUBIC_CENTIMETER = 47896,
UNITS_NANOGRAMS_PER_CUBIC_CENTIMETER = 47897, UNITS_NANOGRAMS_PER_CUBIC_CENTIMETER = 47897,
UNITS_PARTICLES_PER_CUBIC_FOOT = 47968,
UNITS_PARTICLES_PER_CUBIC_METER = 47969,
UNITS_PICOCURIES_PER_LITER = 47970,
UNITS_BECQUERELS_PER_CUBIC_METER = 47971,
UNITS_BECQUERELS = 222, UNITS_BECQUERELS = 222,
UNITS_KILOBECQUERELS = 223, UNITS_KILOBECQUERELS = 223,
UNITS_MEGABECQUERELS = 224, UNITS_MEGABECQUERELS = 224,
@@ -1038,7 +1073,12 @@ typedef enum {
UNITS_SITE_UNIT8 = 47965, UNITS_SITE_UNIT8 = 47965,
UNITS_SITE_UNIT9 = 47966, UNITS_SITE_UNIT9 = 47966,
UNITS_SITE_UNIT10 = 47967, UNITS_SITE_UNIT10 = 47967,
UNITS_DEGREE_HOURS_CELSIUS = 47973,
UNITS_DEGREE_HOURS_FAHRENHEIT = 47974,
UNITS_DEGREE_MINUTES_CELSIUS = 47975,
UNITS_DEGREE_MINUTES_FAHRENHEIT = 47976,
UNITS_DEGREE_SECONDS_CELSIUS = 47977,
UNITS_DEGREE_SECONDS_FAHRENHEIT = 47978,
UNITS_OHM_METER_SQUARED_PER_METER = 237, UNITS_OHM_METER_SQUARED_PER_METER = 237,
UNITS_AMPERE_SECONDS = 238, UNITS_AMPERE_SECONDS = 238,
UNITS_VOLT_AMPERE_HOURS = 239, UNITS_VOLT_AMPERE_HOURS = 239,
@@ -1072,6 +1112,7 @@ typedef enum {
/* 47813 - NOT USED */ /* 47813 - NOT USED */
UNITS_MILLIREMS = 47814, UNITS_MILLIREMS = 47814,
UNITS_MILLIREMS_PER_HOUR = 47815, UNITS_MILLIREMS_PER_HOUR = 47815,
/* Enumerated values 47808-49999 are reserved for definition by ASHRAE. */
UNITS_RESERVED_RANGE_MAX2 = 49999, UNITS_RESERVED_RANGE_MAX2 = 49999,
UNITS_PROPRIETARY_RANGE_MIN2 = 50000, UNITS_PROPRIETARY_RANGE_MIN2 = 50000,
/* Enumerated values 50000-65535 may be used by others /* Enumerated values 50000-65535 may be used by others
@@ -1082,7 +1123,7 @@ typedef enum {
UNITS_PROPRIETARY_RANGE_MAX2 = 65535 UNITS_PROPRIETARY_RANGE_MAX2 = 65535
} BACNET_ENGINEERING_UNITS; } BACNET_ENGINEERING_UNITS;
typedef enum { typedef enum BACnetPolarity {
POLARITY_NORMAL = 0, POLARITY_NORMAL = 0,
POLARITY_REVERSE = 1, POLARITY_REVERSE = 1,
MAX_POLARITY = 2 MAX_POLARITY = 2
@@ -1123,7 +1164,7 @@ typedef enum BACnetProgramError {
PROGRAM_ERROR_PROPRIETARY_MAX = 65535 PROGRAM_ERROR_PROPRIETARY_MAX = 65535
} BACNET_PROGRAM_ERROR; } BACNET_PROGRAM_ERROR;
typedef enum { typedef enum BACnetRestartReason {
RESTART_REASON_UNKNOWN = 0, RESTART_REASON_UNKNOWN = 0,
RESTART_REASON_COLDSTART = 1, RESTART_REASON_COLDSTART = 1,
RESTART_REASON_WARMSTART = 2, RESTART_REASON_WARMSTART = 2,
@@ -1132,6 +1173,9 @@ typedef enum {
RESTART_REASON_HARDWARE_WATCHDOG = 5, RESTART_REASON_HARDWARE_WATCHDOG = 5,
RESTART_REASON_SOFTWARE_WATCHDOG = 6, RESTART_REASON_SOFTWARE_WATCHDOG = 6,
RESTART_REASON_SUSPENDED = 7, RESTART_REASON_SUSPENDED = 7,
RESTART_REASON_ACTIVATE_CHANGES = 8,
RESTART_REASON_RESERVED_MIN = 9,
RESTART_REASON_RESERVED_MAX = 63,
/* Enumerated values 0-63 are reserved for definition by ASHRAE. /* Enumerated values 0-63 are reserved for definition by ASHRAE.
Enumerated values 64-255 may be used by others subject to the Enumerated values 64-255 may be used by others subject to the
procedures and constraints described in Clause 23. */ procedures and constraints described in Clause 23. */
@@ -1246,6 +1290,8 @@ typedef enum BACnetReliability {
RELIABILITY_FAULTS_LISTED = 23, RELIABILITY_FAULTS_LISTED = 23,
RELIABILITY_REFERENCED_OBJECT_FAULT = 24, RELIABILITY_REFERENCED_OBJECT_FAULT = 24,
RELIABILITY_MULTI_STATE_OUT_OF_RANGE = 25, RELIABILITY_MULTI_STATE_OUT_OF_RANGE = 25,
RELIABILITY_RESERVED_MIN = 26,
RELIABILITY_RESERVED_MAX = 63,
/* Enumerated values 0-63 are reserved for definition by ASHRAE. */ /* Enumerated values 0-63 are reserved for definition by ASHRAE. */
/* Enumerated values 64-65535 may be used by others subject to */ /* Enumerated values 64-65535 may be used by others subject to */
/* the procedures and constraints described in Clause 23. */ /* the procedures and constraints described in Clause 23. */
@@ -1256,7 +1302,7 @@ typedef enum BACnetReliability {
RELIABILITY_PROPRIETARY_MAX = 65535 RELIABILITY_PROPRIETARY_MAX = 65535
} BACNET_RELIABILITY; } BACNET_RELIABILITY;
typedef enum { typedef enum BACnetEventType {
EVENT_CHANGE_OF_BITSTRING = 0, EVENT_CHANGE_OF_BITSTRING = 0,
EVENT_CHANGE_OF_STATE = 1, EVENT_CHANGE_OF_STATE = 1,
EVENT_CHANGE_OF_VALUE = 2, EVENT_CHANGE_OF_VALUE = 2,
@@ -1285,22 +1331,17 @@ typedef enum {
/* It is expected that these enumerated values will correspond to */ /* It is expected that these enumerated values will correspond to */
/* the use of the complex-event-type CHOICE [6] of the */ /* the use of the complex-event-type CHOICE [6] of the */
/* BACnetNotificationParameters production. */ /* 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_MIN = 64,
EVENT_PROPRIETARY_MAX = 65535 EVENT_PROPRIETARY_MAX = 65535
} BACNET_EVENT_TYPE; } BACNET_EVENT_TYPE;
typedef enum { typedef enum BACnetFileAccessMethod {
FILE_RECORD_ACCESS = 0, FILE_RECORD_ACCESS = 0,
FILE_STREAM_ACCESS = 1, FILE_STREAM_ACCESS = 1,
FILE_RECORD_AND_STREAM_ACCESS = 2 FILE_RECORD_AND_STREAM_ACCESS = 2
} BACNET_FILE_ACCESS_METHOD; } BACNET_FILE_ACCESS_METHOD;
typedef enum { typedef enum BACnetLifeSafetyMode {
MIN_LIFE_SAFETY_MODE = 0,
LIFE_SAFETY_MODE_OFF = 0, LIFE_SAFETY_MODE_OFF = 0,
LIFE_SAFETY_MODE_ON = 1, LIFE_SAFETY_MODE_ON = 1,
LIFE_SAFETY_MODE_TEST = 2, LIFE_SAFETY_MODE_TEST = 2,
@@ -1316,7 +1357,13 @@ typedef enum {
LIFE_SAFETY_MODE_DISABLED = 12, LIFE_SAFETY_MODE_DISABLED = 12,
LIFE_SAFETY_MODE_AUTOMATIC_RELEASE_DISABLED = 13, LIFE_SAFETY_MODE_AUTOMATIC_RELEASE_DISABLED = 13,
LIFE_SAFETY_MODE_DEFAULT = 14, LIFE_SAFETY_MODE_DEFAULT = 14,
MAX_LIFE_SAFETY_MODE = 15, LIFE_SAFETY_MODE_ACTIVATED_OEO_ALARM = 15,
LIFE_SAFETY_MODE_ACTIVATED_OEO_EVACUATE = 16,
LIFE_SAFETY_MODE_ACTIVATED_OEO_PHASE1_RECALL = 17,
LIFE_SAFETY_MODE_ACTIVATED_OEO_UNAVAILABLE = 18,
LIFE_SAFETY_MODE_DEACTIVATED = 19,
LIFE_SAFETY_MODE_RESERVED_MIN = 20,
LIFE_SAFETY_MODE_RESERVED_MAX = 255,
/* Enumerated values 0-255 are reserved for definition by ASHRAE. */ /* Enumerated values 0-255 are reserved for definition by ASHRAE. */
/* Enumerated values 256-65535 may be used by others subject to */ /* Enumerated values 256-65535 may be used by others subject to */
/* procedures and constraints described in Clause 23. */ /* procedures and constraints described in Clause 23. */
@@ -1327,7 +1374,7 @@ typedef enum {
LIFE_SAFETY_MODE_PROPRIETARY_MAX = 65535 LIFE_SAFETY_MODE_PROPRIETARY_MAX = 65535
} BACNET_LIFE_SAFETY_MODE; } BACNET_LIFE_SAFETY_MODE;
typedef enum { typedef enum BACnetLifeSafetyOperation {
LIFE_SAFETY_OP_NONE = 0, LIFE_SAFETY_OP_NONE = 0,
LIFE_SAFETY_OP_SILENCE = 1, LIFE_SAFETY_OP_SILENCE = 1,
LIFE_SAFETY_OP_SILENCE_AUDIBLE = 2, LIFE_SAFETY_OP_SILENCE_AUDIBLE = 2,
@@ -1348,8 +1395,7 @@ typedef enum {
LIFE_SAFETY_OP_PROPRIETARY_MAX = 65535 LIFE_SAFETY_OP_PROPRIETARY_MAX = 65535
} BACNET_LIFE_SAFETY_OPERATION; } BACNET_LIFE_SAFETY_OPERATION;
typedef enum { typedef enum BACnetLifeSafetyState {
MIN_LIFE_SAFETY_STATE = 0,
LIFE_SAFETY_STATE_QUIET = 0, LIFE_SAFETY_STATE_QUIET = 0,
LIFE_SAFETY_STATE_PRE_ALARM = 1, LIFE_SAFETY_STATE_PRE_ALARM = 1,
LIFE_SAFETY_STATE_ALARM = 2, LIFE_SAFETY_STATE_ALARM = 2,
@@ -1374,7 +1420,19 @@ typedef enum {
LIFE_SAFETY_STATE_GENERAL_ALARM = 21, LIFE_SAFETY_STATE_GENERAL_ALARM = 21,
LIFE_SAFETY_STATE_SUPERVISORY = 22, LIFE_SAFETY_STATE_SUPERVISORY = 22,
LIFE_SAFETY_STATE_TEST_SUPERVISORY = 23, LIFE_SAFETY_STATE_TEST_SUPERVISORY = 23,
MAX_LIFE_SAFETY_STATE = 24, LIFE_SAFETY_STATE_NON_DEFAULT_MODE = 24,
LIFE_SAFETY_STATE_OEO_UNAVAILABLE = 25,
LIFE_SAFETY_STATE_OEO_ALARM = 26,
LIFE_SAFETY_STATE_OEO_PHASE1_RECALL = 27,
LIFE_SAFETY_STATE_OEO_EVACUATE = 28,
LIFE_SAFETY_STATE_OEO_UNAFFECTED = 29,
LIFE_SAFETY_STATE_TEST_OEO_UNAVAILABLE = 30,
LIFE_SAFETY_STATE_TEST_OEO_ALARM = 31,
LIFE_SAFETY_STATE_TEST_OEO_PHASE1_RECALL = 32,
LIFE_SAFETY_STATE_TEST_OEO_EVACUATE = 33,
LIFE_SAFETY_STATE_TEST_OEO_UNAFFECTED = 34,
LIFE_SAFETY_STATE_RESERVED_MIN = 35,
LIFE_SAFETY_STATE_RESERVED_MAX = 255,
/* Enumerated values 0-255 are reserved for definition by ASHRAE. */ /* Enumerated values 0-255 are reserved for definition by ASHRAE. */
/* Enumerated values 256-65535 may be used by others subject to */ /* Enumerated values 256-65535 may be used by others subject to */
/* procedures and constraints described in Clause 23. */ /* procedures and constraints described in Clause 23. */
@@ -1385,7 +1443,7 @@ typedef enum {
LIFE_SAFETY_STATE_PROPRIETARY_MAX = 65535 LIFE_SAFETY_STATE_PROPRIETARY_MAX = 65535
} BACNET_LIFE_SAFETY_STATE; } BACNET_LIFE_SAFETY_STATE;
typedef enum { typedef enum BACnetSilencedState {
SILENCED_STATE_UNSILENCED = 0, SILENCED_STATE_UNSILENCED = 0,
SILENCED_STATE_AUDIBLE_SILENCED = 1, SILENCED_STATE_AUDIBLE_SILENCED = 1,
SILENCED_STATE_VISIBLE_SILENCED = 2, SILENCED_STATE_VISIBLE_SILENCED = 2,
@@ -1400,7 +1458,7 @@ typedef enum {
SILENCED_STATE_PROPRIETARY_MAX = 65535 SILENCED_STATE_PROPRIETARY_MAX = 65535
} BACNET_SILENCED_STATE; } BACNET_SILENCED_STATE;
typedef enum { typedef enum BACnetMaintenance {
MAINTENANCE_NONE = 0, MAINTENANCE_NONE = 0,
MAINTENANCE_PERIODIC_TEST = 1, MAINTENANCE_PERIODIC_TEST = 1,
MAINTENANCE_NEED_SERVICE_OPERATIONAL = 2, MAINTENANCE_NEED_SERVICE_OPERATIONAL = 2,
@@ -1415,7 +1473,7 @@ typedef enum {
MAINTENANCE_PROPRIETARY_MAX = 65535 MAINTENANCE_PROPRIETARY_MAX = 65535
} BACNET_MAINTENANCE; } BACNET_MAINTENANCE;
typedef enum { typedef enum BACnetNotifyType {
NOTIFY_ALARM = 0, NOTIFY_ALARM = 0,
NOTIFY_EVENT = 1, NOTIFY_EVENT = 1,
NOTIFY_ACK_NOTIFICATION = 2, NOTIFY_ACK_NOTIFICATION = 2,
@@ -1489,7 +1547,7 @@ typedef enum BACnetObjectType {
OBJECT_AUDIT_REPORTER = 62, /* Addendum 135-2016bi */ OBJECT_AUDIT_REPORTER = 62, /* Addendum 135-2016bi */
OBJECT_COLOR = 63, /* Addendum 135-2020ca */ OBJECT_COLOR = 63, /* Addendum 135-2020ca */
OBJECT_COLOR_TEMPERATURE = 64, /* Addendum 135-2020ca */ OBJECT_COLOR_TEMPERATURE = 64, /* Addendum 135-2020ca */
BACNET_OBJECT_TYPE_LAST = OBJECT_COLOR_TEMPERATURE, BACNET_OBJECT_TYPE_RESERVED_MIN = 65,
BACNET_OBJECT_TYPE_RESERVED_MAX = 127, BACNET_OBJECT_TYPE_RESERVED_MAX = 127,
/* Enumerated values 0-127 are reserved for definition by ASHRAE. */ /* Enumerated values 0-127 are reserved for definition by ASHRAE. */
/* Enumerated values 128-1023 may be used by others subject to */ /* Enumerated values 128-1023 may be used by others subject to */
@@ -1504,7 +1562,7 @@ typedef enum BACnetObjectType {
OBJECT_NONE = 65535 OBJECT_NONE = 65535
} BACNET_OBJECT_TYPE; } BACNET_OBJECT_TYPE;
typedef enum { typedef enum BACnetSegmentation {
SEGMENTATION_BOTH = 0, SEGMENTATION_BOTH = 0,
SEGMENTATION_TRANSMIT = 1, SEGMENTATION_TRANSMIT = 1,
SEGMENTATION_RECEIVE = 2, SEGMENTATION_RECEIVE = 2,
@@ -1771,6 +1829,7 @@ typedef enum BACnet_Services_Supported {
/* Security Services */ /* Security Services */
SERVICE_SUPPORTED_AUTHENTICATE = 24, SERVICE_SUPPORTED_AUTHENTICATE = 24,
SERVICE_SUPPORTED_REQUEST_KEY = 25, SERVICE_SUPPORTED_REQUEST_KEY = 25,
SERVICE_SUPPORTED_AUTH_REQUEST = 49,
/* Unconfirmed Services */ /* Unconfirmed Services */
SERVICE_SUPPORTED_I_AM = 26, SERVICE_SUPPORTED_I_AM = 26,
SERVICE_SUPPORTED_I_HAVE = 27, SERVICE_SUPPORTED_I_HAVE = 27,
@@ -1787,23 +1846,25 @@ typedef enum BACnet_Services_Supported {
/* Other services to be added as they are defined. */ /* Other services to be added as they are defined. */
/* All values in this production are reserved */ /* All values in this production are reserved */
/* for definition by ASHRAE. */ /* for definition by ASHRAE. */
/* note: MAX_BACNET_SERVICES_SUPPORTED is defined in bacdef.h
based on protocol revision */
} BACNET_SERVICES_SUPPORTED; } BACNET_SERVICES_SUPPORTED;
/* Bit String Enumerations */ /* Bit String Enumerations */
typedef enum { typedef enum BACnetStatusFlags {
STATUS_FLAG_IN_ALARM = 0, STATUS_FLAG_IN_ALARM = 0,
STATUS_FLAG_FAULT = 1, STATUS_FLAG_FAULT = 1,
STATUS_FLAG_OVERRIDDEN = 2, STATUS_FLAG_OVERRIDDEN = 2,
STATUS_FLAG_OUT_OF_SERVICE = 3 STATUS_FLAG_OUT_OF_SERVICE = 3
} BACNET_STATUS_FLAGS; } BACNET_STATUS_FLAGS;
typedef enum { typedef enum BACnetLogStatus {
LOG_STATUS_LOG_DISABLED = 0, LOG_STATUS_LOG_DISABLED = 0,
LOG_STATUS_BUFFER_PURGED = 1, LOG_STATUS_BUFFER_PURGED = 1,
LOG_STATUS_LOG_INTERRUPTED = 2 LOG_STATUS_LOG_INTERRUPTED = 2
} BACNET_LOG_STATUS; } BACNET_LOG_STATUS;
typedef enum { typedef enum BACnetLoggingType {
LOGGING_TYPE_POLLED = 0, LOGGING_TYPE_POLLED = 0,
LOGGING_TYPE_COV = 1, LOGGING_TYPE_COV = 1,
LOGGING_TYPE_TRIGGERED = 2 LOGGING_TYPE_TRIGGERED = 2
@@ -1915,7 +1976,9 @@ typedef enum {
/* Enumerated values 0-63 are reserved for definition by ASHRAE. */ /* Enumerated values 0-63 are reserved for definition by ASHRAE. */
/* Enumerated values 64-255 may be used by others subject to */ /* Enumerated values 64-255 may be used by others subject to */
/* the procedures and constraints described in Clause 23. */ /* the procedures and constraints described in Clause 23. */
MAX_BACNET_ABORT_REASON = 12, ABORT_REASON_RESERVED_MIN = 12,
/* for legacy applications */
MAX_BACNET_ABORT_REASON = ABORT_REASON_RESERVED_MIN,
ABORT_REASON_PROPRIETARY_FIRST = 64, ABORT_REASON_PROPRIETARY_FIRST = 64,
ABORT_REASON_PROPRIETARY_LAST = 255 ABORT_REASON_PROPRIETARY_LAST = 255
} BACNET_ABORT_REASON; } BACNET_ABORT_REASON;
@@ -2276,6 +2339,7 @@ typedef enum BACnetRelationship {
BACNET_RELATIONSHIP_RECEIVES_COOL_WATER = 27, BACNET_RELATIONSHIP_RECEIVES_COOL_WATER = 27,
BACNET_RELATIONSHIP_SUPPLIES_STEAM = 28, BACNET_RELATIONSHIP_SUPPLIES_STEAM = 28,
BACNET_RELATIONSHIP_RECEIVES_STEAM = 29, BACNET_RELATIONSHIP_RECEIVES_STEAM = 29,
BACNET_RELATIONSHIP_RESERVED_MIN = 30,
BACNET_RELATIONSHIP_RESERVED_MAX = 1023, BACNET_RELATIONSHIP_RESERVED_MAX = 1023,
BACNET_RELATIONSHIP_PROPRIETARY_MIN = 1024, BACNET_RELATIONSHIP_PROPRIETARY_MIN = 1024,
BACNET_RELATIONSHIP_PROPRIETARY_MAX = 65535 BACNET_RELATIONSHIP_PROPRIETARY_MAX = 65535
@@ -2309,12 +2373,22 @@ typedef enum BACnetLightingOperation {
BACNET_LIGHTS_WARN_OFF = 8, BACNET_LIGHTS_WARN_OFF = 8,
BACNET_LIGHTS_WARN_RELINQUISH = 9, BACNET_LIGHTS_WARN_RELINQUISH = 9,
BACNET_LIGHTS_STOP = 10, BACNET_LIGHTS_STOP = 10,
MAX_BACNET_LIGHTING_OPERATION = 11, #if (BACNET_PROTOCOL_REVISION >= 28)
/* Addendum cj to ANSI/ASHRAE Standard 135-2020 */
BACNET_LIGHTS_RESTORE_ON = 11,
BACNET_LIGHTS_DEFAULT_ON = 12,
BACNET_LIGHTS_TOGGLE_RESTORE = 13,
BACNET_LIGHTS_TOGGLE_DEFAULT = 14,
BACNET_LIGHTS_RESERVED_MIN = 15,
#else
BACNET_LIGHTS_RESERVED_MIN = 11,
#endif
BACNET_LIGHTS_RESERVED_MAX = 63,
/* Enumerated values 0-255 are reserved for definition by ASHRAE. /* Enumerated values 0-255 are reserved for definition by ASHRAE.
Enumerated values 256-65535 may be used by others subject to Enumerated values 256-65535 may be used by others subject to
the procedures and constraints described in Clause 23 */ the procedures and constraints described in Clause 23 */
BACNET_LIGHTS_PROPRIETARY_FIRST = 256, BACNET_LIGHTS_PROPRIETARY_MIN = 256,
BACNET_LIGHTS_PROPRIETARY_LAST = 65535 BACNET_LIGHTS_PROPRIETARY_MAX = 65535
} BACNET_LIGHTING_OPERATION; } BACNET_LIGHTING_OPERATION;
typedef enum BACnetLightingInProgress { typedef enum BACnetLightingInProgress {
@@ -2334,8 +2408,10 @@ typedef enum BACnetLightingTransition {
/* Enumerated values 0-63 are reserved for definition by ASHRAE. /* Enumerated values 0-63 are reserved for definition by ASHRAE.
Enumerated values 64-255 may be used by others subject to Enumerated values 64-255 may be used by others subject to
the procedures and constraints described in Clause 23. */ the procedures and constraints described in Clause 23. */
BACNET_LIGHTING_TRANSITION_PROPRIETARY_FIRST = 64, BACNET_LIGHTING_TRANSITION_RESERVED_MIN = 3,
BACNET_LIGHTING_TRANSITION_PROPRIETARY_LAST = 255 BACNET_LIGHTING_TRANSITION_RESERVED_MAX = 63,
BACNET_LIGHTING_TRANSITION_PROPRIETARY_MIN = 64,
BACNET_LIGHTING_TRANSITION_PROPRIETARY_MAX = 255
} BACNET_LIGHTING_TRANSITION; } BACNET_LIGHTING_TRANSITION;
typedef enum BACnetBinaryLightingPV { typedef enum BACnetBinaryLightingPV {
@@ -2345,7 +2421,8 @@ typedef enum BACnetBinaryLightingPV {
BINARY_LIGHTING_PV_WARN_OFF = 3, BINARY_LIGHTING_PV_WARN_OFF = 3,
BINARY_LIGHTING_PV_WARN_RELINQUISH = 4, BINARY_LIGHTING_PV_WARN_RELINQUISH = 4,
BINARY_LIGHTING_PV_STOP = 5, BINARY_LIGHTING_PV_STOP = 5,
BINARY_LIGHTING_PV_MAX = 6, BINARY_LIGHTING_PV_TOGGLE = 6,
BINARY_LIGHTING_PV_MAX = 7,
/* -- Enumerated values 0-63 are reserved for definition by ASHRAE. /* -- Enumerated values 0-63 are reserved for definition by ASHRAE.
-- Enumerated values 64-255 may be used by others -- Enumerated values 64-255 may be used by others
-- subject to the procedures and constraints described in Clause 23. */ -- subject to the procedures and constraints described in Clause 23. */
@@ -2409,7 +2486,7 @@ typedef enum BACnetEventTransitionMask {
/* Access Enumerations */ /* Access Enumerations */
/* Door Alarm State */ /* Door Alarm State */
typedef enum { typedef enum BACnetDoorAlarmState {
DOOR_ALARM_STATE_NORMAL = 0, DOOR_ALARM_STATE_NORMAL = 0,
DOOR_ALARM_STATE_ALARM = 1, DOOR_ALARM_STATE_ALARM = 1,
DOOR_ALARM_STATE_DOOR_OPEN_TOO_LONG = 2, DOOR_ALARM_STATE_DOOR_OPEN_TOO_LONG = 2,
@@ -2419,17 +2496,20 @@ typedef enum {
DOOR_ALARM_STATE_LOCK_DOWN = 6, DOOR_ALARM_STATE_LOCK_DOWN = 6,
DOOR_ALARM_STATE_FREE_ACCESS = 7, DOOR_ALARM_STATE_FREE_ACCESS = 7,
DOOR_ALARM_STATE_EGRESS_OPEN = 8 DOOR_ALARM_STATE_EGRESS_OPEN = 8
/* 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_DOOR_ALARM_STATE; } BACNET_DOOR_ALARM_STATE;
/* Door Secured Status */ /* Door Secured Status */
typedef enum { typedef enum BACnetDoorSecuredStatus {
DOOR_SECURED_STATUS_SECURED = 0, DOOR_SECURED_STATUS_SECURED = 0,
DOOR_SECURED_STATUS_UNSECURED = 1, DOOR_SECURED_STATUS_UNSECURED = 1,
DOOR_SECURED_STATUS_UNKNOWN = 2 DOOR_SECURED_STATUS_UNKNOWN = 2
} BACNET_DOOR_SECURED_STATUS; } BACNET_DOOR_SECURED_STATUS;
/* Door Status */ /* Door Status */
typedef enum { typedef enum BACnetDoorStatus {
DOOR_STATUS_CLOSED = 0, DOOR_STATUS_CLOSED = 0,
DOOR_STATUS_OPENED = 1, DOOR_STATUS_OPENED = 1,
DOOR_STATUS_UNKNOWN = 2, DOOR_STATUS_UNKNOWN = 2,
@@ -2440,10 +2520,13 @@ typedef enum {
DOOR_STATUS_OPENING = 7, DOOR_STATUS_OPENING = 7,
DOOR_STATUS_SAFETY_LOCKED = 8, DOOR_STATUS_SAFETY_LOCKED = 8,
DOOR_STATUS_LIMITED_OPENED = 9 DOOR_STATUS_LIMITED_OPENED = 9
/* Enumerated values 0-1023 are reserved for definition by ASHRAE.
Enumerated values 1024-65535 may be used by others subject to
the procedures and constraints described in Clause 23. */
} BACNET_DOOR_STATUS; } BACNET_DOOR_STATUS;
/* Door Value */ /* Door Value */
typedef enum { typedef enum BACnetDoorValue {
DOOR_VALUE_LOCK = 0, DOOR_VALUE_LOCK = 0,
DOOR_VALUE_UNLOCK = 1, DOOR_VALUE_UNLOCK = 1,
DOOR_VALUE_PULSE_UNLOCK = 2, DOOR_VALUE_PULSE_UNLOCK = 2,
@@ -2451,7 +2534,7 @@ typedef enum {
} BACNET_DOOR_VALUE; } BACNET_DOOR_VALUE;
/* Lock Status */ /* Lock Status */
typedef enum { typedef enum BACnetLockStatus {
LOCK_STATUS_LOCKED = 0, LOCK_STATUS_LOCKED = 0,
LOCK_STATUS_UNLOCKED = 1, LOCK_STATUS_UNLOCKED = 1,
LOCK_STATUS_LOCK_FAULT = 2, LOCK_STATUS_LOCK_FAULT = 2,
@@ -2460,7 +2543,7 @@ typedef enum {
} BACNET_LOCK_STATUS; } BACNET_LOCK_STATUS;
/* Access Event */ /* Access Event */
typedef enum { typedef enum BACnetAccessEvent {
ACCESS_EVENT_NONE = 0, ACCESS_EVENT_NONE = 0,
ACCESS_EVENT_GRANTED = 1, ACCESS_EVENT_GRANTED = 1,
ACCESS_EVENT_MUSTER = 2, ACCESS_EVENT_MUSTER = 2,
@@ -2515,10 +2598,13 @@ typedef enum {
ACCESS_EVENT_DENIED_VERIFICATION_FAILED = 162, ACCESS_EVENT_DENIED_VERIFICATION_FAILED = 162,
ACCESS_EVENT_DENIED_VERIFICATION_TIMEOUT = 163, ACCESS_EVENT_DENIED_VERIFICATION_TIMEOUT = 163,
ACCESS_EVENT_DENIED_OTHER = 164 ACCESS_EVENT_DENIED_OTHER = 164
/* Enumerated values 0-511 are reserved for definition by ASHRAE.
Enumerated values 512-65535 may be used by others subject to
the procedures and constraints described in Clause 23. */
} BACNET_ACCESS_EVENT; } BACNET_ACCESS_EVENT;
/* Authentication Status */ /* Authentication Status */
typedef enum { typedef enum BACnetAuthenticationStatus {
AUTHENTICATION_STATUS_NOT_READY = 0, AUTHENTICATION_STATUS_NOT_READY = 0,
AUTHENTICATION_STATUS_READY = 1, AUTHENTICATION_STATUS_READY = 1,
AUTHENTICATION_STATUS_DISABLED = 2, AUTHENTICATION_STATUS_DISABLED = 2,
@@ -2529,17 +2615,20 @@ typedef enum {
} BACNET_AUTHENTICATION_STATUS; } BACNET_AUTHENTICATION_STATUS;
/* Authorization Mode */ /* Authorization Mode */
typedef enum { typedef enum BACnetAuthorizationMode {
AUTHORIZATION_MODE_AUTHORIZE = 0, AUTHORIZATION_MODE_AUTHORIZE = 0,
AUTHORIZATION_MODE_GRANT_ACTIVE = 1, AUTHORIZATION_MODE_GRANT_ACTIVE = 1,
AUTHORIZATION_MODE_DENY_ALL = 2, AUTHORIZATION_MODE_DENY_ALL = 2,
AUTHORIZATION_MODE_VERIFICATION_REQUIRED = 3, AUTHORIZATION_MODE_VERIFICATION_REQUIRED = 3,
AUTHORIZATION_MODE_AUTHORIZATION_DELAYED = 4, AUTHORIZATION_MODE_AUTHORIZATION_DELAYED = 4,
AUTHORIZATION_MODE_NONE = 5 AUTHORIZATION_MODE_NONE = 5
/* 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_AUTHORIZATION_MODE; } BACNET_AUTHORIZATION_MODE;
/* Access Passback Mode */ /* Access Passback Mode */
typedef enum { typedef enum BACnetAccessPassbackMode {
ACCESS_PASSBACK_MODE_PASSBACK_OFF = 0, ACCESS_PASSBACK_MODE_PASSBACK_OFF = 0,
ACCESS_PASSBACK_MODE_HARD_PASSBACK = 1, ACCESS_PASSBACK_MODE_HARD_PASSBACK = 1,
ACCESS_PASSBACK_MODE_SOFT_PASSBACK = 2 ACCESS_PASSBACK_MODE_SOFT_PASSBACK = 2
@@ -2562,14 +2651,18 @@ typedef enum BACnetAccessZoneOccupancyState {
} BACNET_ACCESS_ZONE_OCCUPANCY_STATE; } BACNET_ACCESS_ZONE_OCCUPANCY_STATE;
/* Access User Type */ /* Access User Type */
typedef enum { typedef enum BACnetAccessUserType {
ACCESS_USER_TYPE_ASSET = 0, ACCESS_USER_TYPE_ASSET = 0,
ACCESS_USER_TYPE_GROUP = 1, ACCESS_USER_TYPE_GROUP = 1,
ACCESS_USER_TYPE_PERSON = 2 ACCESS_USER_TYPE_PERSON = 2
/* 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_USER_TYPE; } BACNET_ACCESS_USER_TYPE;
/* Access Authentication Factor Disable */ /* Access Authentication Factor Disable */
typedef enum { typedef enum BACnetAccessAuthenticationFactorDisable {
ACCESS_AUTHENTICATION_FACTOR_DISABLE_NONE = 0, ACCESS_AUTHENTICATION_FACTOR_DISABLE_NONE = 0,
ACCESS_AUTHENTICATION_FACTOR_DISABLE_DISABLED = 1, ACCESS_AUTHENTICATION_FACTOR_DISABLE_DISABLED = 1,
ACCESS_AUTHENTICATION_FACTOR_DISABLE_DISABLED_LOST = 2, ACCESS_AUTHENTICATION_FACTOR_DISABLE_DISABLED_LOST = 2,
@@ -2577,10 +2670,13 @@ typedef enum {
ACCESS_AUTHENTICATION_FACTOR_DISABLE_DISABLED_DAMAGED = 4, ACCESS_AUTHENTICATION_FACTOR_DISABLE_DISABLED_DAMAGED = 4,
ACCESS_AUTHENTICATION_FACTOR_DISABLE_DISABLED_DESTROYED = 5, ACCESS_AUTHENTICATION_FACTOR_DISABLE_DISABLED_DESTROYED = 5,
ACCESS_AUTHENTICATION_FACTOR_DISABLE_MAX = 6 ACCESS_AUTHENTICATION_FACTOR_DISABLE_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_ACCESS_AUTHENTICATION_FACTOR_DISABLE; } BACNET_ACCESS_AUTHENTICATION_FACTOR_DISABLE;
/* Authorization Exemption */ /* Authorization Exemption */
typedef enum { typedef enum BACnetAuthorizationExemption {
AUTHORIZATION_EXEMPTION_PASSBACK = 0, AUTHORIZATION_EXEMPTION_PASSBACK = 0,
AUTHORIZATION_EXEMPTION_OCCUPANCY_CHECK = 1, AUTHORIZATION_EXEMPTION_OCCUPANCY_CHECK = 1,
AUTHORIZATION_EXEMPTION_ACCESS_RIGHTS = 2, AUTHORIZATION_EXEMPTION_ACCESS_RIGHTS = 2,
@@ -2588,6 +2684,9 @@ typedef enum {
AUTHORIZATION_EXEMPTION_DENY = 4, AUTHORIZATION_EXEMPTION_DENY = 4,
AUTHORIZATION_EXEMPTION_VERIFICATION = 5, AUTHORIZATION_EXEMPTION_VERIFICATION = 5,
AUTHORIZATION_EXEMPTION_AUTHORIZATION_DELAY = 6 AUTHORIZATION_EXEMPTION_AUTHORIZATION_DELAY = 6
/* 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_AUTHORIZATION_EXEMPTION; } BACNET_AUTHORIZATION_EXEMPTION;
/* The Network Reject Reasons for NETWORK_MESSAGE_REJECT_MESSAGE_TO_NETWORK */ /* The Network Reject Reasons for NETWORK_MESSAGE_REJECT_MESSAGE_TO_NETWORK */
@@ -2610,8 +2709,7 @@ typedef enum BACnetWriteStatus {
BACNET_WRITE_STATUS_FAILED = 3 BACNET_WRITE_STATUS_FAILED = 3
} BACNET_WRITE_STATUS; } BACNET_WRITE_STATUS;
/* BACnetNetworkType ::= ENUMERATED */ typedef enum BACnetNetworkType {
typedef enum {
PORT_TYPE_ETHERNET = 0, PORT_TYPE_ETHERNET = 0,
PORT_TYPE_ARCNET = 1, PORT_TYPE_ARCNET = 1,
PORT_TYPE_MSTP = 2, PORT_TYPE_MSTP = 2,
@@ -2632,29 +2730,27 @@ typedef enum {
/* Enumerated values 0-63 are reserved for definition by ASHRAE. /* Enumerated values 0-63 are reserved for definition by ASHRAE.
Enumerated values 64-255 may be used by others subject to the Enumerated values 64-255 may be used by others subject to the
procedures and constraints described in Clause 23. */ procedures and constraints described in Clause 23. */
PORT_TYPE_RESERVED_FIRST = 12, PORT_TYPE_RESERVED_MIN = 12,
PORT_TYPE_RESERVED_LAST = 63, PORT_TYPE_RESERVED_MAX = 63,
PORT_TYPE_PROPRIETARY_FIRST = 64, PORT_TYPE_PROPRIETARY_MIN = 64,
/* For BACnet/SC network port implementations with /* For BACnet/SC network port implementations with
a protocol revision Protocol_Revision 17 and higher through 23, a protocol revision Protocol_Revision 17 and higher through 23,
BACnet/SC network ports shall be represented by a Network Port BACnet/SC network ports shall be represented by a Network Port
object at the BACNET_APPLICATION protocol level with object at the BACNET_APPLICATION protocol level with
a proprietary network type value. */ a proprietary network type value. */
PORT_TYPE_BSC_INTERIM = 64, PORT_TYPE_BSC_INTERIM = 64,
PORT_TYPE_PROPRIETARY_LAST = 255, PORT_TYPE_PROPRIETARY_MAX = 255,
PORT_TYPE_MAX = 255 PORT_TYPE_MAX = 255
} BACNET_PORT_TYPE; } BACNET_PORT_TYPE;
/* BACnetNetworkNumberQuality ::= ENUMERATED */ typedef enum BACnetNetworkNumberQuality {
typedef enum {
PORT_QUALITY_UNKNOWN = 0, PORT_QUALITY_UNKNOWN = 0,
PORT_QUALITY_LEARNED = 1, PORT_QUALITY_LEARNED = 1,
PORT_QUALITY_LEARNED_CONFIGURED = 2, PORT_QUALITY_LEARNED_CONFIGURED = 2,
PORT_QUALITY_CONFIGURED = 3 PORT_QUALITY_CONFIGURED = 3
} BACNET_PORT_QUALITY; } BACNET_PORT_QUALITY;
/* BACnetNetworkPortCommand :: = ENUMERATED */ typedef enum BACnetNetworkPortCommand {
typedef enum {
PORT_COMMAND_IDLE = 0, PORT_COMMAND_IDLE = 0,
PORT_COMMAND_DISCARD_CHANGES = 1, PORT_COMMAND_DISCARD_CHANGES = 1,
PORT_COMMAND_RENEW_FD_REGISTRATION = 2, PORT_COMMAND_RENEW_FD_REGISTRATION = 2,
@@ -2663,15 +2759,16 @@ typedef enum {
PORT_COMMAND_RESTART_AUTONEGOTIATION = 5, PORT_COMMAND_RESTART_AUTONEGOTIATION = 5,
PORT_COMMAND_DISCONNECT = 6, PORT_COMMAND_DISCONNECT = 6,
PORT_COMMAND_RESTART_PORT = 7, PORT_COMMAND_RESTART_PORT = 7,
PORT_COMMAND_GENERATE_CSR_FILE = 8, PORT_COMMAND_RESTART_DISCOVERY = 8,
PORT_COMMAND_VALIDATE_CHANGES = 9, PORT_COMMAND_GENERATE_CSR_FILE = 9,
PORT_COMMAND_RESERVED_FIRST = 10, PORT_COMMAND_VALIDATE_CHANGES = 10,
PORT_COMMAND_RESERVED_LAST = 127, PORT_COMMAND_RESERVED_MIN = 11,
PORT_COMMAND_RESERVED_MAX = 127,
/* Enumerated values 0-127 are reserved for definition by ASHRAE. /* Enumerated values 0-127 are reserved for definition by ASHRAE.
Enumerated values 128-255 may be used by others subject to the Enumerated values 128-255 may be used by others subject to the
procedures and constraints described in Clause 23. */ procedures and constraints described in Clause 23. */
PORT_COMMAND_PROPRIETARY_FIRST = 128, PORT_COMMAND_PROPRIETARY_MIN = 128,
PORT_COMMAND_PROPRIETARY_LAST = 255, PORT_COMMAND_PROPRIETARY_MAX = 255,
PORT_COMMAND_MAX = 255 PORT_COMMAND_MAX = 255
} BACNET_PORT_COMMAND; } BACNET_PORT_COMMAND;
@@ -2740,7 +2837,7 @@ typedef enum {
SEC_RESP_UNKNOWN_SOURCE_MESSAGE = 25 SEC_RESP_UNKNOWN_SOURCE_MESSAGE = 25
} BACNET_SECURITY_RESPONSE_CODE; } BACNET_SECURITY_RESPONSE_CODE;
typedef enum { typedef enum BACnetAccessCredentialDisable {
ACCESS_CREDENTIAL_DISABLE_NONE = 0, ACCESS_CREDENTIAL_DISABLE_NONE = 0,
ACCESS_CREDENTIAL_DISABLE = 1, ACCESS_CREDENTIAL_DISABLE = 1,
ACCESS_CREDENTIAL_DISABLE_MANUAL = 2, ACCESS_CREDENTIAL_DISABLE_MANUAL = 2,
@@ -2751,7 +2848,7 @@ typedef enum {
the procedures and constraints described in Clause 23. */ the procedures and constraints described in Clause 23. */
} BACNET_ACCESS_CREDENTIAL_DISABLE; } BACNET_ACCESS_CREDENTIAL_DISABLE;
typedef enum { typedef enum BACnetAccessCredentialDisableReason {
CREDENTIAL_DISABLED = 0, CREDENTIAL_DISABLED = 0,
CREDENTIAL_DISABLED_NEEDS_PROVISIONING = 1, CREDENTIAL_DISABLED_NEEDS_PROVISIONING = 1,
CREDENTIAL_DISABLED_UNASSIGNED = 2, CREDENTIAL_DISABLED_UNASSIGNED = 2,
@@ -2781,7 +2878,7 @@ typedef enum {
the procedures and constraints described in Clause 23. */ the procedures and constraints described in Clause 23. */
} BACNET_AUTHENTICATION_DISABLE_REASON; } BACNET_AUTHENTICATION_DISABLE_REASON;
typedef enum { typedef enum BACnetAuthenticationFactorType {
AUTHENTICATION_FACTOR_UNDEFINED = 0, AUTHENTICATION_FACTOR_UNDEFINED = 0,
AUTHENTICATION_FACTOR_ERROR = 1, AUTHENTICATION_FACTOR_ERROR = 1,
AUTHENTICATION_FACTOR_CUSTOM = 2, AUTHENTICATION_FACTOR_CUSTOM = 2,
@@ -3045,4 +3142,61 @@ typedef enum BACnetSCConnectionState {
BACNET_SC_CONNECTION_STATE_MAX = 4 BACNET_SC_CONNECTION_STATE_MAX = 4
} BACNET_SC_CONNECTION_STATE; } BACNET_SC_CONNECTION_STATE;
typedef enum BACnetAuthenticationDecision {
BACNET_AUTHENTICATION_DECISION_ALLOW_MATCH = 0,
BACNET_AUTHENTICATION_DECISION_DENY_MISMATCH = 1,
BACNET_AUTHENTICATION_DECISION_DENY_NON_RELAY = 2
} BACNET_AUTHENTICATION_DECISION;
typedef enum BACnetAuthorizationPosture {
BACNET_AUTHORIZATION_POSTURE_OPEN = 0,
BACNET_AUTHORIZATION_POSTURE_PROPRIETARY = 1,
BACNET_AUTHORIZATION_POSTURE_CONFIGURED = 2,
BACNET_AUTHORIZATION_POSTURE_MISCONFIGURED_PARTIAL = 3,
BACNET_AUTHORIZATION_POSTURE_MISCONFIGURED_TOTAL = 4
} BACNET_AUTHORIZATION_POSTURE;
typedef enum BACnetFaultType {
BACNET_FAULT_TYPE_NONE = 0,
BACNET_FAULT_TYPE_CHARACTERSTRING = 1,
BACNET_FAULT_TYPE_EXTENDED = 2,
BACNET_FAULT_TYPE_LIFE_SAFETY = 3,
BACNET_FAULT_TYPE_STATE = 4,
BACNET_FAULT_TYPE_STATUS_FLAGS = 5,
BACNET_FAULT_TYPE_OUT_OF_RANGE = 6,
BACNET_FAULT_TYPE_LISTED = 7
} BACNET_FAULT_TYPE;
typedef enum BACnetPriorityFilter {
BACNET_PRIORITY_FILTER_MANUAL_LIFE_SAFETY = 0,
BACNET_PRIORITY_FILTER_AUTOMATIC_LIFE_SAFETY = 1,
BACNET_PRIORITY_FILTER_PRIORITY_3 = 2,
BACNET_PRIORITY_FILTER_PRIORITY_4 = 3,
BACNET_PRIORITY_FILTER_CRITICAL_EQUIPMENT_CONTROLS = 4,
BACNET_PRIORITY_FILTER_MINIMUM_ON_OFF = 5,
BACNET_PRIORITY_FILTER_PRIORITY_7 = 6,
BACNET_PRIORITY_FILTER_MANUAL_OPERATOR = 7,
BACNET_PRIORITY_FILTER_PRIORITY_9 = 8,
BACNET_PRIORITY_FILTER_PRIORITY_10 = 9,
BACNET_PRIORITY_FILTER_PRIORITY_11 = 10,
BACNET_PRIORITY_FILTER_PRIORITY_12 = 11,
BACNET_PRIORITY_FILTER_PRIORITY_13 = 12,
BACNET_PRIORITY_FILTER_PRIORITY_14 = 13,
BACNET_PRIORITY_FILTER_PRIORITY_15 = 14,
BACNET_PRIORITY_FILTER_PRIORITY_16 = 15,
BACNET_PRIORITY_FILTER_PRIORITY_MAX = 16
} BACNET_PRIORITY_FILTER;
typedef enum BACnetResultFlags {
RESULT_FLAG_FIRST_ITEM = 0,
RESULT_FLAG_LAST_ITEM = 1,
RESULT_FLAG_MORE_ITEMS = 2
} BACNET_RESULT_FLAGS;
typedef enum BACnetSuccessFilter {
BACNET_SUCCESS_FILTER_ALL = 0,
BACNET_SUCCESS_FILTER_SUCCESS_ONLY = 1,
BACNET_SUCCESS_FILTER_FAILURES_ONLY = 2
} BACNET_SUCCESS_FILTER;
#endif /* end of BACENUM_H */ #endif /* end of BACENUM_H */
+310 -8
View File
@@ -147,6 +147,8 @@ INDTEXT_DATA bacnet_application_tag_names[] = {
{ BACNET_APPLICATION_TAG_ACTION_COMMAND, "BACnetActionCommand" }, { BACNET_APPLICATION_TAG_ACTION_COMMAND, "BACnetActionCommand" },
{ BACNET_APPLICATION_TAG_SCALE, "BACnetScale" }, { BACNET_APPLICATION_TAG_SCALE, "BACnetScale" },
{ BACNET_APPLICATION_TAG_SHED_LEVEL, "BACnetShedLevel" }, { BACNET_APPLICATION_TAG_SHED_LEVEL, "BACnetShedLevel" },
{ BACNET_APPLICATION_TAG_ACCESS_RULE, "BACnetAccessRule" },
{ BACNET_APPLICATION_TAG_CHANNEL_VALUE, "BACnetChannelValue" },
{ 0, NULL } { 0, NULL }
}; };
@@ -789,6 +791,18 @@ INDTEXT_DATA bacnet_property_names[] = {
{ PROP_HIGH_END_TRIM, "high-end-trim" }, { PROP_HIGH_END_TRIM, "high-end-trim" },
{ PROP_LOW_END_TRIM, "low-end-trim" }, { PROP_LOW_END_TRIM, "low-end-trim" },
{ PROP_TRIM_FADE_TIME, "trim-fade-time" }, { PROP_TRIM_FADE_TIME, "trim-fade-time" },
{ PROP_DEVICE_ADDRESS_PROXY_ENABLE, "device-address-proxy-enable" },
{ PROP_DEVICE_ADDRESS_PROXY_TABLE, "device-address-proxy-table" },
{ PROP_DEVICE_ADDRESS_PROXY_TIMEOUT, "device-address-proxy-timeout" },
{ PROP_DEFAULT_ON_VALUE, "default-on-value" },
{ PROP_LAST_ON_VALUE, "last-on-value" },
{ PROP_AUTHORIZATION_CACHE, "authorization-cache" },
{ PROP_AUTHORIZATION_GROUPS, "authorization-groups" },
{ PROP_AUTHORIZATION_POLICY, "authorization-policy" },
{ PROP_AUTHORIZATION_SCOPE, "authorization-scope" },
{ PROP_AUTHORIZATION_SERVER, "authorization-server" },
{ PROP_AUTHORIZATION_STATUS, "authorization-status" },
{ PROP_MAX_PROXIED_I_AMS_PER_SECOND, "max-proxied-i-ams-per-second" },
{ 0, NULL } { 0, NULL }
}; };
@@ -1269,6 +1283,21 @@ INDTEXT_DATA bacnet_engineering_unit_names[] = {
{ UNITS_SITE_UNIT8, "site-unit8" }, { UNITS_SITE_UNIT8, "site-unit8" },
{ UNITS_SITE_UNIT9, "site-unit9" }, { UNITS_SITE_UNIT9, "site-unit9" },
{ UNITS_SITE_UNIT10, "site-unit10" }, { UNITS_SITE_UNIT10, "site-unit10" },
{ UNITS_GRAINS_OF_WATER_PER_POUND_DRY_AIR,
"grains-of-water-per-pound-dry-air" },
{ UNITS_DEGREE_HOURS_CELSIUS, "degree-hours-celsius" },
{ UNITS_DEGREE_HOURS_FAHRENHEIT, "degree-hours-fahrenheit" },
{ UNITS_DEGREE_MINUTES_CELSIUS, "degree-minutes-celsius" },
{ UNITS_DEGREE_MINUTES_FAHRENHEIT, "degree-minutes-fahrenheit" },
{ UNITS_DEGREE_SECONDS_CELSIUS, "degree-seconds-celsius" },
{ UNITS_DEGREE_SECONDS_FAHRENHEIT, "degree-seconds-fahrenheit" },
{ UNITS_MICROSECONDS, "microseconds" },
{ UNITS_NANOSECONDS, "nanoseconds" },
{ UNITS_PICOSECONDS, "picoseconds" },
{ UNITS_PARTICLES_PER_CUBIC_FOOT, "particles-per-cubic-foot" },
{ UNITS_PARTICLES_PER_CUBIC_METER, "particles-per-cubic-meter" },
{ UNITS_PICOCURIES_PER_LITER, "picocuries-per-liter" },
{ UNITS_BECQUERELS_PER_CUBIC_METER, "becquerels-per-cubic-meter" },
{ 0, NULL } { 0, NULL }
/* Enumerated values 0-255 and 47808-49999 are reserved for definition by /* 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 ASHRAE. Enumerated values 256-47807 and 50000-65535 may be used by others
@@ -1741,8 +1770,9 @@ INDTEXT_DATA bacnet_event_state_names[] = {
{ EVENT_STATE_NORMAL, "normal" }, { EVENT_STATE_NORMAL, "normal" },
{ EVENT_STATE_FAULT, "fault" }, { EVENT_STATE_FAULT, "fault" },
{ EVENT_STATE_OFFNORMAL, "offnormal" }, { EVENT_STATE_OFFNORMAL, "offnormal" },
{ EVENT_STATE_HIGH_LIMIT, "high limit" }, { EVENT_STATE_HIGH_LIMIT, "high-limit" },
{ EVENT_STATE_LOW_LIMIT, "low limit" }, { EVENT_STATE_LOW_LIMIT, "low-limit" },
{ EVENT_STATE_LIFE_SAFETY_ALARM, "life-safety-alarm" },
{ 0, NULL } { 0, NULL }
}; };
@@ -1952,6 +1982,70 @@ const char *bactext_network_layer_msg_name(unsigned index)
} }
} }
INDTEXT_DATA bactext_life_safety_mode_names[] = {
{ LIFE_SAFETY_MODE_OFF, "off" },
{ LIFE_SAFETY_MODE_ON, "on" },
{ LIFE_SAFETY_MODE_TEST, "test" },
{ LIFE_SAFETY_MODE_MANNED, "manned" },
{ LIFE_SAFETY_MODE_UNMANNED, "unmanned" },
{ LIFE_SAFETY_MODE_ARMED, "armed" },
{ LIFE_SAFETY_MODE_DISARMED, "disarmed" },
{ LIFE_SAFETY_MODE_PREARMED, "prearmed" },
{ LIFE_SAFETY_MODE_SLOW, "slow" },
{ LIFE_SAFETY_MODE_FAST, "fast" },
{ LIFE_SAFETY_MODE_DISCONNECTED, "disconnected" },
{ LIFE_SAFETY_MODE_ENABLED, "enabled" },
{ LIFE_SAFETY_MODE_DISABLED, "disabled" },
{ LIFE_SAFETY_MODE_AUTOMATIC_RELEASE_DISABLED,
"automatic-release-disabled" },
{ LIFE_SAFETY_MODE_DEFAULT, "default" },
{ LIFE_SAFETY_MODE_ACTIVATED_OEO_ALARM, "activated-oeo-alarm" },
{ LIFE_SAFETY_MODE_ACTIVATED_OEO_EVACUATE, "activated-oeo-evactuate" },
{ LIFE_SAFETY_MODE_ACTIVATED_OEO_PHASE1_RECALL,
"activated-oeo-phase1-recall" },
{ LIFE_SAFETY_MODE_ACTIVATED_OEO_UNAVAILABLE, "activated-oeo-unavailable" },
{ LIFE_SAFETY_MODE_DEACTIVATED, "deactivated" },
{ 0, NULL }
};
const char *bactext_life_safety_mode_name(unsigned index)
{
if (index < LIFE_SAFETY_MODE_PROPRIETARY_MIN) {
return indtext_by_index_default(
bactext_life_safety_mode_names, index, ASHRAE_Reserved_String);
} else if (index <= LIFE_SAFETY_MODE_PROPRIETARY_MAX) {
return Vendor_Proprietary_String;
} else {
return "Invalid BACnetLifeSafetyMode";
}
}
INDTEXT_DATA bactext_life_safety_operation_names[] = {
{ LIFE_SAFETY_OP_NONE, "none" },
{ LIFE_SAFETY_OP_SILENCE, "silence" },
{ LIFE_SAFETY_OP_SILENCE_AUDIBLE, "silence-audible" },
{ LIFE_SAFETY_OP_SILENCE_VISUAL, "silence-visual" },
{ LIFE_SAFETY_OP_RESET, "reset" },
{ LIFE_SAFETY_OP_RESET_ALARM, "reset-alarm" },
{ LIFE_SAFETY_OP_RESET_FAULT, "reset-fault" },
{ LIFE_SAFETY_OP_UNSILENCE, "unsilence" },
{ LIFE_SAFETY_OP_UNSILENCE_AUDIBLE, "unsilence-audible" },
{ LIFE_SAFETY_OP_UNSILENCE_VISUAL, "unsilence-visual" },
{ 0, NULL }
};
const char *bactext_life_safety_operation_name(unsigned index)
{
if (index < LIFE_SAFETY_OP_PROPRIETARY_MIN) {
return indtext_by_index_default(
bactext_life_safety_operation_names, index, ASHRAE_Reserved_String);
} else if (index <= LIFE_SAFETY_OP_PROPRIETARY_MAX) {
return Vendor_Proprietary_String;
} else {
return "Invalid BACnetLifeSafetyOperation";
}
}
INDTEXT_DATA life_safety_state_names[] = { INDTEXT_DATA life_safety_state_names[] = {
{ LIFE_SAFETY_STATE_QUIET, "quiet" }, { LIFE_SAFETY_STATE_QUIET, "quiet" },
{ LIFE_SAFETY_STATE_PRE_ALARM, "pre-alarm" }, { LIFE_SAFETY_STATE_PRE_ALARM, "pre-alarm" },
@@ -1977,14 +2071,27 @@ INDTEXT_DATA life_safety_state_names[] = {
{ LIFE_SAFETY_STATE_GENERAL_ALARM, "general-alarm" }, { LIFE_SAFETY_STATE_GENERAL_ALARM, "general-alarm" },
{ LIFE_SAFETY_STATE_SUPERVISORY, "supervisory" }, { LIFE_SAFETY_STATE_SUPERVISORY, "supervisory" },
{ LIFE_SAFETY_STATE_TEST_SUPERVISORY, "test-supervisory" }, { LIFE_SAFETY_STATE_TEST_SUPERVISORY, "test-supervisory" },
{ LIFE_SAFETY_STATE_NON_DEFAULT_MODE, "non-default-mode" },
{ LIFE_SAFETY_STATE_OEO_UNAVAILABLE, "oeo-unavailable" },
{ LIFE_SAFETY_STATE_OEO_ALARM, "oeo-alarm" },
{ LIFE_SAFETY_STATE_OEO_PHASE1_RECALL, "oeo-phase1-recall" },
{ LIFE_SAFETY_STATE_OEO_EVACUATE, "oeo-evacuate" },
{ LIFE_SAFETY_STATE_OEO_UNAFFECTED, "oeo-unaffected" },
{ LIFE_SAFETY_STATE_TEST_OEO_UNAVAILABLE, "test-oeo-unavailable" },
{ LIFE_SAFETY_STATE_TEST_OEO_ALARM, "test-oeo-alarm" },
{ LIFE_SAFETY_STATE_TEST_OEO_PHASE1_RECALL, "test-oeo-phase1-recall" },
{ LIFE_SAFETY_STATE_TEST_OEO_EVACUATE, "test-oeo-evacuate" },
{ LIFE_SAFETY_STATE_TEST_OEO_UNAFFECTED, "test-oeo-unaffected" },
{ 0, NULL } { 0, NULL }
}; };
const char *bactext_life_safety_state_name(unsigned index) const char *bactext_life_safety_state_name(unsigned index)
{ {
if (index < MAX_LIFE_SAFETY_STATE) { if (index < LIFE_SAFETY_STATE_PROPRIETARY_MIN) {
return indtext_by_index_default( return indtext_by_index_default(
life_safety_state_names, index, ASHRAE_Reserved_String); life_safety_state_names, index, ASHRAE_Reserved_String);
} else if (index <= LIFE_SAFETY_STATE_PROPRIETARY_MAX) {
return Vendor_Proprietary_String;
} else { } else {
return "Invalid BACnetLifeSafetyState"; return "Invalid BACnetLifeSafetyState";
} }
@@ -2019,10 +2126,10 @@ INDTEXT_DATA lighting_transition[] = {
const char *bactext_lighting_transition(unsigned index) const char *bactext_lighting_transition(unsigned index)
{ {
if (index < BACNET_LIGHTING_TRANSITION_PROPRIETARY_FIRST) { if (index < BACNET_LIGHTING_TRANSITION_PROPRIETARY_MIN) {
return indtext_by_index_default( return indtext_by_index_default(
lighting_transition, index, ASHRAE_Reserved_String); lighting_transition, index, ASHRAE_Reserved_String);
} else if (index <= BACNET_LIGHTING_TRANSITION_PROPRIETARY_LAST) { } else if (index <= BACNET_LIGHTING_TRANSITION_PROPRIETARY_MAX) {
return Vendor_Proprietary_String; return Vendor_Proprietary_String;
} else { } else {
return "Invalid BACnetLightingTransition"; return "Invalid BACnetLightingTransition";
@@ -2046,10 +2153,10 @@ INDTEXT_DATA bacnet_lighting_operation_names[] = {
const char *bactext_lighting_operation_name(unsigned index) const char *bactext_lighting_operation_name(unsigned index)
{ {
if (index < BACNET_LIGHTS_PROPRIETARY_FIRST) { if (index < BACNET_LIGHTS_PROPRIETARY_MIN) {
return indtext_by_index_default( return indtext_by_index_default(
bacnet_lighting_operation_names, index, ASHRAE_Reserved_String); bacnet_lighting_operation_names, index, ASHRAE_Reserved_String);
} else if (index <= BACNET_LIGHTS_PROPRIETARY_LAST) { } else if (index <= BACNET_LIGHTS_PROPRIETARY_MAX) {
return Vendor_Proprietary_String; return Vendor_Proprietary_String;
} else { } else {
return "Invalid BACnetLightingOperation"; return "Invalid BACnetLightingOperation";
@@ -2070,6 +2177,7 @@ INDTEXT_DATA bacnet_binary_lighting_pv_names[] = {
{ BINARY_LIGHTING_PV_WARN_OFF, "warn-off" }, { BINARY_LIGHTING_PV_WARN_OFF, "warn-off" },
{ BINARY_LIGHTING_PV_WARN_RELINQUISH, "warn-relinquish" }, { BINARY_LIGHTING_PV_WARN_RELINQUISH, "warn-relinquish" },
{ BINARY_LIGHTING_PV_STOP, "stop" }, { BINARY_LIGHTING_PV_STOP, "stop" },
{ BINARY_LIGHTING_PV_TOGGLE, "toggle" },
{ 0, NULL } { 0, NULL }
}; };
@@ -2149,7 +2257,6 @@ const char *bactext_shed_level_type_name(unsigned index)
bacnet_shed_level_type_names, index, ASHRAE_Reserved_String); bacnet_shed_level_type_names, index, ASHRAE_Reserved_String);
} }
/* note: different than DaysOfWeek bit string where 0=monday */
INDTEXT_DATA bacnet_log_datum_names[] = { INDTEXT_DATA bacnet_log_datum_names[] = {
{ BACNET_LOG_DATUM_STATUS, "status" }, { BACNET_LOG_DATUM_STATUS, "status" },
{ BACNET_LOG_DATUM_BOOLEAN, "boolean" }, { BACNET_LOG_DATUM_BOOLEAN, "boolean" },
@@ -2170,3 +2277,198 @@ const char *bactext_log_datum_name(unsigned index)
return indtext_by_index_default( return indtext_by_index_default(
bacnet_log_datum_names, index, ASHRAE_Reserved_String); bacnet_log_datum_names, index, ASHRAE_Reserved_String);
} }
INDTEXT_DATA bactext_restart_reason_names[] = {
{ RESTART_REASON_UNKNOWN, "unknown" },
{ RESTART_REASON_COLDSTART, "coldstart" },
{ RESTART_REASON_WARMSTART, "warmstart" },
{ RESTART_REASON_DETECTED_POWER_LOST, "detected-power-lost" },
{ RESTART_REASON_DETECTED_POWER_OFF, "detected-power-off" },
{ RESTART_REASON_HARDWARE_WATCHDOG, "hardware-watchdog" },
{ RESTART_REASON_SOFTWARE_WATCHDOG, "software-watchdog" },
{ RESTART_REASON_SUSPENDED, "suspended" },
{ RESTART_REASON_ACTIVATE_CHANGES, "activate-changes" },
{ 0, NULL }
};
const char *bactext_restart_reason_name(unsigned index)
{
if (index < RESTART_REASON_PROPRIETARY_MIN) {
return indtext_by_index_default(
bactext_restart_reason_names, index, ASHRAE_Reserved_String);
} else if (index <= RESTART_REASON_PROPRIETARY_MAX) {
return Vendor_Proprietary_String;
} else {
return "Invalid BACnetRestartReason";
}
}
INDTEXT_DATA bactext_network_port_type_names[] = {
{ PORT_TYPE_ETHERNET, "ethernet" },
{ PORT_TYPE_ARCNET, "arcnet" },
{ PORT_TYPE_MSTP, "mstp" },
{ PORT_TYPE_PTP, "ptp" },
{ PORT_TYPE_LONTALK, "lontalk" },
{ PORT_TYPE_BIP, "ipv4" },
{ PORT_TYPE_ZIGBEE, "zigbee" },
{ PORT_TYPE_VIRTUAL, "virtual" },
{ PORT_TYPE_NON_BACNET, "non-bacnet" },
{ PORT_TYPE_BIP6, "ipv6" },
{ PORT_TYPE_SERIAL, "serial" },
{ PORT_TYPE_BSC, "secure-connect" },
{ PORT_TYPE_BSC_INTERIM, "secure-connect-interim" },
{ 0, NULL }
};
const char *bactext_network_port_type_name(unsigned index)
{
if (index <= PORT_TYPE_PROPRIETARY_MIN) {
return indtext_by_index_default(
bactext_network_port_type_names, index, ASHRAE_Reserved_String);
} else if (index <= PORT_TYPE_PROPRIETARY_MAX) {
return Vendor_Proprietary_String;
} else {
return "Invalid BACnetNetworkType";
}
}
INDTEXT_DATA bactext_network_number_quality_names[] = {
{ PORT_QUALITY_UNKNOWN, "unknown" },
{ PORT_QUALITY_LEARNED, "learned" },
{ PORT_QUALITY_LEARNED_CONFIGURED, "learned-configured" },
{ PORT_QUALITY_CONFIGURED, "configured" },
{ 0, NULL }
};
const char *bactext_network_number_quality_name(unsigned index)
{
return indtext_by_index_default(
bactext_network_number_quality_names, index, ASHRAE_Reserved_String);
}
INDTEXT_DATA bactext_network_port_command_names[] = {
{ PORT_COMMAND_IDLE, "idle" },
{ PORT_COMMAND_DISCARD_CHANGES, "discard-changes" },
{ PORT_COMMAND_RENEW_FD_REGISTRATION, "renew-fd-registration" },
{ PORT_COMMAND_RESTART_SLAVE_DISCOVERY, "restart-slave-discovery" },
{ PORT_COMMAND_RENEW_DHCP, "renew-dhcp" },
{ PORT_COMMAND_RESTART_AUTONEGOTIATION, "restart-autonegotiation" },
{ PORT_COMMAND_DISCONNECT, "disconnect" },
{ PORT_COMMAND_RESTART_PORT, "restart-port" },
{ PORT_COMMAND_RESTART_DISCOVERY, "restart-discovery" },
{ PORT_COMMAND_GENERATE_CSR_FILE, "generate-csr-file" },
{ PORT_COMMAND_VALIDATE_CHANGES, "validate-changes" },
{ 0, NULL }
};
const char *bactext_network_port_command_name(unsigned index)
{
if (index < PORT_COMMAND_PROPRIETARY_MIN) {
return indtext_by_index_default(
bactext_network_port_command_names, index, ASHRAE_Reserved_String);
} else if (index <= PORT_COMMAND_PROPRIETARY_MAX) {
return Vendor_Proprietary_String;
} else {
return "Invalid BACnetNetworkPortCommand";
}
}
INDTEXT_DATA bactext_authentication_decision_names[] = {
{ BACNET_AUTHENTICATION_DECISION_ALLOW_MATCH, "allow-match" },
{ BACNET_AUTHENTICATION_DECISION_DENY_MISMATCH, "deny-mismatch" },
{ BACNET_AUTHENTICATION_DECISION_DENY_NON_RELAY, "deny-non-relay" },
{ 0, NULL }
};
const char *bactext_authentication_decision_name(unsigned index)
{
return indtext_by_index_default(
bactext_authentication_decision_names, index, ASHRAE_Reserved_String);
}
INDTEXT_DATA bactext_authorization_posture_names[] = {
{ BACNET_AUTHORIZATION_POSTURE_OPEN, "open" },
{ BACNET_AUTHORIZATION_POSTURE_PROPRIETARY, "proprietary" },
{ BACNET_AUTHORIZATION_POSTURE_CONFIGURED, "configured" },
{ BACNET_AUTHORIZATION_POSTURE_MISCONFIGURED_PARTIAL,
"misconfigured-partial" },
{ BACNET_AUTHORIZATION_POSTURE_MISCONFIGURED_TOTAL, "misconfigured-total" },
{ 0, NULL }
};
const char *bactext_authorization_posture_name(unsigned index)
{
return indtext_by_index_default(
bactext_authorization_posture_names, index, ASHRAE_Reserved_String);
}
INDTEXT_DATA bactext_fault_type_names[] = {
{ BACNET_FAULT_TYPE_NONE, "none" },
{ BACNET_FAULT_TYPE_CHARACTERSTRING, "characterstring" },
{ BACNET_FAULT_TYPE_EXTENDED, "extended" },
{ BACNET_FAULT_TYPE_LIFE_SAFETY, "life-safety" },
{ BACNET_FAULT_TYPE_STATE, "state" },
{ BACNET_FAULT_TYPE_STATUS_FLAGS, "status-flags" },
{ BACNET_FAULT_TYPE_OUT_OF_RANGE, "out-of-range" },
{ BACNET_FAULT_TYPE_LISTED, "listed" },
{ 0, NULL }
};
const char *bactext_fault_type_name(unsigned index)
{
return indtext_by_index_default(
bactext_fault_type_names, index, ASHRAE_Reserved_String);
}
INDTEXT_DATA bacnet_priority_filter_names[] = {
{ BACNET_PRIORITY_FILTER_MANUAL_LIFE_SAFETY, "manual-life-safety" },
{ BACNET_PRIORITY_FILTER_AUTOMATIC_LIFE_SAFETY, "automatic-life-safety" },
{ BACNET_PRIORITY_FILTER_PRIORITY_3, "priority-3" },
{ BACNET_PRIORITY_FILTER_PRIORITY_4, "priority-5" },
{ BACNET_PRIORITY_FILTER_CRITICAL_EQUIPMENT_CONTROLS,
"critical-equipment-controls" },
{ BACNET_PRIORITY_FILTER_MINIMUM_ON_OFF, "minimum-on-off" },
{ BACNET_PRIORITY_FILTER_PRIORITY_7, "priority-7" },
{ BACNET_PRIORITY_FILTER_MANUAL_OPERATOR, "manual-operator" },
{ BACNET_PRIORITY_FILTER_PRIORITY_9, "priority-9" },
{ BACNET_PRIORITY_FILTER_PRIORITY_10, "priority-10" },
{ BACNET_PRIORITY_FILTER_PRIORITY_11, "priority-11" },
{ BACNET_PRIORITY_FILTER_PRIORITY_12, "priority-12" },
{ BACNET_PRIORITY_FILTER_PRIORITY_13, "priority-13" },
{ BACNET_PRIORITY_FILTER_PRIORITY_14, "priority-14" },
{ BACNET_PRIORITY_FILTER_PRIORITY_15, "priority-15" },
{ BACNET_PRIORITY_FILTER_PRIORITY_16, "priority-16" },
{ 0, NULL }
};
const char *bacnet_priority_filter_name(unsigned index)
{
return indtext_by_index_default(
bacnet_priority_filter_names, index, ASHRAE_Reserved_String);
}
INDTEXT_DATA bactext_result_flags_names[] = {
{ RESULT_FLAG_FIRST_ITEM, "first-item" },
{ RESULT_FLAG_LAST_ITEM, "last-item" },
{ RESULT_FLAG_MORE_ITEMS, "more-items" },
{ 0, NULL }
};
const char *bactext_result_flags_name(unsigned index)
{
return indtext_by_index_default(
bactext_result_flags_names, index, ASHRAE_Reserved_String);
}
INDTEXT_DATA bactext_success_filter_names[] = {
{ BACNET_SUCCESS_FILTER_ALL, "all" },
{ BACNET_SUCCESS_FILTER_SUCCESS_ONLY, "success-only" },
{ BACNET_SUCCESS_FILTER_FAILURES_ONLY, "failures-only" },
{ 0, NULL }
};
const char *bactext_success_filter_name(unsigned index)
{
return indtext_by_index_default(
bactext_success_filter_names, index, ASHRAE_Reserved_String);
}
+27
View File
@@ -120,6 +120,10 @@ bool bactext_days_of_week_index(const char *search_name, unsigned *found_index);
BACNET_STACK_EXPORT BACNET_STACK_EXPORT
const char *bactext_network_layer_msg_name(unsigned index); const char *bactext_network_layer_msg_name(unsigned index);
BACNET_STACK_EXPORT
const char *bactext_life_safety_mode_name(unsigned index);
BACNET_STACK_EXPORT
const char *bactext_life_safety_operation_name(unsigned index);
BACNET_STACK_EXPORT BACNET_STACK_EXPORT
const char *bactext_life_safety_state_name(unsigned index); const char *bactext_life_safety_state_name(unsigned index);
@@ -158,6 +162,29 @@ const char *bactext_shed_level_type_name(unsigned index);
BACNET_STACK_EXPORT BACNET_STACK_EXPORT
const char *bactext_log_datum_name(unsigned index); const char *bactext_log_datum_name(unsigned index);
BACNET_STACK_EXPORT
const char *bactext_restart_reason_name(unsigned index);
BACNET_STACK_EXPORT
const char *bactext_network_port_type_name(unsigned index);
BACNET_STACK_EXPORT
const char *bactext_network_number_quality_name(unsigned index);
BACNET_STACK_EXPORT
const char *bactext_network_port_command_name(unsigned index);
BACNET_STACK_EXPORT
const char *bactext_authentication_decision_name(unsigned index);
BACNET_STACK_EXPORT
const char *bactext_authorization_posture_name(unsigned index);
BACNET_STACK_EXPORT
const char *bactext_fault_type_name(unsigned index);
BACNET_STACK_EXPORT
const char *bacnet_priority_filter_name(unsigned index);
BACNET_STACK_EXPORT
const char *bactext_success_filter_name(unsigned index);
BACNET_STACK_EXPORT
const char *bactext_result_flags_name(unsigned index);
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /* __cplusplus */ #endif /* __cplusplus */
+103 -3
View File
@@ -936,6 +936,88 @@ Lighting_Command_Stop(struct object_data *pObject, unsigned priority)
} }
} }
#if (BACNET_PROTOCOL_REVISION >= 28)
/**
* @brief Set the lighting command if the priority is active
* @param object [in] BACnet object instance
* @param priority [in] BACnet priority array value 1..16
*/
static void
Lighting_Command_Restore_On(struct object_data *pObject, unsigned priority)
{
unsigned current_priority;
if (!pObject) {
return;
}
current_priority = Present_Value_Priority(pObject);
if (priority <= current_priority) {
/* we have priority - configure the Lighting Command */
lighting_command_restore_on(&pObject->Lighting_Command);
}
}
/**
* @brief Set the lighting command if the priority is active
* @param object [in] BACnet object instance
* @param priority [in] BACnet priority array value 1..16
*/
static void
Lighting_Command_Restore_Off(struct object_data *pObject, unsigned priority)
{
unsigned current_priority;
if (!pObject) {
return;
}
current_priority = Present_Value_Priority(pObject);
if (priority <= current_priority) {
/* we have priority - configure the Lighting Command */
lighting_command_restore_off(&pObject->Lighting_Command);
}
}
/**
* @brief Set the lighting command if the priority is active
* @param object [in] BACnet object instance
* @param priority [in] BACnet priority array value 1..16
*/
static void
Lighting_Command_Toggle_Restore(struct object_data *pObject, unsigned priority)
{
unsigned current_priority;
if (!pObject) {
return;
}
current_priority = Present_Value_Priority(pObject);
if (priority <= current_priority) {
/* we have priority - configure the Lighting Command */
lighting_command_toggle_restore(&pObject->Lighting_Command);
}
}
/**
* @brief Set the lighting command if the priority is active
* @param object [in] BACnet object instance
* @param priority [in] BACnet priority array value 1..16
*/
static void
Lighting_Command_Toggle_Default(struct object_data *pObject, unsigned priority)
{
unsigned current_priority;
if (!pObject) {
return;
}
current_priority = Present_Value_Priority(pObject);
if (priority <= current_priority) {
/* we have priority - configure the Lighting Command */
lighting_command_toggle_default(&pObject->Lighting_Command);
}
}
#endif
/** /**
* For a given object instance-number, writes the present-value * For a given object instance-number, writes the present-value
* *
@@ -975,7 +1057,7 @@ static bool Lighting_Output_Lighting_Command_Write(
*error_code = ERROR_CODE_VALUE_OUT_OF_RANGE; *error_code = ERROR_CODE_VALUE_OUT_OF_RANGE;
return status; return status;
} }
if (value->operation >= MAX_BACNET_LIGHTING_OPERATION) { if (value->operation >= BACNET_LIGHTS_RESERVED_MIN) {
*error_class = ERROR_CLASS_PROPERTY; *error_class = ERROR_CLASS_PROPERTY;
*error_code = ERROR_CODE_VALUE_OUT_OF_RANGE; *error_code = ERROR_CODE_VALUE_OUT_OF_RANGE;
return status; return status;
@@ -1043,6 +1125,24 @@ static bool Lighting_Output_Lighting_Command_Write(
Lighting_Command_Stop(pObject, priority); Lighting_Command_Stop(pObject, priority);
status = true; status = true;
break; break;
#if (BACNET_PROTOCOL_REVISION >= 28)
case BACNET_LIGHTS_RESTORE_ON:
Lighting_Command_Restore_On(pObject, priority);
status = true;
break;
case BACNET_LIGHTS_RESTORE_OFF:
Lighting_Command_Restore_Off(pObject, priority);
status = true;
break;
case BACNET_LIGHTS_TOGGLE_RESTORE:
Lighting_Command_Toggle_Restore(pObject, priority);
status = true;
break;
case BACNET_LIGHTS_TOGGLE_DEFAULT:
Lighting_Command_Toggle_Default(pObject, priority);
status = true;
break;
#endif
default: default:
*error_class = ERROR_CLASS_PROPERTY; *error_class = ERROR_CLASS_PROPERTY;
*error_code = ERROR_CODE_VALUE_OUT_OF_RANGE; *error_code = ERROR_CODE_VALUE_OUT_OF_RANGE;
@@ -1908,7 +2008,7 @@ bool Lighting_Output_Transition_Set(
pObject = Keylist_Data(Object_List, object_instance); pObject = Keylist_Data(Object_List, object_instance);
if (pObject) { if (pObject) {
if (value <= BACNET_LIGHTING_TRANSITION_PROPRIETARY_LAST) { if (value <= BACNET_LIGHTING_TRANSITION_PROPRIETARY_MAX) {
pObject->Transition = value; pObject->Transition = value;
status = true; status = true;
} }
@@ -1941,7 +2041,7 @@ static bool Lighting_Output_Transition_Write(
pObject = Keylist_Data(Object_List, object_instance); pObject = Keylist_Data(Object_List, object_instance);
if (pObject) { if (pObject) {
(void)priority; (void)priority;
if (value < BACNET_LIGHTING_TRANSITION_PROPRIETARY_LAST) { if (value < BACNET_LIGHTING_TRANSITION_PROPRIETARY_MAX) {
pObject->Transition = value; pObject->Transition = value;
status = true; status = true;
} else { } else {
+2 -3
View File
@@ -535,8 +535,7 @@ int Life_Safety_Point_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata)
apdu_len = encode_application_enumerated(&apdu[0], mode); apdu_len = encode_application_enumerated(&apdu[0], mode);
break; break;
case PROP_ACCEPTED_MODES: case PROP_ACCEPTED_MODES:
for (mode = MIN_LIFE_SAFETY_MODE; mode < MAX_LIFE_SAFETY_MODE; for (mode = 0; mode <= LIFE_SAFETY_MODE_RESERVED_MIN; mode++) {
mode++) {
len = encode_application_enumerated(&apdu[apdu_len], mode); len = encode_application_enumerated(&apdu[apdu_len], mode);
apdu_len += len; apdu_len += len;
} }
@@ -583,7 +582,7 @@ bool Life_Safety_Point_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data)
status = write_property_type_valid( status = write_property_type_valid(
wp_data, &value, BACNET_APPLICATION_TAG_ENUMERATED); wp_data, &value, BACNET_APPLICATION_TAG_ENUMERATED);
if (status) { if (status) {
if (value.type.Enumerated <= MAX_LIFE_SAFETY_MODE) { if (value.type.Enumerated <= LIFE_SAFETY_MODE_PROPRIETARY_MAX) {
Life_Safety_Point_Mode_Set( Life_Safety_Point_Mode_Set(
wp_data->object_instance, wp_data->object_instance,
(BACNET_LIFE_SAFETY_MODE)value.type.Enumerated); (BACNET_LIFE_SAFETY_MODE)value.type.Enumerated);
+2 -3
View File
@@ -705,8 +705,7 @@ int Life_Safety_Zone_Read_Property(BACNET_READ_PROPERTY_DATA *rpdata)
apdu_len = encode_application_enumerated(&apdu[0], mode); apdu_len = encode_application_enumerated(&apdu[0], mode);
break; break;
case PROP_ACCEPTED_MODES: case PROP_ACCEPTED_MODES:
for (mode = MIN_LIFE_SAFETY_MODE; mode < MAX_LIFE_SAFETY_MODE; for (mode = 0; mode < LIFE_SAFETY_MODE_RESERVED_MIN; mode++) {
mode++) {
len = encode_application_enumerated(&apdu[apdu_len], mode); len = encode_application_enumerated(&apdu[apdu_len], mode);
apdu_len += len; apdu_len += len;
} }
@@ -760,7 +759,7 @@ bool Life_Safety_Zone_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data)
status = write_property_type_valid( status = write_property_type_valid(
wp_data, &value, BACNET_APPLICATION_TAG_ENUMERATED); wp_data, &value, BACNET_APPLICATION_TAG_ENUMERATED);
if (status) { if (status) {
if (value.type.Enumerated <= MAX_LIFE_SAFETY_MODE) { if (value.type.Enumerated <= LIFE_SAFETY_MODE_PROPRIETARY_MAX) {
Life_Safety_Zone_Mode_Set( Life_Safety_Zone_Mode_Set(
wp_data->object_instance, wp_data->object_instance,
(BACNET_LIFE_SAFETY_MODE)value.type.Enumerated); (BACNET_LIFE_SAFETY_MODE)value.type.Enumerated);
+1 -1
View File
@@ -171,7 +171,7 @@ int lighting_command_decode(
&apdu[apdu_len], apdu_size - apdu_len, 0, &enum_value); &apdu[apdu_len], apdu_size - apdu_len, 0, &enum_value);
if (len > 0) { if (len > 0) {
apdu_len += len; apdu_len += len;
if (unsigned_value <= BACNET_LIGHTS_PROPRIETARY_LAST) { if (unsigned_value <= BACNET_LIGHTS_PROPRIETARY_MAX) {
operation = (BACNET_LIGHTING_OPERATION)enum_value; operation = (BACNET_LIGHTING_OPERATION)enum_value;
if (data) { if (data) {
data->operation = operation; data->operation = operation;
-7
View File
@@ -52,13 +52,6 @@ typedef struct BACnet_Read_Range_Data {
/**< For info functionality indicates array of lists if set */ /**< For info functionality indicates array of lists if set */
#define RR_ARRAY_OF_LISTS 16 #define RR_ARRAY_OF_LISTS 16
/** Bit String Enumerations */
typedef enum {
RESULT_FLAG_FIRST_ITEM = 0,
RESULT_FLAG_LAST_ITEM = 1,
RESULT_FLAG_MORE_ITEMS = 2
} BACNET_RESULT_FLAGS;
/** Defines for ReadRange packet overheads to allow us to determine how /** Defines for ReadRange packet overheads to allow us to determine how
* much space is left for actual payload: * much space is left for actual payload:
* *
+1 -1
View File
@@ -143,7 +143,7 @@ static void testAbortError(void)
BACNET_ABORT_REASON abort_code; BACNET_ABORT_REASON abort_code;
BACNET_ABORT_REASON test_abort_code; BACNET_ABORT_REASON test_abort_code;
for (i = 0; i < MAX_BACNET_ABORT_REASON; i++) { for (i = 0; i < ABORT_REASON_RESERVED_MIN; i++) {
abort_code = (BACNET_ABORT_REASON)i; abort_code = (BACNET_ABORT_REASON)i;
error_code = abort_convert_to_error_code(abort_code); error_code = abort_convert_to_error_code(abort_code);
test_abort_code = abort_convert_error_code(error_code); test_abort_code = abort_convert_error_code(error_code);