Files

80 lines
1.2 KiB
C

/*
* ee_manager.c
*
* Created on: Jul 16, 2025
* Author: herli
*/
#include "ee_manager.h"
#include "ee.h"
uint8_t memInit;
uint8_t memWrite;
uint32_t quart_hour_counter = 0;
typedef struct
{
uint8_t isCoded;
int8_t dFi; //-128,127 -> *3/256 = dfi
uint8_t inj_mode;
uint32_t quart_hour_counter;
} Storage_t;
Storage_t ee;
void MEM_Init(){
EE_Init(&ee, sizeof(Storage_t));
EE_Read();
memInit = 1;
if(!ee.isCoded){ //if mem is empty
MEM_WriteDefault();
}
if(ee.isCoded == 255){
MEM_WriteCustom(0.0, 0);
}
}
void MEM_RetrieveValues(){
if(!memInit){
MEM_Init();
}
s_dfi_code = ee.dFi;
dFi = (float)s_dfi_code * 3.0 / 256;
inj_mode = ee.inj_mode;
quart_hour_counter = ee.quart_hour_counter;
}
void MEM_Cleanup(){ //only after changes to the struct
}
void MEM_WriteAll(){
ee.isCoded = 1;
ee.dFi = s_dfi_code;
ee.inj_mode = inj_mode;
ee.quart_hour_counter = quart_hour_counter;
EE_Write();
}
void MEM_WriteDefault(){
ee.isCoded = 1;
ee.dFi = 0;
ee.inj_mode = 0;
EE_Write();
}
void MEM_WriteCustom(int8_t c_dFi, uint8_t c_inj_mode){
ee.isCoded = 1;
ee.dFi = c_dFi;
ee.inj_mode = c_inj_mode;
EE_Write();
}
void IncrementQuartHourCounter(){
quart_hour_counter++;
memWrite = 1;
}
int8_t GetDfiValue(){
return ee.dFi;
}