47#ifndef __OPENLCB_APPLICATION_TRAIN__
48#define __OPENLCB_APPLICATION_TRAIN__
void OpenLcbApplicationTrain_initialize(const interface_openlcb_application_train_t *interface)
Initialises the train module and stores the callback interface.
Definition openlcb_application_train.c:71
train_state_t * OpenLcbApplicationTrain_get_state(openlcb_node_t *openlcb_node)
Returns the train state for a node.
Definition openlcb_application_train.c:149
void OpenLcbApplicationTrain_100ms_timer_tick(uint8_t current_tick)
Decrements the heartbeat countdown for all active train nodes.
Definition openlcb_application_train.c:300
void OpenLcbApplicationTrain_send_query_speeds(openlcb_node_t *openlcb_node, uint16_t train_alias, node_id_t train_node_id)
Sends a Query Speeds command to a train node.
Definition openlcb_application_train.c:531
bool OpenLcbApplicationTrain_is_long_address(openlcb_node_t *openlcb_node)
Returns true if the train node uses long DCC addressing.
Definition openlcb_application_train.c:750
void OpenLcbApplicationTrain_set_speed_steps(openlcb_node_t *openlcb_node, uint8_t speed_steps)
Sets the speed-step mode for a train node.
Definition openlcb_application_train.c:774
void OpenLcbApplicationTrain_send_assign_controller(openlcb_node_t *openlcb_node, uint16_t train_alias, node_id_t train_node_id)
Sends an Assign Controller command to a train node.
Definition openlcb_application_train.c:600
uint8_t OpenLcbApplicationTrain_get_speed_steps(openlcb_node_t *openlcb_node)
Returns the speed-step mode for a train node.
Definition openlcb_application_train.c:799
void OpenLcbApplicationTrain_send_release_controller(openlcb_node_t *openlcb_node, uint16_t train_alias, node_id_t train_node_id)
Sends a Release Controller command to a train node.
Definition openlcb_application_train.c:634
void OpenLcbApplicationTrain_send_set_speed(openlcb_node_t *openlcb_node, uint16_t train_alias, node_id_t train_node_id, uint16_t speed)
Sends a Set Speed/Direction command to a train node.
Definition openlcb_application_train.c:425
void OpenLcbApplicationTrain_send_noop(openlcb_node_t *openlcb_node, uint16_t train_alias, node_id_t train_node_id)
Sends a NOOP (no-operation) management command to a train node.
Definition openlcb_application_train.c:667
uint16_t OpenLcbApplicationTrain_get_dcc_address(openlcb_node_t *openlcb_node)
Returns the DCC address for a train node.
Definition openlcb_application_train.c:725
void OpenLcbApplicationTrain_send_set_function(openlcb_node_t *openlcb_node, uint16_t train_alias, node_id_t train_node_id, uint32_t fn_address, uint16_t fn_value)
Sends a Set Function command to a train node.
Definition openlcb_application_train.c:461
void OpenLcbApplicationTrain_send_query_function(openlcb_node_t *openlcb_node, uint16_t train_alias, node_id_t train_node_id, uint32_t fn_address)
Sends a Query Function command to a train node.
Definition openlcb_application_train.c:565
train_state_t * OpenLcbApplicationTrain_setup(openlcb_node_t *openlcb_node)
Allocates a train state slot and assigns it to the node.
Definition openlcb_application_train.c:99
void OpenLcbApplicationTrain_send_emergency_stop(openlcb_node_t *openlcb_node, uint16_t train_alias, node_id_t train_node_id)
Sends an Emergency Stop command to a train node.
Definition openlcb_application_train.c:499
void OpenLcbApplicationTrain_set_dcc_address(openlcb_node_t *openlcb_node, uint16_t dcc_address, bool is_long_address)
Sets the DCC address and address type for a train node.
Definition openlcb_application_train.c:699
Core type definitions, structures, and configuration constants for the OpenLCB library.
uint64_t node_id_t
48-bit Node ID stored in a 64-bit type (upper 16 bits unused).
Definition openlcb_types.h:359
Application-provided callbacks for the train module.
Definition openlcb_application_train.h:63
Core OpenLCB message structure.
Definition openlcb_types.h:480
OpenLCB virtual node.
Definition openlcb_types.h:679
Mutable runtime state for a single train node.
Definition openlcb_types.h:644