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