OpenLcbCLib 1.0 Alpha
OpenSource C Library to create OpenLcb/Lcc Nodes
Loading...
Searching...
No Matches
interface_protocol_config_mem_read_handler_t Struct Reference

Callback interface for config memory reads. Datagram ACK and config_memory_read are REQUIRED; SNIP loaders and per-space handlers are optional. More...

Data Fields

void(* load_datagram_received_ok_message )(openlcb_statemachine_info_t *statemachine_info, uint16_t reply_pending_time_in_seconds)
 Build Datagram Received OK with Reply Pending (always set) and timeout. REQUIRED.
 
void(* load_datagram_received_rejected_message )(openlcb_statemachine_info_t *statemachine_info, uint16_t return_code)
 Build Datagram Rejected with error code. REQUIRED.
 
uint16_t(* config_memory_read )(openlcb_node_t *openlcb_node, uint32_t address, uint16_t count, configuration_memory_buffer_t *buffer)
 Read bytes from config memory into buffer. Returns bytes read. REQUIRED.
 
uint16_t(* snip_load_manufacturer_version_id )(openlcb_node_t *openlcb_node, openlcb_msg_t *worker_msg, uint16_t payload_index, uint16_t requested_bytes)
 Load mfg version ID into payload. Optional (for 0xFC).
 
uint16_t(* snip_load_name )(openlcb_node_t *openlcb_node, openlcb_msg_t *worker_msg, uint16_t payload_index, uint16_t requested_bytes)
 Load mfg name into payload. Optional (for 0xFC).
 
uint16_t(* snip_load_model )(openlcb_node_t *openlcb_node, openlcb_msg_t *worker_msg, uint16_t payload_index, uint16_t requested_bytes)
 Load model into payload. Optional (for 0xFC).
 
uint16_t(* snip_load_hardware_version )(openlcb_node_t *openlcb_node, openlcb_msg_t *worker_msg, uint16_t payload_index, uint16_t requested_bytes)
 Load HW version into payload. Optional (for 0xFC).
 
uint16_t(* snip_load_software_version )(openlcb_node_t *openlcb_node, openlcb_msg_t *worker_msg, uint16_t payload_index, uint16_t requested_bytes)
 Load SW version into payload. Optional (for 0xFC).
 
uint16_t(* snip_load_user_version_id )(openlcb_node_t *openlcb_node, openlcb_msg_t *worker_msg, uint16_t payload_index, uint16_t requested_bytes)
 Load user version ID into payload. Optional (for 0xFB).
 
uint16_t(* snip_load_user_name )(openlcb_node_t *openlcb_node, openlcb_msg_t *worker_msg, uint16_t payload_index, uint16_t requested_bytes)
 Load user name into payload. Optional (for 0xFB).
 
uint16_t(* snip_load_user_description )(openlcb_node_t *openlcb_node, openlcb_msg_t *worker_msg, uint16_t payload_index, uint16_t requested_bytes)
 Load user description into payload. Optional (for 0xFB).
 
void(* read_request_config_definition_info )(openlcb_statemachine_info_t *statemachine_info, config_mem_read_request_info_t *config_mem_read_request_info)
 Custom CDI (0xFF) read handler. Optional.
 
void(* read_request_all )(openlcb_statemachine_info_t *statemachine_info, config_mem_read_request_info_t *config_mem_read_request_info)
 Custom All (0xFE) read handler. Optional.
 
void(* read_request_config_mem )(openlcb_statemachine_info_t *statemachine_info, config_mem_read_request_info_t *config_mem_read_request_info)
 Custom Config (0xFD) read handler. Optional.
 
void(* read_request_acdi_manufacturer )(openlcb_statemachine_info_t *statemachine_info, config_mem_read_request_info_t *config_mem_read_request_info)
 Custom ACDI-Mfg (0xFC) read handler. Optional.
 
void(* read_request_acdi_user )(openlcb_statemachine_info_t *statemachine_info, config_mem_read_request_info_t *config_mem_read_request_info)
 Custom ACDI-User (0xFB) read handler. Optional.
 
void(* read_request_train_function_config_definition_info )(openlcb_statemachine_info_t *statemachine_info, config_mem_read_request_info_t *config_mem_read_request_info)
 Custom Train FDI (0xFA) read handler. Optional.
 
void(* read_request_train_function_config_memory )(openlcb_statemachine_info_t *statemachine_info, config_mem_read_request_info_t *config_mem_read_request_info)
 Custom Train Fn Config (0xF9) read handler. Optional.
 
uint16_t(* delayed_reply_time )(openlcb_statemachine_info_t *statemachine_info, config_mem_read_request_info_t *config_mem_read_request_info)
 Override reply delay (return N means 2^N seconds). Optional (default 0).
 

Detailed Description

Callback interface for config memory reads. Datagram ACK and config_memory_read are REQUIRED; SNIP loaders and per-space handlers are optional.

Field Documentation

