OpenLcbCLib 1.0 Alpha
OpenSource C Library to create OpenLcb/Lcc Nodes
Loading...
Searching...
No Matches
protocol_config_mem_operations_handler.h
Go to the documentation of this file.
1
41#ifndef __OPENLCB_PROTOCOL_CONFIG_MEM_OPERATIONS_HANDLER__
42#define __OPENLCB_PROTOCOL_CONFIG_MEM_OPERATIONS_HANDLER__
43
44#include <stdbool.h>
45#include <stdint.h>
46
47#include "openlcb_types.h"
48
56typedef struct {
57
59 void (*load_datagram_received_ok_message)(openlcb_statemachine_info_t *statemachine_info, uint16_t reply_pending_time_in_seconds);
60
62 void (*load_datagram_received_rejected_message)(openlcb_statemachine_info_t *statemachine_info, uint16_t error_code);
63
65 void (*operations_request_options_cmd)(openlcb_statemachine_info_t *statemachine_info, config_mem_operations_request_info_t *config_mem_operations_request_info);
66
68 void (*operations_request_options_cmd_reply)(openlcb_statemachine_info_t *statemachine_info, config_mem_operations_request_info_t *config_mem_operations_request_info);
69
71 void (*operations_request_get_address_space_info)(openlcb_statemachine_info_t *statemachine_info, config_mem_operations_request_info_t *config_mem_operations_request_info);
72
74 void (*operations_request_get_address_space_info_reply_present)(openlcb_statemachine_info_t *statemachine_info, config_mem_operations_request_info_t *config_mem_operations_request_info);
75
77 void (*operations_request_get_address_space_info_reply_not_present)(openlcb_statemachine_info_t *statemachine_info, config_mem_operations_request_info_t *config_mem_operations_request_info);
78
80 void (*operations_request_reserve_lock)(openlcb_statemachine_info_t *statemachine_info, config_mem_operations_request_info_t *config_mem_operations_request_info);
81
83 void (*operations_request_reserve_lock_reply)(openlcb_statemachine_info_t *statemachine_info, config_mem_operations_request_info_t *config_mem_operations_request_info);
84
86 void (*operations_request_get_unique_id)(openlcb_statemachine_info_t *statemachine_info, config_mem_operations_request_info_t *config_mem_operations_request_info);
87
89 void (*operations_request_get_unique_id_reply)(openlcb_statemachine_info_t *statemachine_info, config_mem_operations_request_info_t *config_mem_operations_request_info);
90
92 void (*operations_request_freeze)(openlcb_statemachine_info_t *statemachine_info, config_mem_operations_request_info_t *config_mem_operations_request_info);
93
95 void (*operations_request_unfreeze)(openlcb_statemachine_info_t *statemachine_info, config_mem_operations_request_info_t *config_mem_operations_request_info);
96
98 void (*operations_request_update_complete)(openlcb_statemachine_info_t *statemachine_info, config_mem_operations_request_info_t *config_mem_operations_request_info);
99
101 void (*operations_request_reset_reboot)(openlcb_statemachine_info_t *statemachine_info, config_mem_operations_request_info_t *config_mem_operations_request_info);
102
104 void (*operations_request_factory_reset)(openlcb_statemachine_info_t *statemachine_info, config_mem_operations_request_info_t *config_mem_operations_request_info);
105
106
108
109#ifdef __cplusplus
110extern "C" {
111#endif /* __cplusplus */
112
118 extern void ProtocolConfigMemOperationsHandler_initialize(const interface_protocol_config_mem_operations_handler_t *interface_protocol_config_mem_operations_handler);
119
120 // ---- Incoming command/reply handlers (dispatched from datagram handler) ----
121
128
135
142
149
156
163
170
177
184
191
198
205
215
222
223 // ---- Outgoing request builders (used when acting as a config tool) ----
224
232
240
248
249
250#ifdef __cplusplus
251}
252#endif /* __cplusplus */
253
254#endif /* __OPENLCB_PROTOCOL_CONFIG_MEM_OPERATIONS_HANDLER__ */
255
Core type definitions, structures, and configuration constants for the OpenLCB library.
void ProtocolConfigMemOperationsHandler_factory_reset(openlcb_statemachine_info_t *statemachine_info)
Handle incoming Factory Reset command (destructive).
Definition protocol_config_mem_operations_handler.c:688
void ProtocolConfigMemOperationsHandler_get_unique_id_reply(openlcb_statemachine_info_t *statemachine_info)
Handle incoming Get Unique ID reply.
Definition protocol_config_mem_operations_handler.c:601
void ProtocolConfigMemOperationsHandler_initialize(const interface_protocol_config_mem_operations_handler_t *interface_protocol_config_mem_operations_handler)
Stores the callback interface. Call once at startup.
Definition protocol_config_mem_operations_handler.c:66
void ProtocolConfigMemOperationsHandler_reserve_lock(openlcb_statemachine_info_t *statemachine_info)
Handle incoming Lock/Reserve command.
Definition protocol_config_mem_operations_handler.c:564
void ProtocolConfigMemOperationsHandler_get_unique_id(openlcb_statemachine_info_t *statemachine_info)
Handle incoming Get Unique ID command.
Definition protocol_config_mem_operations_handler.c:589
void ProtocolConfigMemOperationsHandler_unfreeze(openlcb_statemachine_info_t *statemachine_info)
Handle incoming Unfreeze command.
Definition protocol_config_mem_operations_handler.c:613
void ProtocolConfigMemOperationsHandler_reserve_lock_reply(openlcb_statemachine_info_t *statemachine_info)
Handle incoming Lock/Reserve reply.
Definition protocol_config_mem_operations_handler.c:576
void ProtocolConfigMemOperationsHandler_update_complete(openlcb_statemachine_info_t *statemachine_info)
Handle incoming Update Complete command.
Definition protocol_config_mem_operations_handler.c:637
void ProtocolConfigMemOperationsHandler_request_options_cmd(openlcb_statemachine_info_t *statemachine_info, config_mem_operations_request_info_t *config_mem_operations_request_info)
Build outgoing Get Configuration Options command datagram.
Definition protocol_config_mem_operations_handler.c:317
void ProtocolConfigMemOperationsHandler_freeze(openlcb_statemachine_info_t *statemachine_info)
Handle incoming Freeze command.
Definition protocol_config_mem_operations_handler.c:625
void ProtocolConfigMemOperationsHandler_get_address_space_info_reply_not_present(openlcb_statemachine_info_t *statemachine_info)
Handle incoming Address Space Info Not Present reply.
Definition protocol_config_mem_operations_handler.c:540
void ProtocolConfigMemOperationsHandler_request_get_address_space_info(openlcb_statemachine_info_t *statemachine_info, config_mem_operations_request_info_t *config_mem_operations_request_info)
Build outgoing Get Address Space Info command datagram.
Definition protocol_config_mem_operations_handler.c:374
void ProtocolConfigMemOperationsHandler_options_cmd(openlcb_statemachine_info_t *statemachine_info)
Handle incoming Get Configuration Options command.
Definition protocol_config_mem_operations_handler.c:504
void ProtocolConfigMemOperationsHandler_request_reserve_lock(openlcb_statemachine_info_t *statemachine_info, config_mem_operations_request_info_t *config_mem_operations_request_info)
Build outgoing Lock/Reserve command datagram.
Definition protocol_config_mem_operations_handler.c:465
void ProtocolConfigMemOperationsHandler_options_reply(openlcb_statemachine_info_t *statemachine_info)
Handle incoming Get Configuration Options reply.
Definition protocol_config_mem_operations_handler.c:516
void ProtocolConfigMemOperationsHandler_get_address_space_info_reply_present(openlcb_statemachine_info_t *statemachine_info)
Handle incoming Address Space Info Present reply.
Definition protocol_config_mem_operations_handler.c:552
void ProtocolConfigMemOperationsHandler_get_address_space_info(openlcb_statemachine_info_t *statemachine_info)
Handle incoming Get Address Space Info command.
Definition protocol_config_mem_operations_handler.c:528
void ProtocolConfigMemOperationsHandler_reset_reboot(openlcb_statemachine_info_t *statemachine_info)
Handle incoming Reset/Reboot command.
Definition protocol_config_mem_operations_handler.c:659
Request info for Get Options / Get Address Space Info commands.
Definition openlcb_types.h:785
Callback interface for memory-config operations.
Definition protocol_config_mem_operations_handler.h:56
Complete context passed to protocol handler functions.
Definition openlcb_types.h:743

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