80 lines
1.2 KiB
C
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;
|
|
}
|