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

User configuration for OpenLcbCLib. More...

Data Fields

void(* lock_shared_resources )(void)
 Disable interrupts / acquire mutex for shared resource access. REQUIRED.
 
void(* unlock_shared_resources )(void)
 Re-enable interrupts / release mutex. REQUIRED.
 
void(* on_optional_interaction_rejected )(openlcb_node_t *openlcb_node, node_id_t source_node_id, uint16_t error_code, uint16_t rejected_mti)
 Optional Interaction Rejected received. Optional. Notifies the application that a message was rejected by a remote node.
 
void(* on_terminate_due_to_error )(openlcb_node_t *openlcb_node, node_id_t source_node_id, uint16_t error_code, uint16_t rejected_mti)
 Terminate Due To Error received. Optional. Notifies the application that a remote node terminated with an error.
 
void(* on_100ms_timer )(void)
 100ms periodic timer callback. Optional.
 
bool(* on_login_complete )(openlcb_node_t *openlcb_node)
 Called when a node completes login and enters RUN state. Optional. Return true if login can complete, false to delay.
 

Detailed Description

User configuration for OpenLcbCLib.

Populate this struct with hardware driver functions and optional application callbacks, then pass it to OpenLcb_initialize(). Required fields are marked REQUIRED and must be non-NULL.

static const openlcb_config_t my_config = {
.lock_shared_resources = &MyDriver_lock,
.unlock_shared_resources = &MyDriver_unlock,
.config_mem_read = &MyDriver_eeprom_read, // only with MEMORY_CONFIGURATION
.config_mem_write = &MyDriver_eeprom_write, // only with MEMORY_CONFIGURATION
.reboot = &MyDriver_reboot, // only with MEMORY_CONFIGURATION
.on_login_complete = &my_login_handler,
.on_consumed_event_pcer = &my_event_handler,
};
OpenLcb_initialize(&my_config);
void OpenLcb_initialize(const openlcb_config_t *config)
Initializes the entire OpenLCB stack with one call.
Definition openlcb_config.c:637
User configuration for OpenLcbCLib.
Definition openlcb_config.h:158

Field Documentation

◆ lock_shared_resources

void(* lock_shared_resources) (void)

Disable interrupts / acquire mutex for shared resource access. REQUIRED.

◆ unlock_shared_resources

void(* unlock_shared_resources) (void)

Re-enable interrupts / release mutex. REQUIRED.

◆ on_optional_interaction_rejected

void(* on_optional_interaction_rejected) (openlcb_node_t *openlcb_node, node_id_t source_node_id, uint16_t error_code, uint16_t rejected_mti)

Optional Interaction Rejected received. Optional. Notifies the application that a message was rejected by a remote node.

See also
MessageNetworkS Section 3.5.2.

◆ on_terminate_due_to_error

void(* on_terminate_due_to_error) (openlcb_node_t *openlcb_node, node_id_t source_node_id, uint16_t error_code, uint16_t rejected_mti)

Terminate Due To Error received. Optional. Notifies the application that a remote node terminated with an error.

See also
MessageNetworkS Section 3.5.2.

◆ on_100ms_timer

void(* on_100ms_timer) (void)

100ms periodic timer callback. Optional.

◆ on_login_complete

bool(* on_login_complete) (openlcb_node_t *openlcb_node)

Called when a node completes login and enters RUN state. Optional. Return true if login can complete, false to delay.


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

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