Go to the documentation of this file.
40#ifndef __OPENLCB_OPENLCB_DEFINES__
41#define __OPENLCB_OPENLCB_DEFINES__
46#define OPENLCB_C_LIB_VERSION_MAJOR 1
47#define OPENLCB_C_LIB_VERSION_MINOR 0
48#define OPENLCB_C_LIB_VERSION_PATCH 0
49#define OPENLCB_C_LIB_VERSION "1.0.0"
65#define RUNSTATE_INIT 0
68#define RUNSTATE_GENERATE_SEED 1
71#define RUNSTATE_GENERATE_ALIAS 2
74#define RUNSTATE_LOAD_CHECK_ID_07 3
77#define RUNSTATE_LOAD_CHECK_ID_06 4
80#define RUNSTATE_LOAD_CHECK_ID_05 5
83#define RUNSTATE_LOAD_CHECK_ID_04 6
88#define RUNSTATE_WAIT_200ms 7
91#define RUNSTATE_LOAD_RESERVE_ID 8
94#define RUNSTATE_LOAD_ALIAS_MAP_DEFINITION 9
97#define RUNSTATE_LOAD_INITIALIZATION_COMPLETE 10
100#define RUNSTATE_LOAD_CONSUMER_EVENTS 11
103#define RUNSTATE_LOAD_PRODUCER_EVENTS 12
106#define RUNSTATE_LOGIN_COMPLETE 13
109#define RUNSTATE_RUN 14
120#define RESERVED_TOP_BIT 0x10000000
123#define CAN_OPENLCB_MSG 0x08000000
126#define MASK_CAN_FRAME_SEQUENCE_NUMBER 0x07000000
129#define MASK_CAN_FRAME_TYPE MASK_CAN_FRAME_SEQUENCE_NUMBER
132#define MASK_CAN_VARIABLE_FIELD 0x00FFF000
135#define OPENLCB_MESSAGE_STANDARD_FRAME_TYPE 0x01000000
138#define CAN_FRAME_TYPE_DATAGRAM_ONLY 0x02000000
141#define CAN_FRAME_TYPE_DATAGRAM_FIRST 0x03000000
144#define CAN_FRAME_TYPE_DATAGRAM_MIDDLE 0x04000000
147#define CAN_FRAME_TYPE_DATAGRAM_FINAL 0x05000000
150#define CAN_FRAME_TYPE_RESERVED 0x06000000
153#define CAN_FRAME_TYPE_STREAM 0x07000000
164#define MTI_INITIALIZATION_COMPLETE 0x0100
167#define MTI_INITIALIZATION_COMPLETE_SIMPLE 0x0101
170#define MTI_VERIFY_NODE_ID_ADDRESSED 0x0488
173#define MTI_VERIFY_NODE_ID_GLOBAL 0x0490
176#define MTI_VERIFIED_NODE_ID 0x0170
179#define MTI_VERIFIED_NODE_ID_SIMPLE 0x0171
182#define MTI_OPTIONAL_INTERACTION_REJECTED 0x0068
185#define MTI_TERMINATE_DUE_TO_ERROR 0x00A8
188#define MTI_PROTOCOL_SUPPORT_INQUIRY 0x0828
191#define MTI_PROTOCOL_SUPPORT_REPLY 0x0668
202#define MTI_CONSUMER_IDENTIFY 0x08F4
205#define MTI_CONSUMER_RANGE_IDENTIFIED 0x04A4
208#define MTI_CONSUMER_IDENTIFIED_UNKNOWN 0x04C7
211#define MTI_CONSUMER_IDENTIFIED_SET 0x04C4
214#define MTI_CONSUMER_IDENTIFIED_CLEAR 0x04C5
217#define MTI_CONSUMER_IDENTIFIED_RESERVED 0x04C6
220#define MTI_PRODUCER_IDENTIFY 0x0914
223#define MTI_PRODUCER_RANGE_IDENTIFIED 0x0524
226#define MTI_PRODUCER_IDENTIFIED_UNKNOWN 0x0547
229#define MTI_PRODUCER_IDENTIFIED_SET 0x0544
232#define MTI_PRODUCER_IDENTIFIED_CLEAR 0x0545
235#define MTI_PRODUCER_IDENTIFIED_RESERVED 0x0546
238#define MTI_EVENTS_IDENTIFY_DEST 0x0968
241#define MTI_EVENTS_IDENTIFY 0x0970
244#define MTI_EVENT_LEARN 0x0594
247#define MTI_PC_EVENT_REPORT 0x05B4
250#define MTI_PC_EVENT_REPORT_WITH_PAYLOAD 0x0F14
261#define MTI_SIMPLE_NODE_INFO_REQUEST 0x0DE8
264#define MTI_SIMPLE_NODE_INFO_REPLY 0x0A08
275#define MTI_TRAIN_PROTOCOL 0x05EB
278#define MTI_TRAIN_REPLY 0x01E9
281#define MTI_SIMPLE_TRAIN_INFO_REQUEST 0x0DA8
284#define MTI_SIMPLE_TRAIN_INFO_REPLY 0x09C8
295#define MTI_STREAM_INIT_REQUEST 0x0CC8
298#define MTI_STREAM_INIT_REPLY 0x0868
301#define MTI_FRAME_TYPE_CAN_STREAM_SEND 0xF000
304#define MTI_STREAM_SEND 0x1F88
307#define MTI_STREAM_PROCEED 0x0888
310#define MTI_STREAM_COMPLETE 0x08A8
321#define MTI_DATAGRAM 0x1C48
324#define MTI_DATAGRAM_OK_REPLY 0x0A28
327#define MTI_DATAGRAM_REJECTED_REPLY 0x0A48
338#define MASK_MULTIFRAME_BITS 0x30
341#define MULTIFRAME_ONLY 0x00
344#define MULTIFRAME_FIRST 0x10
347#define MULTIFRAME_MIDDLE 0x30
350#define MULTIFRAME_FINAL 0x20
361#define MASK_STREAM_OR_DATAGRAM 0x01000
364#define MASK_PRIORITY 0x00C00
367#define MASK_SIMPLE_PROTOCOL 0x00010
370#define MASK_DEST_ADDRESS_PRESENT 0x00008
373#define MASK_EVENT_PRESENT 0x00004
376#define MASK_PRIORITY_MODIFIER 0x00003
387#define CAN_CONTROL_FRAME_CID7 0x07000000
390#define CAN_CONTROL_FRAME_CID6 0x06000000
393#define CAN_CONTROL_FRAME_CID5 0x05000000
396#define CAN_CONTROL_FRAME_CID4 0x04000000
399#define CAN_CONTROL_FRAME_CID3 0x03000000
402#define CAN_CONTROL_FRAME_CID2 0x02000000
405#define CAN_CONTROL_FRAME_CID1 0x01000000
408#define CAN_CONTROL_FRAME_RID 0x00700000
411#define CAN_CONTROL_FRAME_AMD 0x00701000
414#define CAN_CONTROL_FRAME_AME 0x00702000
417#define CAN_CONTROL_FRAME_AMR 0x00703000
420#define CAN_CONTROL_FRAME_ERROR_INFO_REPORT_0 0x00710000
423#define CAN_CONTROL_FRAME_ERROR_INFO_REPORT_1 0x00711000
426#define CAN_CONTROL_FRAME_ERROR_INFO_REPORT_2 0x00712000
429#define CAN_CONTROL_FRAME_ERROR_INFO_REPORT_3 0x00713000
440#define MASK_CAN_STREAM_OR_DATAGRAM 0x01000000
443#define MASK_CAN_PRIORITY 0x00C00000
446#define MASK_CAN_SIMPLE_PROTOCOL 0x00010000
449#define MASK_CAN_DEST_ADDRESS_PRESENT 0x00008000
452#define MASK_CAN_EVENT_PRESENT 0x00004000
455#define MASK_CAN_PRIORITY_MODIFIER 0x00003000
458#define MASK_CAN_SOURCE_ALIAS 0x00000FFF
469#define PSI_SIMPLE 0x800000
472#define PSI_DATAGRAM 0x400000
475#define PSI_STREAM 0x200000
478#define PSI_MEMORY_CONFIGURATION 0x100000
481#define PSI_RESERVATION 0x080000
484#define PSI_EVENT_EXCHANGE 0x040000
487#define PSI_IDENTIFICATION 0x020000
490#define PSI_TEACHING_LEARNING 0x010000
493#define PSI_REMOTE_BUTTON 0x008000
496#define PSI_ABBREVIATED_DEFAULT_CDI 0x004000
499#define PSI_DISPLAY 0x002000
502#define PSI_SIMPLE_NODE_INFORMATION 0x001000
505#define PSI_CONFIGURATION_DESCRIPTION_INFO 0x000800
508#define PSI_TRAIN_CONTROL 0x000400
511#define PSI_FUNCTION_DESCRIPTION 0x000200
514#define PSI_RESERVED_0 0x000100
517#define PSI_RESERVED_1 0x000080
520#define PSI_FUNCTION_CONFIGURATION 0x000040
523#define PSI_FIRMWARE_UPGRADE 0x000020
526#define PSI_FIRMWARE_UPGRADE_ACTIVE 0x000010
543#define EVENT_ID_EMERGENCY_OFF 0x010000000000FFFF
546#define EVENT_ID_CLEAR_EMERGENCY_OFF 0x010000000000FFFE
549#define EVENT_ID_EMERGENCY_STOP 0x010000000000FFFD
552#define EVENT_ID_CLEAR_EMERGENCY_STOP 0x010000000000FFFC
555#define EVENT_ID_NODE_RECORDED_NEW_LOG 0x010000000000FFF8
558#define EVENT_ID_POWER_SUPPLY_BROWN_OUT_NODE 0x010000000000FFF1
561#define EVENT_ID_POWER_SUPPLY_BROWN_OUT_STANDARD 0x010000000000FFF0
564#define EVENT_ID_IDENT_BUTTON_COMBO_PRESSED 0x010000000000FF00
567#define EVENT_ID_LINK_ERROR_CODE_1 0x010000000000FF01
570#define EVENT_ID_LINK_ERROR_CODE_2 0x010000000000FF02
573#define EVENT_ID_LINK_ERROR_CODE_3 0x010000000000FF03
576#define EVENT_ID_LINK_ERROR_CODE_4 0x010000000000FF04
587#define EVENT_ID_DUPLICATE_NODE_DETECTED 0x0101000000000201
590#define EVENT_ID_TRAIN 0x0101000000000303
593#define EVENT_ID_TRAIN_PROXY 0x0101000000000304
596#define EVENT_ID_FIRMWARE_CORRUPTED 0x0101000000000601
599#define EVENT_ID_FIRMWARE_UPGRADE_BY_HARDWARE_SWITCH 0x0101000000000602
602#define EVENT_ID_CBUS_OFF_SPACE 0x0101010000000000
605#define EVENT_ID_CBUS_ON_SPACE 0x0101010100000000
608#define EVENT_ID_DCC_ACCESSORY_ACTIVATE 0x0101020000FF0000
611#define EVENT_ID_DCC_ACCESSORY_DEACTIVATE 0x0101020000FE0000
614#define EVENT_ID_DCC_TURNOUT_FEEDBACK_HIGH 0x0101020000FD0000
617#define EVENT_ID_DCC_TURNOUT_FEEDBACK_LOW 0x0101020000FC0000
620#define EVENT_ID_DCC_SENSOR_FEEDBACK_HIGH 0x0101020000FB0000
623#define EVENT_ID_DCC_SENSOR_FEEDBACK_LO 0x0101020000FA0000
626#define EVENT_ID_DCC_EXTENDED_ACCESSORY_CMD_SPACE 0x01010200010000FF
629#define EVENT_TRAIN_SEARCH_SPACE 0x090099FF00000000
632#define TRAIN_SEARCH_MASK 0xFFFFFFFF00000000ULL
635#define TRAIN_SEARCH_FLAG_ALLOCATE 0x80
637#define TRAIN_SEARCH_FLAG_EXACT 0x40
639#define TRAIN_SEARCH_FLAG_ADDRESS_ONLY 0x20
641#define TRAIN_SEARCH_FLAG_DCC 0x08
643#define TRAIN_SEARCH_FLAG_LONG_ADDR 0x04
645#define TRAIN_SEARCH_SPEED_STEP_MASK 0x03
648#define TRAIN_MAX_DCC_SHORT_ADDRESS 128
651 // end of well_known_events
663#define ERROR_PERMANENT 0x1000
666#define ERROR_PERMANENT_CONFIG_MEM_ADDRESS_SPACE_UNKNOWN 0x1081
669#define ERROR_PERMANENT_CONFIG_MEM_OUT_OF_BOUNDS_INVALID_ADDRESS 0x1082
672#define ERROR_PERMANENT_CONFIG_MEM_ADDRESS_WRITE_TO_READ_ONLY 0x1083
675#define ERROR_PERMANENT_SOURCE_NOT_PERMITTED 0x1020
678#define ERROR_PERMANENT_NOT_IMPLEMENTED 0x1040
681#define ERROR_PERMANENT_NOT_IMPLEMENTED_SUBCOMMAND_UNKNOWN 0x1041
684#define ERROR_PERMANENT_NOT_IMPLEMENTED_COMMAND_UNKNOWN 0x1042
687#define ERROR_PERMANENT_NOT_IMPLEMENTED_UNKNOWN_MTI_OR_TRANPORT_PROTOCOL 0x1043
690#define ERROR_CODE_PERMANENT_COUNT_OUT_OF_RANGE 0x1044
693#define ERROR_PERMANENT_INVALID_ARGUMENTS 0x1080
696#define ERROR_TEMPORARY 0x2000
699#define ERROR_TEMPORARY_BUFFER_UNAVAILABLE 0x2020
702#define ERROR_TEMPORARY_NOT_EXPECTED_OUT_OF_ORDER 0x2040
705#define ERROR_TEMPORARY_TRANSFER_ERROR 0x2080
708#define ERROR_TEMPORARY_TIME_OUT 0x2011
711#define ERROR_TEMPORARY_OUT_OF_ORDER_MIDDLE_END_WITH_NO_START 0x2041
714#define ERROR_TEMPORARY_OUT_OF_ORDER_START_BEFORE_LAST_END 0x2042
726#define DATAGRAM_OK_REPLY_PENDING 0x80
737#define CONFIG_MEM_CONFIGURATION 0x20
748#define CONFIG_MEM_READ_SPACE_IN_BYTE_6 0x40
751#define CONFIG_MEM_READ_SPACE_FD 0x41
754#define CONFIG_MEM_READ_SPACE_FE 0x42
757#define CONFIG_MEM_READ_SPACE_FF 0x43
760#define CONFIG_MEM_READ_REPLY_OK_SPACE_IN_BYTE_6 0x50
763#define CONFIG_MEM_READ_REPLY_OK_SPACE_FD 0x51
766#define CONFIG_MEM_READ_REPLY_OK_SPACE_FE 0x52
769#define CONFIG_MEM_READ_REPLY_OK_SPACE_FF 0x53
772#define CONFIG_MEM_READ_REPLY_FAIL_SPACE_IN_BYTE_6 0x58
775#define CONFIG_MEM_READ_REPLY_FAIL_SPACE_FD 0x59
778#define CONFIG_MEM_READ_REPLY_FAIL_SPACE_FE 0x5A
781#define CONFIG_MEM_READ_REPLY_FAIL_SPACE_FF 0x5B
792#define CONFIG_MEM_READ_STREAM_SPACE_IN_BYTE_6 0x60
795#define CONFIG_MEM_READ_STREAM_SPACE_FD 0x61
798#define CONFIG_MEM_READ_STREAM_SPACE_FE 0x62
801#define CONFIG_MEM_READ_STREAM_SPACE_FF 0x63
804#define CONFIG_MEM_READ_STREAM_REPLY_OK_SPACE_IN_BYTE_6 0x70
807#define CONFIG_MEM_READ_STREAM_REPLY_OK_SPACE_FD 0x71
810#define CONFIG_MEM_READ_STREAM_REPLY_OK_SPACE_FE 0x72
813#define CONFIG_MEM_READ_STREAM_REPLY_OK_SPACE_FF 0x73
816#define CONFIG_MEM_READ_STREAM_REPLY_FAIL_SPACE_IN_BYTE_6 0x78
819#define CONFIG_MEM_READ_STREAM_REPLY_FAIL_SPACE_FD 0x79
822#define CONFIG_MEM_READ_STREAM_REPLY_FAIL_SPACE_FE 0x7A
825#define CONFIG_MEM_READ_STREAM_REPLY_FAIL_SPACE_FF 0x7B
837#define CONFIG_MEM_WRITE_SPACE_IN_BYTE_6 0x00
840#define CONFIG_MEM_WRITE_SPACE_FD 0x01
843#define CONFIG_MEM_WRITE_SPACE_FE 0x02
846#define CONFIG_MEM_WRITE_SPACE_FF 0x03
849#define CONFIG_MEM_WRITE_REPLY_OK_SPACE_IN_BYTE_6 0x10
852#define CONFIG_MEM_WRITE_REPLY_OK_SPACE_FD 0x11
855#define CONFIG_MEM_WRITE_REPLY_OK_SPACE_FE 0x12
858#define CONFIG_MEM_WRITE_REPLY_OK_SPACE_FF 0x13
861#define CONFIG_MEM_WRITE_REPLY_FAIL_SPACE_IN_BYTE_6 0x18
864#define CONFIG_MEM_WRITE_REPLY_FAIL_SPACE_FD 0x19
867#define CONFIG_MEM_WRITE_REPLY_FAIL_SPACE_FE 0x1A
870#define CONFIG_MEM_WRITE_REPLY_FAIL_SPACE_FF 0x1B
882#define CONFIG_MEM_WRITE_UNDER_MASK_SPACE_IN_BYTE_6 0x08
885#define CONFIG_MEM_WRITE_UNDER_MASK_SPACE_FD 0x09
888#define CONFIG_MEM_WRITE_UNDER_MASK_SPACE_FE 0x0A
891#define CONFIG_MEM_WRITE_UNDER_MASK_SPACE_FF 0x0B
903#define CONFIG_MEM_WRITE_STREAM_SPACE_IN_BYTE_6 0x20
906#define CONFIG_MEM_WRITE_STREAM_SPACE_FD 0x21
909#define CONFIG_MEM_WRITE_STREAM_SPACE_FE 0x22
912#define CONFIG_MEM_WRITE_STREAM_SPACE_FF 0x23
915#define CONFIG_MEM_WRITE_STREAM_REPLY_OK_SPACE_IN_BYTE_6 0x30
918#define CONFIG_MEM_WRITE_STREAM_REPLY_OK_SPACE_FD 0x31
921#define CONFIG_MEM_WRITE_STREAM_REPLY_OK_SPACE_FE 0x32
924#define CONFIG_MEM_WRITE_STREAM_REPLY_OK_SPACE_FF 0x33
927#define CONFIG_MEM_WRITE_STREAM_REPLY_FAIL_SPACE_IN_BYTE_6 0x38
930#define CONFIG_MEM_WRITE_STREAM_REPLY_FAIL_SPACE_FD 0x39
933#define CONFIG_MEM_WRITE_STREAM_REPLY_FAIL_SPACE_FE 0x3A
936#define CONFIG_MEM_WRITE_STREAM_REPLY_FAIL_SPACE_FF 0x3B
948#define CONFIG_MEM_OPTIONS_CMD 0x80
951#define CONFIG_MEM_OPTIONS_REPLY 0x82
954#define CONFIG_MEM_GET_ADDRESS_SPACE_INFO_CMD 0x84
957#define CONFIG_MEM_GET_ADDRESS_SPACE_INFO_REPLY_NOT_PRESENT 0x86
960#define CONFIG_MEM_GET_ADDRESS_SPACE_INFO_REPLY_PRESENT 0x87
963#define CONFIG_MEM_RESERVE_LOCK 0x88
966#define CONFIG_MEM_RESERVE_LOCK_REPLY 0x8A
969#define CONFIG_MEM_GET_UNIQUE_ID 0x8C
972#define CONFIG_MEM_GET_UNIQUE_ID_REPLY 0x8D
975#define CONFIG_MEM_UNFREEZE 0xA0
978#define CONFIG_MEM_FREEZE 0xA1
981#define CONFIG_MEM_UPDATE_COMPLETE 0xA8
984#define CONFIG_MEM_RESET_REBOOT 0xA9
987#define CONFIG_MEM_FACTORY_RESET 0xAA
998#define CONFIG_MEM_SPACE_CONFIGURATION_DEFINITION_INFO 0xFF
1001#define CONFIG_MEM_SPACE_ALL 0xFE
1004#define CONFIG_MEM_SPACE_CONFIGURATION_MEMORY 0xFD
1007#define CONFIG_MEM_SPACE_ACDI_MANUFACTURER_ACCESS 0xFC
1010#define CONFIG_MEM_SPACE_ACDI_USER_ACCESS 0xFB
1013#define CONFIG_MEM_SPACE_TRAIN_FUNCTION_DEFINITION_INFO 0xFA
1016#define CONFIG_MEM_SPACE_TRAIN_FUNCTION_CONFIGURATION_MEMORY 0xF9
1019#define CONFIG_MEM_SPACE_FIRMWARE 0xEF
1030#define CONFIG_MEM_ACDI_MANUFACTURER_VERSION_ADDRESS 0x00
1033#define CONFIG_MEM_ACDI_MANUFACTURER_ADDRESS 0x01
1036#define CONFIG_MEM_ACDI_MODEL_ADDRESS 0x2A
1039#define CONFIG_MEM_ACDI_HARDWARE_VERSION_ADDRESS 0x53
1042#define CONFIG_MEM_ACDI_SOFTWARE_VERSION_ADDRESS 0x68
1045#define CONFIG_MEM_ACDI_VERSION_LEN 1
1048#define CONFIG_MEM_ACDI_MANUFACTURER_LEN 41
1051#define CONFIG_MEM_ACDI_MODEL_LEN 41
1054#define CONFIG_MEM_ACDI_HARDWARE_VERSION_LEN 21
1057#define CONFIG_MEM_ACDI_SOFTWARE_VERSION_LEN 21
1068#define CONFIG_MEM_USER_MODEL_ADDRESS 0x00
1071#define CONFIG_MEM_USER_DESCRIPTION_ADDRESS 0x3F
1074#define CONFIG_MEM_ACDI_USER_VERSION_ADDRESS 0x00
1077#define CONFIG_MEM_ACDI_USER_NAME_ADDRESS 0x01
1080#define CONFIG_MEM_ACDI_USER_DESCRIPTION_ADDRESS 0x40
1083#define CONFIG_MEM_ACDI_USER_VERSION_LEN 1
1086#define CONFIG_MEM_ACDI_USER_NAME_LEN 63
1089#define CONFIG_MEM_ACDI_USER_DESCRIPTION_LEN 64
1092#define CONFIG_MEM_CONFIG_USER_NAME_OFFSET 0x00000000
1095#define CONFIG_MEM_CONFIG_USER_DESCRIPTION_OFFSET 63
1106#define CONFIG_MEM_REPLY_OK_OFFSET 0x10
1109#define CONFIG_MEM_REPLY_FAIL_OFFSET 0x18
1120#define CONFIG_OPTIONS_COMMANDS_WRITE_UNDER_MASK 0x8000
1123#define CONFIG_OPTIONS_COMMANDS_UNALIGNED_READS 0x4000
1126#define CONFIG_OPTIONS_COMMANDS_UNALIGNED_WRITES 0x2000
1129#define CONFIG_OPTIONS_COMMANDS_ACDI_MANUFACTURER_READ 0x0800
1132#define CONFIG_OPTIONS_COMMANDS_ACDI_USER_READ 0x0400
1135#define CONFIG_OPTIONS_COMMANDS_ACDI_USER_WRITE 0x0200
1147#define CONFIG_OPTIONS_WRITE_LENGTH_RESERVED (0x80 | 0x40 | 0x20 | 0x02)
1150#define CONFIG_OPTIONS_WRITE_LENGTH_STREAM_READ_WRITE 0x01
1162#define CONFIG_OPTIONS_SPACE_INFO_FLAG_READ_ONLY 0x01
1165#define CONFIG_OPTIONS_SPACE_INFO_FLAG_USE_LOW_ADDRESS 0x02
1176#define MAX_INTERNAL_ENUM_KEYS_VALUES 4
1179#define MAX_USER_ENUM_KEYS_VALUES 4
1182#define USER_ENUM_KEYS_VALUES_1 0
1185#define USER_ENUM_KEYS_VALUES_2 1
1188#define USER_ENUM_KEYS_VALUES_3 2
1191#define USER_ENUM_KEYS_VALUES_4 3
1194#define MAX_NODE_ENUM_KEY_VALUES (MAX_USER_ENUM_KEYS_VALUES + MAX_INTERNAL_ENUM_KEYS_VALUES)
1197#define OPENLCB_MAIN_STATMACHINE_NODE_ENUMERATOR_INDEX MAX_USER_ENUM_KEYS_VALUES
1200#define OPENLCB_LOGIN_STATMACHINE_NODE_ENUMERATOR_INDEX (MAX_USER_ENUM_KEYS_VALUES + 1)
1203#define CAN_STATEMACHINE_NODE_ENUMRATOR_KEY (MAX_USER_ENUM_KEYS_VALUES + 2)
1206#define DATAGRAM_TIMEOUT_ENUM_KEY (MAX_USER_ENUM_KEYS_VALUES + 3)
1217#define BROADCAST_TIME_ID_DEFAULT_FAST_CLOCK 0x0101000001000000ULL
1220#define BROADCAST_TIME_ID_DEFAULT_REALTIME_CLOCK 0x0101000001010000ULL
1223#define BROADCAST_TIME_ID_ALTERNATE_CLOCK_1 0x0101000001020000ULL
1226#define BROADCAST_TIME_ID_ALTERNATE_CLOCK_2 0x0101000001030000ULL
1229#define BROADCAST_TIME_MASK_CLOCK_ID 0xFFFFFFFFFFFF0000ULL
1232#define BROADCAST_TIME_MASK_COMMAND_DATA 0x000000000000FFFFULL
1235#define BROADCAST_TIME_REPORT_TIME_BASE 0x0000
1238#define BROADCAST_TIME_REPORT_DATE_BASE 0x2100
1241#define BROADCAST_TIME_REPORT_YEAR_BASE 0x3000
1244#define BROADCAST_TIME_REPORT_RATE_BASE 0x4000
1247#define BROADCAST_TIME_SET_TIME_BASE 0x8000
1250#define BROADCAST_TIME_SET_DATE_BASE 0xA100
1253#define BROADCAST_TIME_SET_YEAR_BASE 0xB000
1256#define BROADCAST_TIME_SET_RATE_BASE 0xC000
1259#define BROADCAST_TIME_QUERY 0xF000
1262#define BROADCAST_TIME_STOP 0xF001
1265#define BROADCAST_TIME_START 0xF002
1268#define BROADCAST_TIME_DATE_ROLLOVER 0xF003
1271#define BROADCAST_TIME_SET_COMMAND_OFFSET 0x8000
1284#define TRAIN_INSTRUCTION_P_BIT 0x80
1289#define TRAIN_SET_SPEED_DIRECTION 0x00
1292#define TRAIN_SET_FUNCTION 0x01
1295#define TRAIN_EMERGENCY_STOP 0x02
1298#define TRAIN_QUERY_SPEEDS 0x10
1301#define TRAIN_QUERY_FUNCTION 0x11
1304#define TRAIN_CONTROLLER_CONFIG 0x20
1307#define TRAIN_LISTENER_CONFIG 0x30
1310#define TRAIN_MANAGEMENT 0x40
1315#define TRAIN_CONTROLLER_ASSIGN 0x01
1318#define TRAIN_CONTROLLER_RELEASE 0x02
1321#define TRAIN_CONTROLLER_QUERY 0x03
1324#define TRAIN_CONTROLLER_CHANGED 0x04
1329#define TRAIN_LISTENER_ATTACH 0x01
1332#define TRAIN_LISTENER_DETACH 0x02
1335#define TRAIN_LISTENER_QUERY 0x03
1340#define TRAIN_MGMT_RESERVE 0x01
1343#define TRAIN_MGMT_RELEASE 0x02
1346#define TRAIN_MGMT_NOOP 0x03
1351#define TRAIN_LISTENER_FLAG_REVERSE 0x02
1354#define TRAIN_LISTENER_FLAG_LINK_F0 0x04
1357#define TRAIN_LISTENER_FLAG_LINK_FN 0x08
1360#define TRAIN_LISTENER_FLAG_HIDE 0x80
Copyright (c) 2026 Jim Kueneman all rights reserved. See the License