| 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
 
- // ------------------------------------------------------------------- //
 
- //					 		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 */
 
 
  |