TestSubmodule/LOCAL/Storage/Inc/DataFlash.h

49 lines
1.6 KiB
C

//
// Created by villuton on 16.09.2025.
//
#ifndef CHARGER_DATAFLASH_H
#define CHARGER_DATAFLASH_H
#include "ChargerConfig.h"
#include <VariablesTable.h>
#include "BaseTypes/Strings.h"
#define DEVICE_DATA_NO_VOLATILE_VERSION 0x10
typedef struct {
struct {
tString16 value;
uint16_t writeAccess;
} serialNumber;
/// Значение напряжения, подаваемого на вход АКБ в момент калибровки канала
float vReference;
/// Массив калибровочных коэффициентов ждя расчета напряжения на канале
float chanelCalibrationFactor[STORAGE_CALIB_CHANEL_NUM];
/// Коэффициент соотношения делителя напряжения,
/// в случае, если калибровочного значения для канала нет, расчет ведется по нему
float dividerRatio;
/// Порог напряжения, при котором мы считаем, что аккумулятор отключен
float voltageBatteryConnectThreshold;
/// Порог напряжения, при котором мы считаем, что аккумулятор заряжен
float voltageBatteryLoadedThreshold;
} tDeviceSettings;
typedef struct {
uint32_t version;
tDeviceSettings device;
} tDeviceDataNonVolatile;
void DeviceDataNonVolatile_InitDefaults(tDeviceDataNonVolatile *env);
void DataFlash_AddToVarTab(
tDeviceDataNonVolatile *env,
tVariablesTable *variablesTable,
uint32_t group
);
#endif //CHARGER_DATAFLASH_H