39#ifndef __OPENLCB_PROTOCOL_SNIP__
40#define __OPENLCB_PROTOCOL_SNIP__
Core type definitions, structures, and configuration constants for the OpenLCB library.
uint8_t configuration_memory_buffer_t[LEN_DATAGRAM_MAX_PAYLOAD]
Configuration memory read/write operation buffer (64 bytes).
Definition openlcb_types.h:365
uint16_t ProtocolSnip_load_name(openlcb_node_t *openlcb_node, openlcb_msg_t *outgoing_msg, uint16_t offset, uint16_t requested_bytes)
Copies manufacturer name string (null-terminated).
Definition protocol_snip.c:164
uint16_t ProtocolSnip_load_manufacturer_version_id(openlcb_node_t *openlcb_node, openlcb_msg_t *outgoing_msg, uint16_t offset, uint16_t requested_bytes)
Copies manufacturer version ID byte (1 byte).
Definition protocol_snip.c:151
void ProtocolSnip_initialize(const interface_openlcb_protocol_snip_t *interface_openlcb_protocol_snip)
Stores the callback interface. Call once at startup.
Definition protocol_snip.c:70
void ProtocolSnip_handle_simple_node_info_request(openlcb_statemachine_info_t *statemachine_info)
Builds a SNIP reply (MTI 0x0A08) from node params + config memory.
Definition protocol_snip.c:314
uint16_t ProtocolSnip_load_user_description(openlcb_node_t *openlcb_node, openlcb_msg_t *outgoing_msg, uint16_t offset, uint16_t requested_bytes)
Reads user description from config memory (null-terminated, max 64 bytes).
Definition protocol_snip.c:274
uint16_t ProtocolSnip_load_user_version_id(openlcb_node_t *openlcb_node, openlcb_msg_t *outgoing_msg, uint16_t offset, uint16_t requested_bytes)
Copies user version ID byte (1 byte).
Definition protocol_snip.c:200
void ProtocolSnip_handle_simple_node_info_reply(openlcb_statemachine_info_t *statemachine_info)
Handles an incoming SNIP reply (MTI 0x0A08). No automatic response.
Definition protocol_snip.c:378
uint16_t ProtocolSnip_load_software_version(openlcb_node_t *openlcb_node, openlcb_msg_t *outgoing_msg, uint16_t offset, uint16_t requested_bytes)
Copies software version string (null-terminated).
Definition protocol_snip.c:191
uint16_t ProtocolSnip_load_model(openlcb_node_t *openlcb_node, openlcb_msg_t *outgoing_msg, uint16_t offset, uint16_t requested_bytes)
Copies model string (null-terminated).
Definition protocol_snip.c:173
uint16_t ProtocolSnip_load_hardware_version(openlcb_node_t *openlcb_node, openlcb_msg_t *outgoing_msg, uint16_t offset, uint16_t requested_bytes)
Copies hardware version string (null-terminated).
Definition protocol_snip.c:182
bool ProtocolSnip_validate_snip_reply(openlcb_msg_t *snip_reply_msg)
Validates a SNIP reply: correct MTI, valid length, exactly 6 null terminators.
Definition protocol_snip.c:398
uint16_t ProtocolSnip_load_user_name(openlcb_node_t *openlcb_node, openlcb_msg_t *outgoing_msg, uint16_t offset, uint16_t requested_bytes)
Reads user name from config memory (null-terminated, max 63 bytes).
Definition protocol_snip.c:229
Callback interface for SNIP. config_memory_read is REQUIRED.
Definition protocol_snip.h:48
Core OpenLCB message structure.
Definition openlcb_types.h:480
OpenLCB virtual node.
Definition openlcb_types.h:679
Complete context passed to protocol handler functions.
Definition openlcb_types.h:743