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
+310 -8
View File
@@ -147,6 +147,8 @@ INDTEXT_DATA bacnet_application_tag_names[] = {
{ BACNET_APPLICATION_TAG_ACTION_COMMAND, "BACnetActionCommand" },
{ BACNET_APPLICATION_TAG_SCALE, "BACnetScale" },
{ BACNET_APPLICATION_TAG_SHED_LEVEL, "BACnetShedLevel" },
{ BACNET_APPLICATION_TAG_ACCESS_RULE, "BACnetAccessRule" },
{ BACNET_APPLICATION_TAG_CHANNEL_VALUE, "BACnetChannelValue" },
{ 0, NULL }
};
@@ -789,6 +791,18 @@ INDTEXT_DATA bacnet_property_names[] = {
{ PROP_HIGH_END_TRIM, "high-end-trim" },
{ PROP_LOW_END_TRIM, "low-end-trim" },
{ 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 }
};
@@ -1269,6 +1283,21 @@ INDTEXT_DATA bacnet_engineering_unit_names[] = {
{ UNITS_SITE_UNIT8, "site-unit8" },
{ UNITS_SITE_UNIT9, "site-unit9" },
{ 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 }
/* 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
@@ -1741,8 +1770,9 @@ INDTEXT_DATA bacnet_event_state_names[] = {
{ EVENT_STATE_NORMAL, "normal" },
{ EVENT_STATE_FAULT, "fault" },
{ EVENT_STATE_OFFNORMAL, "offnormal" },
{ EVENT_STATE_HIGH_LIMIT, "high limit" },
{ EVENT_STATE_LOW_LIMIT, "low limit" },
{ EVENT_STATE_HIGH_LIMIT, "high-limit" },
{ EVENT_STATE_LOW_LIMIT, "low-limit" },
{ EVENT_STATE_LIFE_SAFETY_ALARM, "life-safety-alarm" },
{ 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[] = {
{ LIFE_SAFETY_STATE_QUIET, "quiet" },
{ 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_SUPERVISORY, "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 }
};
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(
life_safety_state_names, index, ASHRAE_Reserved_String);
} else if (index <= LIFE_SAFETY_STATE_PROPRIETARY_MAX) {
return Vendor_Proprietary_String;
} else {
return "Invalid BACnetLifeSafetyState";
}
@@ -2019,10 +2126,10 @@ INDTEXT_DATA lighting_transition[] = {
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(
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;
} else {
return "Invalid BACnetLightingTransition";
@@ -2046,10 +2153,10 @@ INDTEXT_DATA bacnet_lighting_operation_names[] = {
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(
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;
} else {
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_RELINQUISH, "warn-relinquish" },
{ BINARY_LIGHTING_PV_STOP, "stop" },
{ BINARY_LIGHTING_PV_TOGGLE, "toggle" },
{ 0, NULL }
};
@@ -2149,7 +2257,6 @@ const char *bactext_shed_level_type_name(unsigned index)
bacnet_shed_level_type_names, index, ASHRAE_Reserved_String);
}
/* note: different than DaysOfWeek bit string where 0=monday */
INDTEXT_DATA bacnet_log_datum_names[] = {
{ BACNET_LOG_DATUM_STATUS, "status" },
{ BACNET_LOG_DATUM_BOOLEAN, "boolean" },
@@ -2170,3 +2277,198 @@ const char *bactext_log_datum_name(unsigned index)
return indtext_by_index_default(
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);
}