modbus_params.h 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. #ifndef __MODBUS_PARAMS_H
  2. #define __MODBUS_PARAMS_H
  3. #include "mb.h"
  4. #include "mbport.h"
  5. #include "modbus.h"
  6. //#include "settings_sys.h"
  7. #include <stdbool.h>
  8. #define MB_PARAM_MAX 11
  9. //
  10. typedef struct {
  11. uint16_t reg;
  12. uint16_t size;
  13. uint8_t *param;
  14. bool f_activity;
  15. mb_delay_action_t (*set)(void);
  16. void (*get)(uint8_t* buf, uint8_t size);
  17. void (*check_handler)(void);
  18. } mb_param_t;
  19. //
  20. void mb_init_params(void);
  21. // Возвращает размер параметра в регистрах
  22. bool mb_find_param(uint16_t reg, uint16_t *index, uint16_t *size);
  23. //
  24. mb_delay_action_t mb_set_param(uint8_t *buf, uint16_t index);
  25. //
  26. void mb_get_param(uint8_t *buf, uint16_t index);
  27. // Установка адреса. Запрос без параметров.
  28. bool mb_set_addr(uint8_t *buf, uint8_t *addr);
  29. // Установка адреса по ID
  30. bool mb_set_addr_id(uint8_t *buf, uint8_t *addr);
  31. // Установка адреса по серийному номеру
  32. bool mb_set_addr_serial(uint8_t *buf, uint8_t *addr);
  33. // -------------------------------------------------------------------------- //
  34. // Установка параметров
  35. // -------------------------------------------------------------------------- //
  36. //
  37. mb_delay_action_t mb_set_time(void);
  38. //
  39. mb_delay_action_t set_din_mode(void);
  40. // -------------------------------------------------------------------------- //
  41. // Проверка параметров //
  42. // -------------------------------------------------------------------------- //
  43. //
  44. void mb_check_dummy(void);
  45. #endif // __MODBUS_PARAMS_H