#ifndef SYS_API_H_
#define SYS_API_H_

#include <stdbool.h>
#include <stdint.h>


#define SN_DEFAULT          "0000001"

#define MB_PASSWORD         (uint16_t)1234


// Cтруктура системных настроек
typedef struct
{
    uint32_t sn;            // Серийный номер (+ есть в modbus)
    uint32_t prod_date;     // Дата производства (+ есть в modbus)
    uint16_t test_state;    // Статус тестирования
    uint32_t control_word;  // Контрольное слово
    uint32_t crc;           // CRC
    
} sys_settings_t;



bool SYS_BackupInfo(char *mac, char *serial);

bool SYS_RestoreInfo(sys_settings_t *settings);

//
uint32_t SYS_GetCRC(sys_settings_t *settings);

// Загрузка структуры системных настроек из flash
bool sys_settings_load(sys_settings_t *settings);

// Запись структуры настроек во flash
bool sys_save(sys_settings_t *settings);

//
void sys_print(sys_settings_t *settings);

// Очистить сектор системных настроек
void sys_clear(void);

#endif /* SYS_API_H_ */
