#ifndef SETTINGS_API_H #define SETTINGS_API_H #include "at32f403a_407.h" #include #include "usart.h" #include "sys_api.h" #include "mb.h" #include "mbport.h" #define MODEL_LEN 16 // ------------------------------------------------------------------- // // Modbus // ------------------------------------------------------------------- // // Modbus typedef struct { rate_t baud; // Скорость порта parity_t parity; // Четность databits_t databits; // Число бит данных stopbits_t stopbits; // Число стоп-бит } modbus_t; // Общая структура настроек для IAP и FW typedef struct { uint16_t mb_port; // Настройки порта для modbus 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 ; // Загрузка структуры настроек из flesh 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); // Установка параметров Modbus void settings_set_modbus_params(uint16_t mb_port); // -------------------------------------------------------------------------- // // Запись структуры настроек во flash 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 /* #ifndef SETTINGS_API_H */