X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;f=firmware%2Fmodbus.h;h=937b8e8d71adb618581cd06f10216583ad281f0d;hb=1d97e30f53c89725c8acf446bac51f295193d41f;hp=4218317c54f627dae421c996f57e04b4c73d2cc1;hpb=86f8e5bfd1c753034b9ca876dac7d18720ab8808;p=openparking.git diff --git a/firmware/modbus.h b/firmware/modbus.h old mode 100755 new mode 100644 index 4218317..937b8e8 --- a/firmware/modbus.h +++ b/firmware/modbus.h @@ -8,7 +8,22 @@ * All bugs by Jan "Yenya" Kasprzak :-) */ -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__ */