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

Callback interface for memory-config write operations. More...

Data Fields

void(* load_datagram_received_ok_message )(openlcb_statemachine_info_t *statemachine_info, uint16_t reply_pending_time_in_seconds)
 REQUIRED — Send Datagram Received OK with Reply Pending (always set) and timeout.
 
void(* load_datagram_received_rejected_message )(openlcb_statemachine_info_t *statemachine_info, uint16_t return_code)
 REQUIRED — Send Datagram Received Rejected with error code.
 
uint16_t(* config_memory_write )(openlcb_node_t *openlcb_node, uint32_t address, uint16_t count, configuration_memory_buffer_t *buffer)
 REQUIRED — Write bytes to config memory; returns bytes written.
 
uint16_t(* config_memory_read )(openlcb_node_t *openlcb_node, uint32_t address, uint16_t count, configuration_memory_buffer_t *buffer)
 OPTIONAL — Read bytes from config memory; needed for write-under-mask read-modify-write.
 
void(* write_request_config_definition_info )(openlcb_statemachine_info_t *statemachine_info, config_mem_write_request_info_t *config_mem_write_request_info)
 Optional — CDI (0xFF) write handler (normally read-only).
 
void(* write_request_all )(openlcb_statemachine_info_t *statemachine_info, config_mem_write_request_info_t *config_mem_write_request_info)
 Optional — All (0xFE) write handler.
 
void(* write_request_config_mem )(openlcb_statemachine_info_t *statemachine_info, config_mem_write_request_info_t *config_mem_write_request_info)
 Optional — Config (0xFD) write handler.
 
void(* write_request_acdi_manufacturer )(openlcb_statemachine_info_t *statemachine_info, config_mem_write_request_info_t *config_mem_write_request_info)
 Optional — ACDI-Mfg (0xFC) write handler (normally read-only).
 
void(* write_request_acdi_user )(openlcb_statemachine_info_t *statemachine_info, config_mem_write_request_info_t *config_mem_write_request_info)
 Optional — ACDI-User (0xFB) write handler.
 
void(* write_request_train_function_config_definition_info )(openlcb_statemachine_info_t *statemachine_info, config_mem_write_request_info_t *config_mem_write_request_info)
 Optional — Train FDI (0xFA) write handler (normally read-only).
 
void(* write_request_train_function_config_memory )(openlcb_statemachine_info_t *statemachine_info, config_mem_write_request_info_t *config_mem_write_request_info)
 Optional — Train Fn Config (0xF9) write handler.
 
void(* write_request_firmware )(openlcb_statemachine_info_t *statemachine_info, config_mem_write_request_info_t *config_mem_write_request_info)
 Optional — Firmware (0xEF) write handler.
 
uint16_t(* delayed_reply_time )(openlcb_statemachine_info_t *statemachine_info, config_mem_write_request_info_t *config_mem_write_request_info)
 Optional — Override reply delay (return N → 2^N seconds). Default 0.
 
void(* on_function_changed )(openlcb_node_t *openlcb_node, uint32_t fn_address, uint16_t fn_value)
 Optional — Notifier fired when a train function changes via 0xF9 write.
 

Detailed Description

Callback interface for memory-config write operations.

Required: load_datagram_received_ok_message, load_datagram_received_rejected_message, config_memory_write. All per-space handlers and delayed_reply_time are optional (NULL).

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)

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

◆ load_datagram_received_rejected_message

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

REQUIRED — Send Datagram Received Rejected with error code.

◆ config_memory_write

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

REQUIRED — Write bytes to config memory; returns bytes written.

◆ config_memory_read

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

OPTIONAL — Read bytes from config memory; needed for write-under-mask read-modify-write.

◆ write_request_config_definition_info

void(* write_request_config_definition_info) (openlcb_statemachine_info_t *statemachine_info, config_mem_write_request_info_t *config_mem_write_request_info)

Optional — CDI (0xFF) write handler (normally read-only).

◆ write_request_all

void(* write_request_all) (openlcb_statemachine_info_t *statemachine_info, config_mem_write_request_info_t *config_mem_write_request_info)

Optional — All (0xFE) write handler.

◆ write_request_config_mem

void(* write_request_config_mem) (openlcb_statemachine_info_t *statemachine_info, config_mem_write_request_info_t *config_mem_write_request_info)

Optional — Config (0xFD) write handler.

◆ write_request_acdi_manufacturer

void(* write_request_acdi_manufacturer) (openlcb_statemachine_info_t *statemachine_info, config_mem_write_request_info_t *config_mem_write_request_info)

Optional — ACDI-Mfg (0xFC) write handler (normally read-only).

◆ write_request_acdi_user

void(* write_request_acdi_user) (openlcb_statemachine_info_t *statemachine_info, config_mem_write_request_info_t *config_mem_write_request_info)

Optional — ACDI-User (0xFB) write handler.

◆ write_request_train_function_config_definition_info

void(* write_request_train_function_config_definition_info) (openlcb_statemachine_info_t *statemachine_info, config_mem_write_request_info_t *config_mem_write_request_info)

Optional — Train FDI (0xFA) write handler (normally read-only).

◆ write_request_train_function_config_memory

void(* write_request_train_function_config_memory) (openlcb_statemachine_info_t *statemachine_info, config_mem_write_request_info_t *config_mem_write_request_info)

Optional — Train Fn Config (0xF9) write handler.

◆ write_request_firmware

void(* write_request_firmware) (openlcb_statemachine_info_t *statemachine_info, config_mem_write_request_info_t *config_mem_write_request_info)

Optional — Firmware (0xEF) write handler.

◆ delayed_reply_time

uint16_t(* delayed_reply_time) (openlcb_statemachine_info_t *statemachine_info, config_mem_write_request_info_t *config_mem_write_request_info)

Optional — Override reply delay (return N → 2^N seconds). Default 0.

◆ on_function_changed

void(* on_function_changed) (openlcb_node_t *openlcb_node, uint32_t fn_address, uint16_t fn_value)

Optional — Notifier fired when a train function changes via 0xF9 write.


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

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