◆ load_datagram_received_ok_message

void(* load_datagram_received_ok_message) (openlcb_statemachine_info_t *statemachine_info, uint16_t reply_pending_time_in_seconds)

Build Datagram Received OK with Reply Pending (always set) and timeout. REQUIRED.

◆ load_datagram_received_rejected_message

void(* load_datagram_received_rejected_message) (openlcb_statemachine_info_t *statemachine_info, uint16_t return_code)

Build Datagram Rejected with error code. REQUIRED.

◆ config_memory_read

uint16_t(* config_memory_read) (openlcb_node_t *openlcb_node, uint32_t address, uint16_t count, configuration_memory_buffer_t *buffer)

Read bytes from config memory into buffer. Returns bytes read. REQUIRED.

◆ snip_load_manufacturer_version_id

uint16_t(* snip_load_manufacturer_version_id) (openlcb_node_t *openlcb_node, openlcb_msg_t *worker_msg, uint16_t payload_index, uint16_t requested_bytes)

Load mfg version ID into payload. Optional (for 0xFC).

◆ snip_load_name

uint16_t(* snip_load_name) (openlcb_node_t *openlcb_node, openlcb_msg_t *worker_msg, uint16_t payload_index, uint16_t requested_bytes)

Load mfg name into payload. Optional (for 0xFC).

◆ snip_load_model

uint16_t(* snip_load_model) (openlcb_node_t *openlcb_node, openlcb_msg_t *worker_msg, uint16_t payload_index, uint16_t requested_bytes)

Load model into payload. Optional (for 0xFC).

◆ snip_load_hardware_version

uint16_t(* snip_load_hardware_version) (openlcb_node_t *openlcb_node, openlcb_msg_t *worker_msg, uint16_t payload_index, uint16_t requested_bytes)

Load HW version into payload. Optional (for 0xFC).

◆ snip_load_software_version

uint16_t(* snip_load_software_version) (openlcb_node_t *openlcb_node, openlcb_msg_t *worker_msg, uint16_t payload_index, uint16_t requested_bytes)

Load SW version into payload. Optional (for 0xFC).

◆ snip_load_user_version_id

uint16_t(* snip_load_user_version_id) (openlcb_node_t *openlcb_node, openlcb_msg_t *worker_msg, uint16_t payload_index, uint16_t requested_bytes)

Load user version ID into payload. Optional (for 0xFB).

◆ snip_load_user_name

uint16_t(* snip_load_user_name) (openlcb_node_t *openlcb_node, openlcb_msg_t *worker_msg, uint16_t payload_index, uint16_t requested_bytes)

Load user name into payload. Optional (for 0xFB).

◆ snip_load_user_description

uint16_t(* snip_load_user_description) (openlcb_node_t *openlcb_node, openlcb_msg_t *worker_msg, uint16_t payload_index, uint16_t requested_bytes)

Load user description into payload. Optional (for 0xFB).

◆ read_request_config_definition_info

void(* read_request_config_definition_info) (openlcb_statemachine_info_t *statemachine_info, config_mem_read_request_info_t *config_mem_read_request_info)

Custom CDI (0xFF) read handler. Optional.

◆ read_request_all

void(* read_request_all) (openlcb_statemachine_info_t *statemachine_info, config_mem_read_request_info_t *config_mem_read_request_info)

Custom All (0xFE) read handler. Optional.

◆ read_request_config_mem

void(* read_request_config_mem) (openlcb_statemachine_info_t *statemachine_info, config_mem_read_request_info_t *config_mem_read_request_info)

Custom Config (0xFD) read handler. Optional.

◆ read_request_acdi_manufacturer

void(* read_request_acdi_manufacturer) (openlcb_statemachine_info_t *statemachine_info, config_mem_read_request_info_t *config_mem_read_request_info)

Custom ACDI-Mfg (0xFC) read handler. Optional.

◆ read_request_acdi_user

void(* read_request_acdi_user) (openlcb_statemachine_info_t *statemachine_info, config_mem_read_request_info_t *config_mem_read_request_info)

Custom ACDI-User (0xFB) read handler. Optional.

◆ read_request_train_function_config_definition_info

void(* read_request_train_function_config_definition_info) (openlcb_statemachine_info_t *statemachine_info, config_mem_read_request_info_t *config_mem_read_request_info)

Custom Train FDI (0xFA) read handler. Optional.

◆ read_request_train_function_config_memory

void(* read_request_train_function_config_memory) (openlcb_statemachine_info_t *statemachine_info, config_mem_read_request_info_t *config_mem_read_request_info)

Custom Train Fn Config (0xF9) read handler. Optional.

◆ delayed_reply_time

uint16_t(* delayed_reply_time) (openlcb_statemachine_info_t *statemachine_info, config_mem_read_request_info_t *config_mem_read_request_info)

Override reply delay (return N means 2^N seconds). Optional (default 0).


The documentation for this struct was generated from the following file:

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