bacnet_types/enums/
property_id.rs1#[cfg(all(feature = "serde", not(feature = "std")))]
6use alloc::string::String;
7
8#[cfg(feature = "serde")]
9use serde::Deserialize;
10
11bacnet_enum! {
12 pub struct PropertyIdentifier(u32);
18
19 const ACKED_TRANSITIONS = 0;
21 const ACK_REQUIRED = 1;
22 const ACTION = 2;
23 const ACTION_TEXT = 3;
24 const ACTIVE_TEXT = 4;
25 const ACTIVE_VT_SESSIONS = 5;
26 const ALARM_VALUE = 6;
27 const ALARM_VALUES = 7;
28 const ALL = 8;
29 const ALL_WRITES_SUCCESSFUL = 9;
30 const APDU_SEGMENT_TIMEOUT = 10;
31 const APDU_TIMEOUT = 11;
32 const APPLICATION_SOFTWARE_VERSION = 12;
33 const ARCHIVE = 13;
34 const BIAS = 14;
35 const CHANGE_OF_STATE_COUNT = 15;
36 const CHANGE_OF_STATE_TIME = 16;
37 const NOTIFICATION_CLASS = 17;
38 const CONTROLLED_VARIABLE_REFERENCE = 19;
40 const CONTROLLED_VARIABLE_UNITS = 20;
41 const CONTROLLED_VARIABLE_VALUE = 21;
42 const COV_INCREMENT = 22;
43 const DATE_LIST = 23;
44 const DAYLIGHT_SAVINGS_STATUS = 24;
45 const DEADBAND = 25;
46 const DERIVATIVE_CONSTANT = 26;
47 const DERIVATIVE_CONSTANT_UNITS = 27;
48 const DESCRIPTION = 28;
49 const DESCRIPTION_OF_HALT = 29;
50 const DEVICE_ADDRESS_BINDING = 30;
51 const DEVICE_TYPE = 31;
52 const EFFECTIVE_PERIOD = 32;
53 const ELAPSED_ACTIVE_TIME = 33;
54 const ERROR_LIMIT = 34;
55 const EVENT_ENABLE = 35;
56 const EVENT_STATE = 36;
57 const EVENT_TYPE = 37;
58 const EXCEPTION_SCHEDULE = 38;
59 const FAULT_VALUES = 39;
60 const FEEDBACK_VALUE = 40;
61 const FILE_ACCESS_METHOD = 41;
62 const FILE_SIZE = 42;
63 const FILE_TYPE = 43;
64 const FIRMWARE_REVISION = 44;
65 const HIGH_LIMIT = 45;
66 const INACTIVE_TEXT = 46;
67 const IN_PROCESS = 47;
68 const INSTANCE_OF = 48;
69 const INTEGRAL_CONSTANT = 49;
70 const INTEGRAL_CONSTANT_UNITS = 50;
71
72 const ISSUE_CONFIRMED_NOTIFICATIONS = 51;
74 const LIMIT_ENABLE = 52;
75 const LIST_OF_GROUP_MEMBERS = 53;
76 const LIST_OF_OBJECT_PROPERTY_REFERENCES = 54;
77 const LOCAL_DATE = 56;
79 const LOCAL_TIME = 57;
80 const LOCATION = 58;
81 const LOW_LIMIT = 59;
82 const MANIPULATED_VARIABLE_REFERENCE = 60;
83 const MAXIMUM_OUTPUT = 61;
84 const MAX_APDU_LENGTH_ACCEPTED = 62;
85 const MAX_INFO_FRAMES = 63;
86 const MAX_MASTER = 64;
87 const MAX_PRES_VALUE = 65;
88 const MINIMUM_OFF_TIME = 66;
89 const MINIMUM_ON_TIME = 67;
90 const MINIMUM_OUTPUT = 68;
91 const MIN_PRES_VALUE = 69;
92 const MODEL_NAME = 70;
93 const MODIFICATION_DATE = 71;
94 const NOTIFY_TYPE = 72;
95 const NUMBER_OF_APDU_RETRIES = 73;
96 const NUMBER_OF_STATES = 74;
97 const OBJECT_IDENTIFIER = 75;
98 const OBJECT_LIST = 76;
99 const OBJECT_NAME = 77;
100 const OBJECT_PROPERTY_REFERENCE = 78;
101 const OBJECT_TYPE = 79;
102 const OPTIONAL = 80;
103 const OUT_OF_SERVICE = 81;
104 const OUTPUT_UNITS = 82;
105 const EVENT_PARAMETERS = 83;
106 const POLARITY = 84;
107 const PRESENT_VALUE = 85;
108 const PRIORITY = 86;
109 const PRIORITY_ARRAY = 87;
110 const PRIORITY_FOR_WRITING = 88;
111 const PROCESS_IDENTIFIER = 89;
112 const PROGRAM_CHANGE = 90;
113 const PROGRAM_LOCATION = 91;
114 const PROGRAM_STATE = 92;
115 const PROPORTIONAL_CONSTANT = 93;
116 const PROPORTIONAL_CONSTANT_UNITS = 94;
117 const PROTOCOL_OBJECT_TYPES_SUPPORTED = 96;
119 const PROTOCOL_SERVICES_SUPPORTED = 97;
120 const PROTOCOL_VERSION = 98;
121 const READ_ONLY = 99;
122 const REASON_FOR_HALT = 100;
123
124 const RECIPIENT_LIST = 102;
127 const RELIABILITY = 103;
128 const RELINQUISH_DEFAULT = 104;
129 const REQUIRED = 105;
130 const RESOLUTION = 106;
131 const SEGMENTATION_SUPPORTED = 107;
132 const SETPOINT = 108;
133 const SETPOINT_REFERENCE = 109;
134 const STATE_TEXT = 110;
135 const STATUS_FLAGS = 111;
136 const SYSTEM_STATUS = 112;
137 const TIME_DELAY = 113;
138 const TIME_OF_ACTIVE_TIME_RESET = 114;
139 const TIME_OF_STATE_COUNT_RESET = 115;
140 const TIME_SYNCHRONIZATION_RECIPIENTS = 116;
141 const UNITS = 117;
142 const UPDATE_INTERVAL = 118;
143 const UTC_OFFSET = 119;
144 const VENDOR_IDENTIFIER = 120;
145 const VENDOR_NAME = 121;
146 const VT_CLASSES_SUPPORTED = 122;
147 const WEEKLY_SCHEDULE = 123;
148 const ATTEMPTED_SAMPLES = 124;
149 const AVERAGE_VALUE = 125;
150 const BUFFER_SIZE = 126;
151 const CLIENT_COV_INCREMENT = 127;
152 const COV_RESUBSCRIPTION_INTERVAL = 128;
153 const EVENT_TIME_STAMPS = 130;
155 const LOG_BUFFER = 131;
156 const LOG_DEVICE_OBJECT_PROPERTY = 132;
157 const LOG_ENABLE = 133;
158 const LOG_INTERVAL = 134;
159 const MAXIMUM_VALUE = 135;
160 const MINIMUM_VALUE = 136;
161 const NOTIFICATION_THRESHOLD = 137;
162 const PROTOCOL_REVISION = 139;
164 const RECORDS_SINCE_NOTIFICATION = 140;
165 const RECORD_COUNT = 141;
166 const START_TIME = 142;
167 const STOP_TIME = 143;
168 const STOP_WHEN_FULL = 144;
169 const TOTAL_RECORD_COUNT = 145;
170 const VALID_SAMPLES = 146;
171 const WINDOW_INTERVAL = 147;
172 const WINDOW_SAMPLES = 148;
173 const MAXIMUM_VALUE_TIMESTAMP = 149;
174 const MINIMUM_VALUE_TIMESTAMP = 150;
175 const VARIANCE_VALUE = 151;
176 const ACTIVE_COV_SUBSCRIPTIONS = 152;
177 const BACKUP_FAILURE_TIMEOUT = 153;
178 const CONFIGURATION_FILES = 154;
179 const DATABASE_REVISION = 155;
180 const DIRECT_READING = 156;
181 const LAST_RESTORE_TIME = 157;
182 const MAINTENANCE_REQUIRED = 158;
183 const MEMBER_OF = 159;
184 const MODE = 160;
185 const OPERATION_EXPECTED = 161;
186 const SETTING = 162;
187 const SILENCED = 163;
188 const TRACKING_VALUE = 164;
189 const ZONE_MEMBERS = 165;
190 const LIFE_SAFETY_ALARM_VALUES = 166;
191 const MAX_SEGMENTS_ACCEPTED = 167;
192 const PROFILE_NAME = 168;
193 const AUTO_SLAVE_DISCOVERY = 169;
194 const MANUAL_SLAVE_ADDRESS_BINDING = 170;
195 const SLAVE_ADDRESS_BINDING = 171;
196 const SLAVE_PROXY_ENABLE = 172;
197 const LAST_NOTIFY_RECORD = 173;
198 const SCHEDULE_DEFAULT = 174;
199 const ACCEPTED_MODES = 175;
200 const ADJUST_VALUE = 176;
201 const COUNT = 177;
202 const COUNT_BEFORE_CHANGE = 178;
203 const COUNT_CHANGE_TIME = 179;
204 const COV_PERIOD = 180;
205 const INPUT_REFERENCE = 181;
206 const LIMIT_MONITORING_INTERVAL = 182;
207 const LOGGING_OBJECT = 183;
208 const LOGGING_RECORD = 184;
209 const PRESCALE = 185;
210 const PULSE_RATE = 186;
211 const SCALE = 187;
212 const SCALE_FACTOR = 188;
213 const UPDATE_TIME = 189;
214 const VALUE_BEFORE_CHANGE = 190;
215 const VALUE_SET = 191;
216 const VALUE_CHANGE_TIME = 192;
217 const ALIGN_INTERVALS = 193;
218 const INTERVAL_OFFSET = 195;
220 const LAST_RESTART_REASON = 196;
221 const LOGGING_TYPE = 197;
222 const RESTART_NOTIFICATION_RECIPIENTS = 202;
226 const TIME_OF_DEVICE_RESTART = 203;
227 const TIME_SYNCHRONIZATION_INTERVAL = 204;
228 const TRIGGER = 205;
229 const UTC_TIME_SYNCHRONIZATION_RECIPIENTS = 206;
230 const NODE_SUBTYPE = 207;
231 const NODE_TYPE = 208;
232 const STRUCTURED_OBJECT_LIST = 209;
233 const SUBORDINATE_ANNOTATIONS = 210;
234 const SUBORDINATE_LIST = 211;
235 const ACTUAL_SHED_LEVEL = 212;
236 const DUTY_WINDOW = 213;
237 const EXPECTED_SHED_LEVEL = 214;
238 const FULL_DUTY_BASELINE = 215;
239 const REQUESTED_SHED_LEVEL = 218;
241 const SHED_DURATION = 219;
242 const SHED_LEVEL_DESCRIPTIONS = 220;
243 const SHED_LEVELS = 221;
244 const STATE_DESCRIPTION = 222;
245 const DOOR_ALARM_STATE = 226;
247 const DOOR_EXTENDED_PULSE_TIME = 227;
248 const DOOR_MEMBERS = 228;
249 const DOOR_OPEN_TOO_LONG_TIME = 229;
250 const DOOR_PULSE_TIME = 230;
251 const DOOR_STATUS = 231;
252 const DOOR_UNLOCK_DELAY_TIME = 232;
253 const LOCK_STATUS = 233;
254 const MASKED_ALARM_VALUES = 234;
255 const SECURED_STATUS = 235;
256
257 const ABSENTEE_LIMIT = 244;
259 const ACCESS_ALARM_EVENTS = 245;
260 const ACCESS_DOORS = 246;
261 const ACCESS_EVENT = 247;
262 const ACCESS_EVENT_AUTHENTICATION_FACTOR = 248;
263 const ACCESS_EVENT_CREDENTIAL = 249;
264 const ACCESS_EVENT_TIME = 250;
265 const ACCESS_TRANSACTION_EVENTS = 251;
266 const ACCOMPANIMENT = 252;
267 const ACCOMPANIMENT_TIME = 253;
268 const ACTIVATION_TIME = 254;
269 const ACTIVE_AUTHENTICATION_POLICY = 255;
270 const ASSIGNED_ACCESS_RIGHTS = 256;
271 const AUTHENTICATION_FACTORS = 257;
272 const AUTHENTICATION_POLICY_LIST = 258;
273 const AUTHENTICATION_POLICY_NAMES = 259;
274 const AUTHENTICATION_STATUS = 260;
275 const AUTHORIZATION_MODE = 261;
276 const BELONGS_TO = 262;
277 const CREDENTIAL_DISABLE = 263;
278 const CREDENTIAL_STATUS = 264;
279 const CREDENTIALS = 265;
280 const CREDENTIALS_IN_ZONE = 266;
281 const DAYS_REMAINING = 267;
282 const ENTRY_POINTS = 268;
283 const EXIT_POINTS = 269;
284 const EXPIRATION_TIME = 270;
285 const EXTENDED_TIME_ENABLE = 271;
286 const FAILED_ATTEMPT_EVENTS = 272;
287 const FAILED_ATTEMPTS = 273;
288 const FAILED_ATTEMPTS_TIME = 274;
289 const LAST_ACCESS_EVENT = 275;
290 const LAST_ACCESS_POINT = 276;
291 const LAST_CREDENTIAL_ADDED = 277;
292 const LAST_CREDENTIAL_ADDED_TIME = 278;
293 const LAST_CREDENTIAL_REMOVED = 279;
294 const LAST_CREDENTIAL_REMOVED_TIME = 280;
295 const LAST_USE_TIME = 281;
296 const LOCKOUT = 282;
297 const LOCKOUT_RELINQUISH_TIME = 283;
298 const MAX_FAILED_ATTEMPTS = 285;
300 const MEMBERS = 286;
301 const MUSTER_POINT = 287;
302 const NEGATIVE_ACCESS_RULES = 288;
303 const NUMBER_OF_AUTHENTICATION_POLICIES = 289;
304 const OCCUPANCY_COUNT = 290;
305 const OCCUPANCY_COUNT_ADJUST = 291;
306 const OCCUPANCY_COUNT_ENABLE = 292;
307 const OCCUPANCY_LOWER_LIMIT = 294;
309 const OCCUPANCY_LOWER_LIMIT_ENFORCED = 295;
310 const OCCUPANCY_STATE = 296;
311 const OCCUPANCY_UPPER_LIMIT = 297;
312 const OCCUPANCY_UPPER_LIMIT_ENFORCED = 298;
313 const PASSBACK_MODE = 300;
315 const PASSBACK_TIMEOUT = 301;
316 const POSITIVE_ACCESS_RULES = 302;
317 const REASON_FOR_DISABLE = 303;
318 const SUPPORTED_FORMATS = 304;
319 const SUPPORTED_FORMAT_CLASSES = 305;
320 const THREAT_AUTHORITY = 306;
321 const THREAT_LEVEL = 307;
322 const TRACE_FLAG = 308;
323 const TRANSACTION_NOTIFICATION_CLASS = 309;
324 const USER_EXTERNAL_IDENTIFIER = 310;
325 const USER_INFORMATION_REFERENCE = 311;
326 const USER_NAME = 317;
328 const USER_TYPE = 318;
329 const USES_REMAINING = 319;
330 const ZONE_FROM = 320;
331 const ZONE_TO = 321;
332 const ACCESS_EVENT_TAG = 322;
333 const GLOBAL_IDENTIFIER = 323;
334
335 const VERIFICATION_TIME = 326;
337 const BASE_DEVICE_SECURITY_POLICY = 327;
339 const DISTRIBUTION_KEY_REVISION = 328;
341 const DO_NOT_HIDE = 329;
343 const KEY_SETS = 330;
345 const LAST_KEY_SERVER = 331;
347 const NETWORK_ACCESS_SECURITY_POLICIES = 332;
349 const PACKET_REORDER_TIME = 333;
351 const SECURITY_PDU_TIMEOUT = 334;
353 const SECURITY_TIME_WINDOW = 335;
355 const SUPPORTED_SECURITY_ALGORITHMS = 336;
357 const UPDATE_KEY_SET_TIMEOUT = 337;
359 const BACKUP_AND_RESTORE_STATE = 338;
360 const BACKUP_PREPARATION_TIME = 339;
361 const RESTORE_COMPLETION_TIME = 340;
362 const RESTORE_PREPARATION_TIME = 341;
363 const BIT_MASK = 342;
364 const BIT_TEXT = 343;
365 const IS_UTC = 344;
366 const GROUP_MEMBERS = 345;
367 const GROUP_MEMBER_NAMES = 346;
368 const MEMBER_STATUS_FLAGS = 347;
369 const REQUESTED_UPDATE_INTERVAL = 348;
370 const COVU_PERIOD = 349;
371 const COVU_RECIPIENTS = 350;
372 const EVENT_MESSAGE_TEXTS = 351;
373 const EVENT_MESSAGE_TEXTS_CONFIG = 352;
374 const EVENT_DETECTION_ENABLE = 353;
375 const EVENT_ALGORITHM_INHIBIT = 354;
376 const EVENT_ALGORITHM_INHIBIT_REF = 355;
377 const TIME_DELAY_NORMAL = 356;
378 const RELIABILITY_EVALUATION_INHIBIT = 357;
379 const FAULT_PARAMETERS = 358;
380 const FAULT_TYPE = 359;
381 const LOCAL_FORWARDING_ONLY = 360;
382 const PROCESS_IDENTIFIER_FILTER = 361;
383 const SUBSCRIBED_RECIPIENTS = 362;
384 const PORT_FILTER = 363;
385 const AUTHORIZATION_EXEMPTIONS = 364;
386 const ALLOW_GROUP_DELAY_INHIBIT = 365;
387 const CHANNEL_NUMBER = 366;
388 const CONTROL_GROUPS = 367;
389 const EXECUTION_DELAY = 368;
390 const LAST_PRIORITY = 369;
391 const WRITE_STATUS = 370;
392 const PROPERTY_LIST = 371;
393 const SERIAL_NUMBER = 372;
394 const BLINK_WARN_ENABLE = 373;
395 const DEFAULT_FADE_TIME = 374;
396 const DEFAULT_RAMP_RATE = 375;
397 const DEFAULT_STEP_INCREMENT = 376;
398 const EGRESS_TIME = 377;
399 const IN_PROGRESS = 378;
400 const INSTANTANEOUS_POWER = 379;
401 const LIGHTING_COMMAND = 380;
402 const LIGHTING_COMMAND_DEFAULT_PRIORITY = 381;
403 const MAX_ACTUAL_VALUE = 382;
404 const MIN_ACTUAL_VALUE = 383;
405 const POWER = 384;
406 const TRANSITION = 385;
407 const EGRESS_ACTIVE = 386;
408 const INTERFACE_VALUE = 387;
409 const FAULT_HIGH_LIMIT = 388;
410 const FAULT_LOW_LIMIT = 389;
411 const LOW_DIFF_LIMIT = 390;
412 const STRIKE_COUNT = 391;
413 const TIME_OF_STRIKE_COUNT_RESET = 392;
414 const DEFAULT_TIMEOUT = 393;
415 const INITIAL_TIMEOUT = 394;
416 const LAST_STATE_CHANGE = 395;
417 const STATE_CHANGE_VALUES = 396;
418 const TIMER_RUNNING = 397;
419 const TIMER_STATE = 398;
420
421 const APDU_LENGTH = 399;
423 const IP_ADDRESS = 400;
424 const IP_DEFAULT_GATEWAY = 401;
425 const IP_DHCP_ENABLE = 402;
426 const IP_DHCP_LEASE_TIME = 403;
427 const IP_DHCP_LEASE_TIME_REMAINING = 404;
428 const IP_DHCP_SERVER = 405;
429 const IP_DNS_SERVER = 406;
430 const BACNET_IP_GLOBAL_ADDRESS = 407;
431 const BACNET_IP_MODE = 408;
432 const BACNET_IP_MULTICAST_ADDRESS = 409;
433 const BACNET_IP_NAT_TRAVERSAL = 410;
434 const IP_SUBNET_MASK = 411;
435 const BACNET_IP_UDP_PORT = 412;
436 const BBMD_ACCEPT_FD_REGISTRATIONS = 413;
437 const BBMD_BROADCAST_DISTRIBUTION_TABLE = 414;
438 const BBMD_FOREIGN_DEVICE_TABLE = 415;
439 const CHANGES_PENDING = 416;
440 const COMMAND_NP = 417;
441 const FD_BBMD_ADDRESS = 418;
442 const FD_SUBSCRIPTION_LIFETIME = 419;
443 const LINK_SPEED = 420;
444 const LINK_SPEEDS = 421;
445 const LINK_SPEED_AUTONEGOTIATE = 422;
446 const MAC_ADDRESS = 423;
447 const NETWORK_INTERFACE_NAME = 424;
448 const NETWORK_NUMBER = 425;
449 const NETWORK_NUMBER_QUALITY = 426;
450 const NETWORK_TYPE = 427;
451 const ROUTING_TABLE = 428;
452 const VIRTUAL_MAC_ADDRESS_TABLE = 429;
453
454 const COMMAND_TIME_ARRAY = 430;
456 const CURRENT_COMMAND_PRIORITY = 431;
457 const LAST_COMMAND_TIME = 432;
458 const VALUE_SOURCE = 433;
459 const VALUE_SOURCE_ARRAY = 434;
460 const BACNET_IPV6_MODE = 435;
461 const IPV6_ADDRESS = 436;
462 const IPV6_PREFIX_LENGTH = 437;
463 const BACNET_IPV6_UDP_PORT = 438;
464 const IPV6_DEFAULT_GATEWAY = 439;
465 const BACNET_IPV6_MULTICAST_ADDRESS = 440;
466 const IPV6_DNS_SERVER = 441;
467 const IPV6_AUTO_ADDRESSING_ENABLE = 442;
468 const IPV6_DHCP_LEASE_TIME = 443;
469 const IPV6_DHCP_LEASE_TIME_REMAINING = 444;
470 const IPV6_DHCP_SERVER = 445;
471 const IPV6_ZONE_INDEX = 446;
472
473 const ASSIGNED_LANDING_CALLS = 447;
475 const CAR_ASSIGNED_DIRECTION = 448;
476 const CAR_DOOR_COMMAND = 449;
477 const CAR_DOOR_STATUS = 450;
478 const CAR_DOOR_TEXT = 451;
479 const CAR_DOOR_ZONE = 452;
480 const CAR_DRIVE_STATUS = 453;
481 const CAR_LOAD = 454;
482 const CAR_LOAD_UNITS = 455;
483 const CAR_MODE = 456;
484 const CAR_MOVING_DIRECTION = 457;
485 const CAR_POSITION = 458;
486 const ELEVATOR_GROUP = 459;
487 const ENERGY_METER = 460;
488 const ENERGY_METER_REF = 461;
489 const ESCALATOR_MODE = 462;
490 const FAULT_SIGNALS = 463;
491 const FLOOR_TEXT = 464;
492 const GROUP_ID = 465;
493 const GROUP_MODE = 467;
495 const HIGHER_DECK = 468;
496 const INSTALLATION_ID = 469;
497 const LANDING_CALLS = 470;
498 const LANDING_CALL_CONTROL = 471;
499 const LANDING_DOOR_STATUS = 472;
500 const LOWER_DECK = 473;
501 const MACHINE_ROOM_ID = 474;
502 const MAKING_CAR_CALL = 475;
503 const NEXT_STOPPING_FLOOR = 476;
504 const OPERATION_DIRECTION = 477;
505 const PASSENGER_ALARM = 478;
506 const POWER_MODE = 479;
507 const REGISTERED_CAR_CALL = 480;
508
509 const ACTIVE_COV_MULTIPLE_SUBSCRIPTIONS = 481;
511 const PROTOCOL_LEVEL = 482;
512 const REFERENCE_PORT = 483;
513 const DEPLOYED_PROFILE_LOCATION = 484;
514 const PROFILE_LOCATION = 485;
515 const TAGS = 486;
516 const SUBORDINATE_NODE_TYPES = 487;
517 const SUBORDINATE_TAGS = 488;
518 const SUBORDINATE_RELATIONSHIPS = 489;
519 const DEFAULT_SUBORDINATE_RELATIONSHIP = 490;
520 const REPRESENTS = 491;
521 const DEFAULT_PRESENT_VALUE = 492;
522 const PRESENT_STAGE = 493;
523 const STAGES = 494;
524 const STAGE_NAMES = 495;
525 const TARGET_REFERENCES = 496;
526 const AUDIT_SOURCE_REPORTER = 497;
527 const AUDIT_LEVEL = 498;
528 const AUDIT_NOTIFICATION_RECIPIENT = 499;
529 const AUDIT_PRIORITY_FILTER = 500;
530 const AUDITABLE_OPERATIONS = 501;
531 const DELETE_ON_FORWARD = 502;
532 const MAXIMUM_SEND_DELAY = 503;
533 const MONITORED_OBJECTS = 504;
534 const SEND_NOW = 505;
535 const FLOOR_NUMBER = 506;
536 const DEVICE_UUID = 507;
537
538 const ADDITIONAL_REFERENCE_PORTS = 508;
541 const CERTIFICATE_SIGNING_REQUEST_FILE = 509;
544 const COMMAND_VALIDATION_RESULT = 510;
547 const ISSUER_CERTIFICATE_FILES = 511;
549
550 const COLOR_OVERRIDE = 4194328;
554 const COLOR_REFERENCE = 4194329;
557 const DEFAULT_COLOR = 4194330;
559 const DEFAULT_COLOR_TEMPERATURE = 4194331;
562 const OVERRIDE_COLOR_REFERENCE = 4194332;
565 const COLOR_COMMAND = 4194334;
570 const HIGH_END_TRIM = 4194335;
573 const LOW_END_TRIM = 4194336;
576 const TRIM_FADE_TIME = 4194337;
579}
580
581#[cfg(feature = "serde")]
582impl<'de> Deserialize<'de> for PropertyIdentifier {
583 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
584 where
585 D: serde::Deserializer<'de>,
586 {
587 let string: String = Deserialize::deserialize(deserializer)?;
588 string.parse().map_err(serde::de::Error::custom)
589 }
590}
591
592#[cfg(all(test, feature = "serde"))]
593mod serde_tests {
594 use super::PropertyIdentifier;
595
596 fn parse(input: &str) -> PropertyIdentifier {
597 serde_json::from_str(&format!("\"{input}\"")).expect("deserializes")
598 }
599
600 #[test]
601 fn accepts_every_supported_case_style() {
602 for input in [
603 "presentvalue",
604 "PRESENTVALUE",
605 "PresentValue",
606 "presentValue",
607 "present_value",
608 "PRESENT_VALUE",
609 "present-value",
610 "PRESENT-VALUE",
611 ] {
612 assert_eq!(
613 parse(input),
614 PropertyIdentifier::PRESENT_VALUE,
615 "input: {input}"
616 );
617 }
618 }
619
620 #[test]
621 fn covers_the_full_standard_range() {
622 assert_eq!(
623 parse("acked_transitions"),
624 PropertyIdentifier::ACKED_TRANSITIONS
625 );
626 assert_eq!(parse("default-color"), PropertyIdentifier::DEFAULT_COLOR);
627 assert_eq!(
628 parse("issuer-certificate-files"),
629 PropertyIdentifier::ISSUER_CERTIFICATE_FILES
630 );
631 }
632
633 #[test]
634 fn rejects_unknown_names() {
635 assert!(serde_json::from_str::<PropertyIdentifier>("\"not-a-property\"").is_err());
636 }
637
638 #[test]
639 fn rejects_non_string_input() {
640 assert!(serde_json::from_str::<PropertyIdentifier>("85").is_err());
641 }
642}