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