123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- #ifndef __MODBUS_PARAMS_H
- #define __MODBUS_PARAMS_H
- #include "mb.h"
- #include "mbport.h"
- #include "modbus.h"
- #include <stdbool.h>
- #ifdef __cplusplus
- extern "C" {
- #endif
- #if defined (MDIO_88)
- #define MB_PARAM_MAX 88
- #endif
- #if defined (MAI_12)
- #define MB_PARAM_MAX 87
- #endif
- #if defined (MAO_4)
- #define MB_PARAM_MAX 87
- #endif
- //
- typedef struct {
- uint16_t reg;
- uint16_t size;
- uint8_t *param;
- bool f_activity;
- mb_delay_action_t (*set)(void);
- void (*get)(uint8_t* buf, uint8_t size);
- void (*check_handler)(void);
- } mb_param_t;
- //
- void mb_init_params(void);
- // Возвращает размер параметра в регистрах
- bool mb_find_param(uint16_t reg, uint16_t *index, uint16_t *size);
- //
- mb_delay_action_t mb_set_param(uint8_t *buf, uint16_t index);
- //
- void mb_get_param(uint8_t *buf, uint16_t index);
- // Установка адреса. Запрос без параметров.
- bool mb_set_addr(uint8_t *buf, uint8_t *addr);
- // Установка адреса по ID
- bool mb_set_addr_id(uint8_t *buf, uint8_t *addr);
- // Установка адреса по серийному номеру
- bool mb_set_addr_serial(uint8_t *buf, uint8_t *addr);
- // -------------------------------------------------------------------------- //
- // Установка параметров
- // -------------------------------------------------------------------------- //
- //
- mb_delay_action_t mb_set_time(void);
- //
- mb_delay_action_t mb_password(void);
- //
- mb_delay_action_t mb_sys_settings_save(void);
- //
- mb_delay_action_t mb_control(void);
- //
- mb_delay_action_t mb_set_rtc(void);
- // -------------------------------------------------------------------------- //
- // Проверка параметров //
- // -------------------------------------------------------------------------- //
- //
- void mb_check_dummy(void);
- //
- void mb_check_archiv_per(void);
- extern uint16_t save_sys_cmd; // Команда сохранения системных настроек
- #ifdef __cplusplus
- }
- #endif
- #endif // __MODBUS_PARAMS_H
|