modbus_params.h 2.0 KB

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