Legacy branch migration
This commit is contained in:
184
firmware/logic/settings.c
Normal file
184
firmware/logic/settings.c
Normal file
@@ -0,0 +1,184 @@
|
||||
/**** Includes ****/
|
||||
#include "settings.h"
|
||||
|
||||
/**** Private definitions ****/
|
||||
|
||||
/**** Private constants ****/
|
||||
static const uint8_t addr_force = 0x01;
|
||||
static const uint8_t addr_bmode = 0x02;
|
||||
static const uint8_t addr_inmode = 0x03;
|
||||
|
||||
static const uint8_t addr_dsp_bright = 0x04;
|
||||
static const uint8_t addr_dsp_dimm = 0x05;
|
||||
|
||||
static const uint8_t addr_lock_amps = 0x06;
|
||||
|
||||
/**** Private variables ****/
|
||||
static uint16_t save_force_timer = 0;
|
||||
static uint16_t save_bmode_timer = 0;
|
||||
|
||||
/**** Private function declarations ****/
|
||||
|
||||
/**** Public function definitions ****/
|
||||
void Setings_Update(uint8_t is_new_force, uint8_t force, uint8_t is_new_bmode, brakeMode_t bmode)
|
||||
{
|
||||
if(is_new_force) save_force_timer = 5000;
|
||||
|
||||
if(is_new_bmode) save_bmode_timer = 5000;
|
||||
|
||||
if(save_force_timer)
|
||||
{
|
||||
save_force_timer--;
|
||||
if(!save_force_timer)
|
||||
{
|
||||
// Save force setting
|
||||
Setings_SaveForce(force);
|
||||
};
|
||||
};
|
||||
|
||||
if(save_bmode_timer)
|
||||
{
|
||||
save_bmode_timer--;
|
||||
if(!save_bmode_timer)
|
||||
{
|
||||
// Save mode setting
|
||||
Setings_SaveBrakeMode(bmode);
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
void Setings_SaveForce(uint8_t value)
|
||||
{
|
||||
MEM_Write8b(addr_force, value);
|
||||
}
|
||||
|
||||
uint8_t Setings_GetForce(void)
|
||||
{
|
||||
uint8_t val = MEM_Read8b(addr_force);
|
||||
if(val > 100) return 0;
|
||||
else return val;
|
||||
}
|
||||
|
||||
|
||||
void Setings_SaveBrakeMode(brakeMode_t bmode)
|
||||
{
|
||||
// Convert and save input mode setting
|
||||
// Convert and save mode setting
|
||||
uint8_t val = 0x00;
|
||||
switch(bmode)
|
||||
{
|
||||
case BM_LOCK:
|
||||
val = 'L';
|
||||
break;
|
||||
|
||||
case BM_KEEP:
|
||||
val = 'K';
|
||||
break;
|
||||
|
||||
default:
|
||||
val = 'O';
|
||||
break;
|
||||
}
|
||||
MEM_Write8b(addr_bmode, val);
|
||||
}
|
||||
|
||||
brakeMode_t Setings_GetBrakeMode(void)
|
||||
{
|
||||
// Convert and return mode setting
|
||||
uint8_t val = MEM_Read8b(addr_bmode);
|
||||
switch(val)
|
||||
{
|
||||
case 'L':
|
||||
return BM_LOCK;
|
||||
|
||||
case 'K':
|
||||
return BM_KEEP;
|
||||
|
||||
default:
|
||||
return BM_OPEN;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void Setings_SaveInputMode(inputMode_t inmode)
|
||||
{
|
||||
// Convert and save input mode setting
|
||||
uint8_t val = 0x00;
|
||||
switch(inmode)
|
||||
{
|
||||
case IM_POT:
|
||||
val = 'P';
|
||||
break;
|
||||
|
||||
default:
|
||||
val = 'B';
|
||||
break;
|
||||
}
|
||||
MEM_Write8b(addr_inmode, val);
|
||||
}
|
||||
|
||||
inputMode_t Setings_GetInputMode(void)
|
||||
{
|
||||
// Convert and return input mode setting
|
||||
uint8_t val = MEM_Read8b(addr_inmode);
|
||||
switch(val)
|
||||
{
|
||||
case 'P':
|
||||
return IM_POT;
|
||||
|
||||
default:
|
||||
return IM_BUTTONS;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void Setings_SaveDisplayBrigthLvl(uint8_t value)
|
||||
{
|
||||
MEM_Write8b(addr_dsp_bright, value);
|
||||
}
|
||||
|
||||
uint8_t Setings_GetDisplayBrigthLvl(void)
|
||||
{
|
||||
uint8_t val = MEM_Read8b(addr_dsp_bright);
|
||||
if(val > 100) return 100;
|
||||
else return val;
|
||||
}
|
||||
|
||||
|
||||
void Setings_SaveDisplayDimmLvl(uint8_t value)
|
||||
{
|
||||
MEM_Write8b(addr_dsp_dimm, value);
|
||||
}
|
||||
|
||||
uint8_t Setings_GetDisplayDimmLvl(void)
|
||||
{
|
||||
uint8_t val = MEM_Read8b(addr_dsp_dimm);
|
||||
if(val > 100) return 50;
|
||||
else return val;
|
||||
}
|
||||
|
||||
|
||||
void Setings_SaveLockCurrent(uint16_t value)
|
||||
{
|
||||
MEM_Write16b(addr_lock_amps, value);
|
||||
}
|
||||
|
||||
uint16_t Setings_GetLockCurrent(void)
|
||||
{
|
||||
uint16_t val = MEM_Read16b(addr_lock_amps);
|
||||
if(val > 6000) return 4500;
|
||||
else return val;
|
||||
}
|
||||
|
||||
void Setings_SaveDefault(void)
|
||||
{
|
||||
Setings_SaveForce(0);
|
||||
Setings_SaveBrakeMode(BM_OPEN);
|
||||
Setings_SaveInputMode(IM_BUTTONS);
|
||||
Setings_SaveDisplayBrigthLvl(100);
|
||||
Setings_SaveDisplayDimmLvl(50);
|
||||
Setings_SaveLockCurrent(4500);
|
||||
}
|
||||
|
||||
/**** Private function definitions ****/
|
||||
Reference in New Issue
Block a user