123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152 |
- #ifndef SETTINGS_API_H
- #define SETTINGS_API_H
- #include "at32f403a_407.h"
- #include "model_cfg.h"
- #include "usart.h"
- #include "sys_api.h"
- #include "io.h"
- #include <stdbool.h>
- #define SETTINGS_VERSION 0x01
- typedef struct
- {
- rate_t baud;
- parity_t parity;
- databits_t databits;
- stopbits_t stopbits;
- } modbus_t;
- typedef struct
- {
- uint16_t mb_port;
- char model[MODEL_LEN];
- } com_settings_t;
- #if 0
- typedef struct
- {
- uint16_t debounce_time;
- } dinput_t;
- #endif
- typedef struct
- {
- com_settings_t com_settings;
- uint32_t critical_section_crc;
-
- uint16_t settings_version;
- uint32_t control_word;
-
- uint16_t di_mode_bits;
- uint16_t di_norm_state_bits;
- uint16_t di_debounce[DI_NUMBER];
-
- uint16_t do_mode_bits;
- uint16_t do_bits;
- uint16_t do_save_bits;
- uint16_t do_pwm[DO_NUMBER];
- uint16_t do_pwm_save[DO_NUMBER];
- uint16_t do_pwm_period[DO_NUMBER];
- uint16_t do_pwm_period_save[DO_NUMBER];
-
- bool save_mode;
- uint16_t save_delay;
-
-
- } settings_t;
- void settings_load(settings_t *settings);
- void init_settings(void);
- void settings_read_from_flash(uint8_t *data, uint32_t size);
- uint32_t settings_get_crc(settings_t *settings);
- uint32_t settings_get_crit_sec_crc(settings_t *settings);
- void settings_set_all_default(void);
- void settings_set_modbus_def(uint16_t *mb_port);
- void settings_conv_modbus_def(modbus_t *mb_settings, uint16_t *mb_port);
- void settings_din_def(settings_t *settings);
- void settings_do_def(settings_t *settings);
- void settings_save(settings_t *settings);
- void settings_write_to_flash(uint8_t *data, uint32_t size);
- void settings_erase_flash_sector(void);
- extern sys_settings_t sys_settings;
- extern settings_t settings;
- #endif
|