123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- #ifndef SETTINGS_API_H
- #define SETTINGS_API_H
- #include "at32f403a_407.h"
- #include <stdbool.h>
- #include "usart.h"
- #include "sys_api.h"
- #include "mb.h"
- #include "mbport.h"
- #define MODEL_LEN 16
- 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;
- typedef struct
- {
- com_settings_t com_settings;
- uint32_t critical_section_crc;
-
- } settings_t;
- typedef enum
- {
- MB_BOOT_ERR_NO = 0x01,
-
- MB_BOOT_ERR_WRONG_CONTENT = 0x02,
- MB_BOOT_ERR_WRONG_FW_SIZE = 0x03,
- MB_BOOT_ERR_WRONG_KEY = 0x04,
- MB_BOOT_FLASH_ERR = 0x05,
- MB_BOOT_WRONG_PACK_INDEX = 0x06,
- MB_BOOT_ERR_WRONG_FW_CRC = 0x07,
- } mb_err_code_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_set_modbus_params(uint16_t mb_port);
- void settings_save(settings_t *settings);
- void settings_write_to_flash(uint8_t *data, uint32_t size);
- void settings_erase_flash_sector(void);
- uint32_t settings_get_mb_baud(modbus_t *mb_settings);
- eMBParity settings_get_mb_par(modbus_t *mb_settings);
- extern sys_settings_t sys_settings;
- extern settings_t settings;
- extern modbus_t mb_port_settings;
- #endif
|