modbus_params.h 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. #ifndef __MODBUS_PARAMS_H
  2. #define __MODBUS_PARAMS_H
  3. #include "mb.h"
  4. #include "mbport.h"
  5. #include "modbus.h"
  6. #include <stdbool.h>
  7. #ifdef __cplusplus
  8. extern "C" {
  9. #endif
  10. #define MB_PARAM_MAX 87 //54
  11. //
  12. typedef struct {
  13. uint16_t reg;
  14. uint16_t size;
  15. uint8_t *param;
  16. bool f_activity;
  17. mb_delay_action_t (*set)(void);
  18. void (*get)(uint8_t* buf, uint8_t size);
  19. void (*check_handler)(void);
  20. } mb_param_t;
  21. //
  22. void mb_init_params(void);
  23. // Возвращает размер параметра в регистрах
  24. bool mb_find_param(uint16_t reg, uint16_t *index, uint16_t *size);
  25. //
  26. mb_delay_action_t mb_set_param(uint8_t *buf, uint16_t index);
  27. //
  28. void mb_get_param(uint8_t *buf, uint16_t index);
  29. // Установка адреса. Запрос без параметров.
  30. bool mb_set_addr(uint8_t *buf, uint8_t *addr);
  31. // Установка адреса по ID
  32. bool mb_set_addr_id(uint8_t *buf, uint8_t *addr);
  33. // Установка адреса по серийному номеру
  34. bool mb_set_addr_serial(uint8_t *buf, uint8_t *addr);
  35. // -------------------------------------------------------------------------- //
  36. // Установка параметров
  37. // -------------------------------------------------------------------------- //
  38. //
  39. mb_delay_action_t mb_set_time(void);
  40. //
  41. mb_delay_action_t mb_set_din_mode(void);
  42. //
  43. mb_delay_action_t mb_set_do(void);
  44. //
  45. mb_delay_action_t mb_set_do_mode(void);
  46. //
  47. mb_delay_action_t mb_password(void);
  48. //
  49. mb_delay_action_t mb_sys_settings_save(void);
  50. //
  51. mb_delay_action_t mb_control(void);
  52. //
  53. mb_delay_action_t mb_set_rtc(void);
  54. // -------------------------------------------------------------------------- //
  55. // Проверка параметров //
  56. // -------------------------------------------------------------------------- //
  57. //
  58. void mb_check_dummy(void);
  59. //
  60. void mb_check_archiv_per(void);
  61. extern uint16_t save_sys_cmd; // Команда сохранения системных настроек
  62. #ifdef __cplusplus
  63. }
  64. #endif
  65. #endif // __MODBUS_PARAMS_H