+
+/*** Modbus callbacks ***/
+
+bool modbus_check_discrete_input(u16 addr UNUSED)
+{
+ return false;
+}
+
+bool modbus_get_discrete_input(u16 addr UNUSED)
+{
+ return false;
+}
+
+bool modbus_check_coil(u16 addr UNUSED)
+{
+ return false;
+}
+
+bool modbus_get_coil(u16 addr UNUSED)
+{
+ return false;
+}
+
+void modbus_set_coil(u16 addr UNUSED, bool value UNUSED)
+{
+}
+
+bool modbus_check_input_register(u16 addr UNUSED)
+{
+ return false;
+}
+
+u16 modbus_get_input_register(u16 addr UNUSED)
+{
+ return 0;
+}
+
+bool modbus_check_holding_register(u16 addr UNUSED)
+{
+ return (addr < 16);
+}
+
+u16 modbus_get_holding_register(u16 addr UNUSED)
+{
+ return 0xbeef;
+}
+
+void modbus_set_holding_register(u16 addr UNUSED, u16 value UNUSED)
+{
+}
+
+const char * const modbus_id_strings[MODBUS_ID_MAX] = {
+ [MODBUS_ID_VENDOR_NAME] = "United Computer Wizards",
+ [MODBUS_ID_PRODUCT_CODE] = "42",
+ [MODBUS_ID_MAJOR_MINOR_REVISION] = "1.0",
+ [MODBUS_ID_VENDOR_URL] = "http://www.ucw.cz/",
+ [MODBUS_ID_PRODUCT_NAME] = "Magic Gadget",
+ [MODBUS_ID_USER_APP_NAME] = NULL,
+};