void modbus_init(void);
void modbus_loop(void);
+// If a call-back wants to signal a slave error in the reply
+void modbus_slave_error(void);
+
// Callbacks
bool modbus_check_discrete_input(u16 addr);
u16 modbus_get_holding_register(u16 addr);
void modbus_set_holding_register(u16 addr, u16 value);
+void modbus_ready_hook(void);
+void modbus_frame_start_hook(void);
+
enum modbus_id_object {
MODBUS_ID_VENDOR_NAME, // first three must be always defined
MODBUS_ID_PRODUCT_CODE,