Add some spectrum save settings

This commit is contained in:
Armel FAUVEAU
2024-07-19 03:56:55 +02:00
parent f7084f7c3d
commit eb4c7922b4

View File

@@ -23,6 +23,7 @@
#endif
#include "driver/backlight.h"
#include "driver/eeprom.h"
#include "frequencies.h"
#include "ui/helper.h"
#include "ui/main.h"
@@ -105,6 +106,51 @@ RegisterSpec registerSpecs[] = {
uint16_t statuslineUpdateTimer = 0;
static void LoadSettings()
{
#ifdef ENABLE_FEAT_F4HWN
uint8_t Data[8] = {0};
// 1FF0..0x1FF7
EEPROM_ReadBuffer(0x1FF0, Data, 8);
settings.scanStepIndex = ((Data[4] & 0xF0) >> 4);
if(settings.scanStepIndex > 14)
{
settings.scanStepIndex = S_STEP_25_0kHz;
}
settings.stepsCount = ((Data[4] & 0x0F) & 0b1100) >> 2;
if(settings.stepsCount > 3)
{
settings.stepsCount = STEPS_64;
}
settings.listenBw = ((Data[4] & 0x0F) & 0b0011);
if(settings.listenBw > 2)
{
settings.listenBw = BK4819_FILTER_BW_WIDE;
}
#endif
}
static void SaveSettings()
{
#ifdef ENABLE_FEAT_F4HWN
uint8_t Data[8] = {0};
// 1FF0..0x1FF7
EEPROM_ReadBuffer(0x1FF0, Data, 8);
Data[4] = (settings.scanStepIndex << 4) | (settings.stepsCount << 2) | settings.listenBw;
EEPROM_WriteBuffer(0x1FF0, Data);
#endif
}
static uint8_t DBm2S(int dbm) {
uint8_t i = 0;
dbm *= -1;
@@ -932,6 +978,7 @@ static void OnKeyDown(uint8_t key) {
menuState = 0;
break;
}
SaveSettings();
DeInitSpectrum();
break;
default:
@@ -1321,6 +1368,7 @@ static void Tick() {
void APP_RunSpectrum() {
// TX here coz it always? set to active VFO
vfo = gEeprom.TX_VFO;
LoadSettings();
// set the current frequency in the middle of the display
#ifdef ENABLE_SCAN_RANGES
if(gScanRangeStart) {
@@ -1349,7 +1397,7 @@ void APP_RunSpectrum() {
ToggleRX(true), ToggleRX(false); // hack to prevent noise when squelch off
RADIO_SetModulation(settings.modulationType = gTxVfo->Modulation);
BK4819_SetFilterBandwidth(settings.listenBw = BK4819_FILTER_BW_WIDE, false);
BK4819_SetFilterBandwidth(settings.listenBw, false);
RelaunchScan();