]> www.fi.muni.cz Git - openparking.git/blobdiff - firmware/modbus.h
Working modbus
[openparking.git] / firmware / modbus.h
index 4218317c54f627dae421c996f57e04b4c73d2cc1..937b8e8d71adb618581cd06f10216583ad281f0d 100755 (executable)
@@ -8,7 +8,22 @@
  * All bugs by Jan "Yenya" Kasprzak <kas@fi.muni.cz> :-)
  */
 
-void modbus_init();
+void modbus_init(uint8_t unit_id);
 void modbus_poll();
 
+typedef enum {
+       MB_OK = 0,
+       MB_ILLEGAL_FUNC = 1,
+       MB_ILLEGAL_ADDR = 2,
+       MB_ILLEGAL_VAL  = 3,
+} mb_exception;
+
+#define MB_HOLD_REGS_BASE      1000
+#define MB_N_HOLD_REGS         40
+#define MB_N_HOLD_REGS_EEPROM  20
+extern uint16_t hold_regs[MB_N_HOLD_REGS];
+#define mb_unit_id     (hold_regs[0])
+
+uint8_t hold_reg_is_valid(uint16_t reg, uint16_t val);
+
 #endif /* MODBUS_H__ */