OpenLcbCLib 1.0 Alpha
OpenSource C Library to create OpenLcb/Lcc Nodes
Loading...
Searching...
No Matches
Train Control Protocol Defines

Instruction bytes and sub-commands for MTI_TRAIN_PROTOCOL / MTI_TRAIN_REPLY. More...

Macros

#define TRAIN_INSTRUCTION_P_BIT   0x80
 Bit 7 of the instruction byte: P=1 for train-to-listener forwarded commands.
 
#define TRAIN_SET_SPEED_DIRECTION   0x00
 Set speed and direction: [0x00] [speed_hi] [speed_lo] (float16)
 
#define TRAIN_SET_FUNCTION   0x01
 Set function: [0x01] [addr2] [addr1] [addr0] [val_hi] [val_lo].
 
#define TRAIN_EMERGENCY_STOP   0x02
 Emergency stop: [0x02].
 
#define TRAIN_QUERY_SPEEDS   0x10
 Query speeds: [0x10].
 
#define TRAIN_QUERY_FUNCTION   0x11
 Query function: [0x11] [addr2] [addr1] [addr0].
 
#define TRAIN_CONTROLLER_CONFIG   0x20
 Controller configuration: [0x20] [sub-cmd] ...
 
#define TRAIN_LISTENER_CONFIG   0x30
 Listener configuration: [0x30] [sub-cmd] ...
 
#define TRAIN_MANAGEMENT   0x40
 Management commands: [0x40] [sub-cmd].
 
#define TRAIN_CONTROLLER_ASSIGN   0x01
 Assign controller: [0x20] [0x01] [node_id 6B].
 
#define TRAIN_CONTROLLER_RELEASE   0x02
 Release controller: [0x20] [0x02] [node_id 6B].
 
#define TRAIN_CONTROLLER_QUERY   0x03
 Query controller: [0x20] [0x03].
 
#define TRAIN_CONTROLLER_CHANGED   0x04
 Controller changed notify: [0x20] [0x04] [node_id 6B].
 
#define TRAIN_LISTENER_ATTACH   0x01
 Attach listener: [0x30] [0x01] [flags] [node_id 6B].
 
#define TRAIN_LISTENER_DETACH   0x02
 Detach listener: [0x30] [0x02] [flags] [node_id 6B].
 
#define TRAIN_LISTENER_QUERY   0x03
 Query listener: [0x30] [0x03] [index (opt)].
 
#define TRAIN_MGMT_RESERVE   0x01
 Reserve train node: [0x40] [0x01].
 
#define TRAIN_MGMT_RELEASE   0x02
 Release train node: [0x40] [0x02].
 
#define TRAIN_MGMT_NOOP   0x03
 Heartbeat noop: [0x40] [0x03].
 
#define TRAIN_LISTENER_FLAG_REVERSE   0x02
 Reverse of train in consist.
 
#define TRAIN_LISTENER_FLAG_LINK_F0   0x04
 Link F0 (headlight) with consist lead.
 
#define TRAIN_LISTENER_FLAG_LINK_FN   0x08
 Link Fn functions with consist lead.
 
#define TRAIN_LISTENER_FLAG_HIDE   0x80
 Hide this listener from enumeration.
 

Detailed Description

Instruction bytes and sub-commands for MTI_TRAIN_PROTOCOL / MTI_TRAIN_REPLY.

Macro Definition Documentation

◆ TRAIN_INSTRUCTION_P_BIT

#define TRAIN_INSTRUCTION_P_BIT   0x80

Bit 7 of the instruction byte: P=1 for train-to-listener forwarded commands.

◆ TRAIN_SET_SPEED_DIRECTION

#define TRAIN_SET_SPEED_DIRECTION   0x00

Set speed and direction: [0x00] [speed_hi] [speed_lo] (float16)

◆ TRAIN_SET_FUNCTION

#define TRAIN_SET_FUNCTION   0x01

Set function: [0x01] [addr2] [addr1] [addr0] [val_hi] [val_lo].

◆ TRAIN_EMERGENCY_STOP

#define TRAIN_EMERGENCY_STOP   0x02

Emergency stop: [0x02].

◆ TRAIN_QUERY_SPEEDS

#define TRAIN_QUERY_SPEEDS   0x10

Query speeds: [0x10].

◆ TRAIN_QUERY_FUNCTION

#define TRAIN_QUERY_FUNCTION   0x11

Query function: [0x11] [addr2] [addr1] [addr0].

◆ TRAIN_CONTROLLER_CONFIG

#define TRAIN_CONTROLLER_CONFIG   0x20

Controller configuration: [0x20] [sub-cmd] ...

◆ TRAIN_LISTENER_CONFIG

#define TRAIN_LISTENER_CONFIG   0x30

Listener configuration: [0x30] [sub-cmd] ...

◆ TRAIN_MANAGEMENT

#define TRAIN_MANAGEMENT   0x40

Management commands: [0x40] [sub-cmd].

◆ TRAIN_CONTROLLER_ASSIGN

#define TRAIN_CONTROLLER_ASSIGN   0x01

Assign controller: [0x20] [0x01] [node_id 6B].

◆ TRAIN_CONTROLLER_RELEASE

#define TRAIN_CONTROLLER_RELEASE   0x02

Release controller: [0x20] [0x02] [node_id 6B].

◆ TRAIN_CONTROLLER_QUERY

#define TRAIN_CONTROLLER_QUERY   0x03

Query controller: [0x20] [0x03].

◆ TRAIN_CONTROLLER_CHANGED

#define TRAIN_CONTROLLER_CHANGED   0x04

Controller changed notify: [0x20] [0x04] [node_id 6B].

◆ TRAIN_LISTENER_ATTACH

#define TRAIN_LISTENER_ATTACH   0x01

Attach listener: [0x30] [0x01] [flags] [node_id 6B].

◆ TRAIN_LISTENER_DETACH

#define TRAIN_LISTENER_DETACH   0x02

Detach listener: [0x30] [0x02] [flags] [node_id 6B].

◆ TRAIN_LISTENER_QUERY

#define TRAIN_LISTENER_QUERY   0x03

Query listener: [0x30] [0x03] [index (opt)].

◆ TRAIN_MGMT_RESERVE

#define TRAIN_MGMT_RESERVE   0x01

Reserve train node: [0x40] [0x01].

◆ TRAIN_MGMT_RELEASE

#define TRAIN_MGMT_RELEASE   0x02

Release train node: [0x40] [0x02].

◆ TRAIN_MGMT_NOOP

#define TRAIN_MGMT_NOOP   0x03

Heartbeat noop: [0x40] [0x03].

◆ TRAIN_LISTENER_FLAG_REVERSE

#define TRAIN_LISTENER_FLAG_REVERSE   0x02

Reverse of train in consist.

◆ TRAIN_LISTENER_FLAG_LINK_F0

#define TRAIN_LISTENER_FLAG_LINK_F0   0x04

Link F0 (headlight) with consist lead.

◆ TRAIN_LISTENER_FLAG_LINK_FN

#define TRAIN_LISTENER_FLAG_LINK_FN   0x08

Link Fn functions with consist lead.

◆ TRAIN_LISTENER_FLAG_HIDE

#define TRAIN_LISTENER_FLAG_HIDE   0x80

Hide this listener from enumeration.


Copyright (c) 2026 Jim Kueneman all rights reserved. See the License