diff --git a/data/index.html b/data/index.html
new file mode 100644
index 0000000..82bfe6a
--- /dev/null
+++ b/data/index.html
@@ -0,0 +1,42 @@
+
+
+
+
+ ESP Wi-Fi Manager
+
+
+
+
+
+
+
+
LORA SA ESP32 CONFIG
+
+
+
+
+
diff --git a/data/style.css b/data/style.css
new file mode 100644
index 0000000..491d8c4
--- /dev/null
+++ b/data/style.css
@@ -0,0 +1,118 @@
+html {
+ font-family: Arial, Helvetica, sans-serif;
+ display: inline-block;
+ text-align: center;
+}
+
+h1 {
+ font-size: 1.8rem;
+ color: white;
+}
+
+p {
+ font-size: 1.4rem;
+}
+
+.topnav {
+ overflow: hidden;
+ background-color: #0A1128;
+}
+
+body {
+ margin: 0;
+}
+
+.content {
+ padding: 5%;
+}
+
+.card-grid {
+ max-width: 800px;
+ margin: 0 auto;
+ display: grid;
+ grid-gap: 2rem;
+ grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
+}
+
+.card {
+ background-color: white;
+ box-shadow: 2px 2px 12px 1px rgba(140, 140, 140, .5);
+}
+
+.card-title {
+ font-size: 1.2rem;
+ font-weight: bold;
+ color: #034078
+}
+
+input[type=submit] {
+ border: none;
+ color: #FEFCFB;
+ background-color: #034078;
+ padding: 15px 15px;
+ text-align: center;
+ text-decoration: none;
+ display: inline-block;
+ font-size: 16px;
+ width: 100px;
+ margin-right: 10px;
+ border-radius: 4px;
+ transition-duration: 0.4s;
+}
+
+input[type=submit]:hover {
+ background-color: #1282A2;
+}
+
+input[type=text],
+input[type=number],
+select {
+ width: 50%;
+ padding: 12px 20px;
+ margin: 18px;
+ display: inline-block;
+ border: 1px solid #ccc;
+ border-radius: 4px;
+ box-sizing: border-box;
+}
+
+label {
+ font-size: 1.2rem;
+}
+
+.value {
+ font-size: 1.2rem;
+ color: #1282A2;
+}
+
+.state {
+ font-size: 1.2rem;
+ color: #1282A2;
+}
+
+button {
+ border: none;
+ color: #FEFCFB;
+ padding: 15px 32px;
+ text-align: center;
+ font-size: 16px;
+ width: 100px;
+ border-radius: 4px;
+ transition-duration: 0.4s;
+}
+
+.button-on {
+ background-color: #034078;
+}
+
+.button-on:hover {
+ background-color: #1282A2;
+}
+
+.button-off {
+ background-color: #858585;
+}
+
+.button-off:hover {
+ background-color: #252524;
+}
diff --git a/data/text.txt b/data/text.txt
new file mode 100644
index 0000000..e69de29
diff --git a/include/File.h b/include/File.h
new file mode 100644
index 0000000..6f502ec
--- /dev/null
+++ b/include/File.h
@@ -0,0 +1,55 @@
+#include "FS.h"
+#include
+
+// Initialize LittleFS
+void initLittleFS()
+{
+ if (!LittleFS.begin(true))
+ {
+ Serial.println("An error has occurred while mounting LittleFS");
+ }
+ Serial.println("LittleFS mounted successfully");
+}
+
+String readFile(fs::FS &fs, const char *path)
+{
+ Serial.printf("Reading file: %s\r\n", path);
+
+ File file = fs.open(path);
+ if (!file || file.isDirectory())
+ {
+ Serial.println("- failed to open file for reading");
+ return String("");
+ }
+ String content;
+ Serial.println("- read from file:");
+ while (file.available())
+ {
+ content = file.readStringUntil('\n');
+ }
+ file.close();
+ return content;
+}
+
+void writeFile(fs::FS &fs, const char *path, const char *message)
+{
+ Serial.printf("Writing file: %s\r\n", path);
+ Serial.printf("Content: %s\r\n", message);
+
+ File file = fs.open(path, FILE_WRITE);
+ if (!file)
+ {
+ Serial.println("- failed to open file for writing");
+ return;
+ }
+ if (file.print(message))
+ {
+ Serial.println("- file written");
+ delay(500);
+ }
+ else
+ {
+ Serial.println("- write failed");
+ }
+ file.close();
+}
diff --git a/include/LiLyGo.h b/include/LiLyGo.h
index c9c88ee..1d44603 100644
--- a/include/LiLyGo.h
+++ b/include/LiLyGo.h
@@ -35,6 +35,10 @@ SX1280 radio = new Module(RADIO_CS_PIN, RADIO_DIO1_PIN, RADIO_RST_PIN, RADIO_BUS
// Default SPI on pins from pins_arduino.h
SX1262 radio = new Module(RADIO_CS_PIN, RADIO_DIO1_PIN, RADIO_RST_PIN, RADIO_BUSY_PIN);
#endif // end USING_SX1262
+#ifdef USING_LR1121
+// Default SPI on pins from pins_arduino.h
+LR1121 radio = new Module(RADIO_CS_PIN, RADIO_DIO9_PIN, RADIO_RST_PIN, RADIO_BUSY_PIN);
+#endif // end USING_LR1121
#ifdef USING_SX1276
// Default SPI on pins from pins_arduino.h
SX1276 radio = new Module(RADIO_CS_PIN, RADIO_DIO1_PIN, RADIO_RST_PIN, RADIO_BUSY_PIN);
diff --git a/include/WIFI_SERVER.h b/include/WIFI_SERVER.h
new file mode 100644
index 0000000..93a715d
--- /dev/null
+++ b/include/WIFI_SERVER.h
@@ -0,0 +1,205 @@
+#include
+#include
+#include
+#include
+
+// Create AsyncWebServer object on port 80
+AsyncWebServer server(80);
+
+// Search for parameter in HTTP POST request
+const String SSID = "ssid";
+const String PASS = "pass";
+const String IP = "ip";
+const String GATEWAY = "gateway";
+const String FSTART = "fstart";
+const String FEND = "fend";
+
+// File paths to save input values permanently
+// const char *ssidPath = "/ssid.txt";
+
+// Variables to save values from HTML form
+String ssid = "LoraSA", pass = "1234567890", ip = "192.168.1.100",
+ gateway = "192.168.1.1", fstart = "", fend = "", smpls = "";
+
+IPAddress localIP;
+// Set your Gateway IP address
+IPAddress localGateway;
+IPAddress subnet(255, 255, 0, 0);
+
+// Timer variables
+unsigned long previousMillis = 0;
+const long interval = 10000; // interval to wait for Wi-Fi connection (milliseconds)
+
+// Initialize WiFi
+bool initWiFi()
+{
+ Serial.println("SSID:" + ssid);
+ Serial.println("PSWD:" + pass);
+ Serial.println("IP:" + ip);
+ Serial.println("SUB:" + subnet);
+ Serial.println("GATAWAY:" + gateway);
+ if (ssid == "" || ip == "")
+ {
+ Serial.println("Undefined SSID or IP address.");
+ return false;
+ }
+
+ WiFi.mode(WIFI_STA);
+ localIP.fromString(ip.c_str());
+ localGateway.fromString(gateway.c_str());
+
+ if (!WiFi.config(localIP, localGateway, subnet))
+ {
+ Serial.println("STA Failed to configure");
+ return false;
+ }
+ WiFi.begin(ssid.c_str(), pass.c_str());
+ Serial.println("Connecting to WiFi...");
+
+ unsigned long currentMillis = millis();
+ previousMillis = currentMillis;
+
+ while (WiFi.status() != WL_CONNECTED)
+ {
+ currentMillis = millis();
+ if (currentMillis - previousMillis >= interval)
+ {
+ Serial.println("Failed to connect.");
+ return false;
+ }
+ }
+
+ Serial.println(WiFi.localIP());
+ return true;
+}
+
+void writeParameterToFile(String value, String file)
+{
+ // Write file to save value
+ writeFile(LittleFS, file.c_str(), value.c_str());
+}
+
+void writeParameterToParameterFile(String param, String value)
+{
+ String file = String("/" + param + ".txt");
+ // Write file to save value
+ writeParameterToFile(value, file.c_str());
+}
+
+String readParameterFromParameterFile(String param)
+{
+ String file = String("/" + param + ".txt");
+ return readFile(LittleFS, file.c_str());
+}
+
+void serverServer()
+{
+ // Route for root / web page
+ server.on("/", HTTP_GET, [](AsyncWebServerRequest *request)
+ { request->send(LittleFS, "/index.html", "text/html"); });
+
+ server.serveStatic("/", LittleFS, "/");
+
+ server.on("/", HTTP_POST,
+ [](AsyncWebServerRequest *request)
+ {
+ int params = request->params();
+ for (int i = 0; i < params; i++)
+ {
+ Serial.println("Parameter " + String(i) + ": " +
+ request->getParam(i)->value());
+ }
+ Serial.println(request->params());
+
+ String p;
+ if (request->hasParam(IP, true))
+ {
+ p = request->getParam(IP, true)->value();
+ writeParameterToParameterFile(IP, p);
+ }
+
+ if (request->hasParam(IP, true))
+ {
+ p = request->getParam(IP, true)->value();
+ writeParameterToParameterFile(IP, p);
+ }
+
+ if (request->hasParam(IP, true))
+ {
+ p = request->getParam(IP, true)->value();
+ writeParameterToParameterFile(IP, p);
+ }
+
+ if (request->hasParam(GATEWAY, true))
+ {
+ p = request->getParam(GATEWAY, true)->value();
+ writeParameterToParameterFile(GATEWAY, p);
+ }
+
+ if (request->hasParam(FSTART, true))
+ {
+ p = request->getParam(FSTART, true)->value();
+ writeParameterToParameterFile(FSTART, p);
+ }
+
+ if (request->hasParam(FEND, true))
+ {
+ p = request->getParam(FEND, true)->value();
+ writeParameterToParameterFile(FEND, p);
+ }
+
+ if (request->hasParam("samples", true))
+ {
+ p = request->getParam("samples", true)->value();
+ writeParameterToParameterFile("samples", p);
+ }
+
+ request->send(200, "text/plain",
+ "Done. ESP will restart, connect to your router and "
+ "go to IP address: " +
+ ip);
+ delay(3000);
+ ESP.restart();
+ });
+
+ /* // Route to set GPIO state to HIGH
+ server.on("/on", HTTP_GET,
+ [](AsyncWebServerRequest *request)
+ {
+ digitalWrite(ledPin, HIGH);
+ request->send(LittleFS, "/index.html", "text/html", false,
+ processor);
+ });
+
+ // Route to set GPIO state to LOW
+ server.on("/off", HTTP_GET,
+ [](AsyncWebServerRequest *request)
+ {
+ digitalWrite(ledPin, LOW);
+ request->send(LittleFS, "/index.html", "text/html", false,
+ processor);
+ });*/
+ server.begin();
+}
+
+void serverStart()
+{
+ if (initWiFi())
+ {
+ Serial.println("Setting Secure WIFI (Access Point)");
+ serverServer();
+ }
+ else
+ {
+ // Connect to Wi-Fi network with default SSID and password
+ Serial.println("Setting AP (Access Point)");
+ // NULL sets an open Access Point
+ WiFi.softAP("LoraSA", NULL);
+
+ IPAddress IP = WiFi.softAPIP();
+ Serial.print("AP IP address: ");
+ Serial.println(IP);
+
+ serverServer();
+ }
+}
diff --git a/lib/scan/scan.h b/lib/scan/scan.h
index c6b113c..38b610e 100644
--- a/lib/scan/scan.h
+++ b/lib/scan/scan.h
@@ -27,7 +27,9 @@ constexpr float HI_RSSI_THRESHOLD = -44.0;
constexpr float LO_RSSI_THRESHOLD = HI_RSSI_THRESHOLD - 66;
// number of samples for RSSI method
-#define SAMPLES_RSSI 12 // 21 //
+#ifndef SAMPLES_RSSI
+#define SAMPLES_RSSI 13 // 21 //
+#endif
#ifdef USING_SX1280PA
#define SAMPLES_RSSI 20
#endif
diff --git a/platformio.ini b/platformio.ini
index 32ddad0..a1d92eb 100644
--- a/platformio.ini
+++ b/platformio.ini
@@ -26,12 +26,15 @@ framework = arduino
upload_speed = 921600
monitor_speed = 115200
board_build.f_cpu = 240000000
+board_build.filesystem = littlefs
lib_deps =
ropg/Heltec_ESP32_LoRa_v3@^0.9.1
bblanchon/ArduinoJson@^7.2.0
+ ESP Async WebServer
build_flags =
-DHELTEC_POWER_BUTTON
-DHELTEC
+
[env:heltec_wifi_lora_32_V3_433]
platform = espressif32
@@ -73,6 +76,36 @@ build_flags =
-DARDUINO_LILYGO_T3_S3_V1_X
-DARDUINO_USB_MODE=1
+[env:lilygo-T3S3-v1-2-lr1121]
+platform = espressif32
+board = t3_s3_v1_x
+framework = arduino
+upload_speed = 921600
+monitor_speed = 115200
+board_build.f_cpu = 240000000
+board_build.filesystem = littlefs
+lib_deps =
+ ropg/Heltec_ESP32_LoRa_v3@^0.9.1
+ RadioLib
+ U8g2
+ XPowersLib
+ bblanchon/ArduinoJson@^7.2.0
+ ESP Async WebServer
+build_flags =
+ -DLILYGO
+ -DT3_S3_V1_2_LR1121
+ -DT3_V1_3_SX1262
+ -DARDUINO_LILYGO_T3S3_LR1121
+ -DESP32
+ -DSAMPLES_RSSI=5
+ -DUSING_LR1121
+ -DFREQ_BEGIN=2400
+ -DFREQ_END=2500
+ -DARDUINO_ARCH_ESP32
+ -DARDUINO_USB_CDC_ON_BOOT=1
+ -DARDUINO_LILYGO_T3_S3_V1_X
+ -DARDUINO_USB_MODE=1
+
[env:lilygo-T3S3-v1-2-sx1280]
platform = espressif32
diff --git a/src/main.cpp b/src/main.cpp
index 1d96db0..88721c5 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -27,9 +27,18 @@
#ifdef HELTEC
#include
#endif
+#include "FS.h"
+#include
+#include
+#include
+#include
#include
#include
+#include "WIFI_SERVER.h"
+
+#define FORMAT_LITTLEFS_IF_FAILED true
+
// #define OSD_ENABLED true
// #define WIFI_SCANNING_ENABLED true
// #define BT_SCANNING_ENABLED true
@@ -40,10 +49,12 @@
// public and so will be exposed to the user. This allows direct manipulation of the
// library internals.
#define RADIOLIB_GODMODE (1)
+#define RADIOLIB_CHECK_PARAMS (0)
#include
#include
#include
+#include
#ifndef LILYGO
#include
@@ -134,9 +145,9 @@ int SCAN_RANGES[] = {};
// MHZ per page
// to put everything into one page set RANGE_PER_PAGE = FREQ_END - 800
-uint64_t RANGE_PER_PAGE = FREQ_END - FREQ_BEGIN; // FREQ_END - FREQ_BEGIN
+uint64_t RANGE_PER_PAGE; // FREQ_END - CONF_FREQ_BEGIN
-// To Enable Multi Screen scan
+uint64_t CONF_FREQ_END, CONF_FREQ_BEGIN; // To Enable Multi Screen scan
// uint64_t RANGE_PER_PAGE = 50;
// Default Range on Menu Button Switch
@@ -168,16 +179,8 @@ constexpr int WINDOW_SIZE = 15;
// if more than 100 it can freeze
#define SAMPLES 35 //(scan time = 1294)
-#define RANGE (int)(FREQ_END - FREQ_BEGIN)
-
-#define SINGLE_STEP (float)(RANGE / (STEPS * SCAN_RBW_FACTOR))
-
-uint64_t range = (int)(FREQ_END - FREQ_BEGIN);
-
-uint64_t iterations = RANGE / RANGE_PER_PAGE;
-
-// uint64_t range_frequency = FREQ_END - FREQ_BEGIN;
-uint64_t median_frequency = (FREQ_BEGIN + FREQ_END) / 2;
+uint64_t RANGE, range, iterations, median_frequency;
+float SINGLE_STEP;
// #define DISABLE_PLOT_CHART false // unused
@@ -224,11 +227,12 @@ uint64_t ranges_count = 0;
int rssi = 0;
int state = 0;
+int CONF_SAMPLES;
#ifdef METHOD_SPECTRAL
-constexpr int samples = SAMPLES;
+int samples = SAMPLES;
#endif
#ifdef METHOD_RSSI
-constexpr int samples = SAMPLES_RSSI;
+int samples = SAMPLES_RSSI;
#endif
uint8_t result_index = 0;
@@ -301,8 +305,8 @@ void osdProcess()
// memset(max_step_range, 33, 30);
max_bin = 32;
- osd.displayString(12, 1, String(FREQ_BEGIN));
- osd.displayString(12, OSD_WIDTH - 8, String(FREQ_END));
+ osd.displayString(12, 1, String(CONF_FREQ_BEGIN));
+ osd.displayString(12, OSD_WIDTH - 8, String(CONF_FREQ_END));
// Finding biggest in result
// Skiping 0 and 32 31 to avoid overflow
for (int i = 1; i < MAX_POWER_LEVELS - 3; i++)
@@ -339,7 +343,7 @@ void osdProcess()
#ifdef OSD_SIDE_BAR
{
osd.displayString(col, OSD_WIDTH - 7,
- String(FREQ_BEGIN + (col * osd_mhz_in_bin)) + "-" +
+ String(CONF_FREQ_BEGIN + (col * osd_mhz_in_bin)) + "-" +
String(max_step_range) + " ");
}
#endif
@@ -367,13 +371,20 @@ struct RadioScan : Scan
float RadioScan::getRSSI()
{
-#ifdef USING_SX1280PA
+#if defined(USING_SX1280PA)
// radio.startReceive();
// get instantaneous RSSI value
// When PR will be merged we can use radi.getRSSI(false);
uint8_t data[3] = {0, 0, 0}; // RssiInst, Status, RFU
radio.mod->SPIreadStream(RADIOLIB_SX128X_CMD_GET_RSSI_INST, data, 3);
return ((float)data[0] / (-2.0));
+
+#elif defined(USING_LR1121)
+ // Try getRssiInst
+ float rssi;
+ radio.getRssiInst(&rssi);
+ // pass the replies
+ return rssi;
#else
return radio.getRSSI(false);
#endif
@@ -392,10 +403,10 @@ void init_radio()
{
// initialize SX1262 FSK modem at the initial frequency
both.println("Init radio");
-#ifdef USING_SX1280PA
- state = radio.beginGFSK(FREQ_BEGIN);
+#if defined(USING_SX1280PA) || defined(USING_LR1121)
+ state = radio.beginGFSK(CONF_FREQ_BEGIN);
#else
- state = radio.beginFSK(FREQ_BEGIN);
+ state = radio.beginFSK(CONF_FREQ_BEGIN);
#endif
if (state == RADIOLIB_ERR_NONE)
{
@@ -447,7 +458,7 @@ void init_radio()
// calibrate only once ,,, at startup
// TODO: check documentation (9.2.1) if we must calibrate in certain ranges
#ifdef USING_SX1280PA
- state = radio.setFrequency(FREQ_BEGIN);
+ state = radio.setFrequency(CONF_FREQ_BEGIN);
if (state != RADIOLIB_ERR_NONE)
{
Serial.println("Error:setFrequency:" + String(state));
@@ -459,9 +470,9 @@ void init_radio()
}
#elif USING_SX1276
// Sets carrier frequency. Allowed values range from 137.0 MHz to 1020.0 MHz.
- radio.setFrequency(FREQ_BEGIN);
+ radio.setFrequency(CONF_FREQ_BEGIN);
#else
- radio.setFrequency(FREQ_BEGIN, true);
+ radio.setFrequency(CONF_FREQ_BEGIN, true);
#endif
delay(50);
@@ -546,8 +557,56 @@ void logToSerialTask(void *parameter)
void drone_sound_alarm(void *arg, Event &e);
+void readConfigFile()
+{
+ // writeFile(LittleFS, "/text.txt", "{WIFI:{name:\"sdfsdf\", Password:\"sdfsdf\"}");
+ ssid = readParameterFromParameterFile(SSID);
+ Serial.println("SSID: " + ssid);
+
+ pass = readParameterFromParameterFile(PASS);
+ Serial.println("PASS: " + pass);
+
+ ip = readParameterFromParameterFile(IP);
+ Serial.println("PASS: " + ip);
+
+ gateway = readParameterFromParameterFile(GATEWAY);
+ Serial.println("GATEWAY: " + gateway);
+
+ fstart = readParameterFromParameterFile(FSTART);
+ Serial.println("FSTART: " + fstart);
+
+ fend = readParameterFromParameterFile(FEND);
+ Serial.println("FEND: " + fend);
+
+ smpls = readParameterFromParameterFile("samples");
+ Serial.println("SAMPLES: " + smpls);
+
+ CONF_SAMPLES = (smpls == "") ? samples : atoi(smpls.c_str());
+ samples = CONF_SAMPLES;
+ CONF_FREQ_BEGIN = (fstart == "") ? FREQ_BEGIN : atoi(fstart.c_str());
+ CONF_FREQ_END = (fend == "") ? FREQ_END : atoi(fend.c_str());
+
+ both.println("C FREQ BEGIN:" + String(CONF_FREQ_BEGIN));
+ both.println("C FREQ END:" + String(CONF_FREQ_END));
+ both.println("C SAMPLES:" + String(CONF_SAMPLES));
+
+ RANGE_PER_PAGE = CONF_FREQ_END - CONF_FREQ_BEGIN; // FREQ_END - CONF_FREQ_BEGIN
+
+ RANGE = (int)(CONF_FREQ_END - CONF_FREQ_BEGIN);
+
+ SINGLE_STEP = (float)(RANGE / (STEPS * SCAN_RBW_FACTOR));
+
+ range = (int)(CONF_FREQ_END - CONF_FREQ_BEGIN);
+
+ iterations = RANGE / RANGE_PER_PAGE;
+
+ // uint64_t range_frequency = FREQ_END - CONF_FREQ_BEGIN;
+ median_frequency = (CONF_FREQ_BEGIN + CONF_FREQ_END) / 2;
+}
+
void setup(void)
{
+
#ifdef LILYGO
setupBoards(); // true for disable U8g2 display library
delay(500);
@@ -580,6 +639,7 @@ void setup(void)
pinMode(BUZZER_PIN, OUTPUT);
pinMode(REB_PIN, OUTPUT);
heltec_setup();
+
#ifdef JOYSTICK_ENABLED
calibrate_joy();
pinMode(JOY_BTN_PIN, INPUT_PULLUP);
@@ -599,10 +659,46 @@ void setup(void)
}
}
+ display.clear();
+
+ both.println("CLICK for WIFI settings.");
+
+ for (int i = 0; i < 200; i++)
+ {
+ both.print(".");
+
+ button.update();
+ delay(10);
+ if (button.pressedNow())
+ {
+ both.println("-----------");
+ both.println("Starting WIFI-SERVER...");
+ // Error here: E (15752) ledc: ledc_get_duty(745): LEDC is not initialized
+ tone(BUZZER_PIN, 205, 100);
+ delay(50);
+ tone(BUZZER_PIN, 205, 500);
+ tone(BUZZER_PIN, 205, 100);
+ delay(50);
+
+ serverStart();
+ both.println("Ready to Connect: 192.168.4.1");
+ delay(600);
+ break;
+ }
+ }
+ both.print("\n");
+
+ both.println("Init File System");
+ initLittleFS();
+
+ readConfigFile();
+
init_radio();
+
#ifndef LILYGO
vbat = heltec_vbat();
both.printf("V battery: %.2fV (%d%%)\n", vbat, heltec_battery_percent(vbat));
+ delay(1000);
#endif // end not LILYGO
#ifdef WIFI_SCANNING_ENABLED
WiFi.mode(WIFI_STA);
@@ -705,8 +801,9 @@ void setup(void)
r.trigger_level = TRIGGER_LEVEL;
stacked.reset(0, 0, display.width(), display.height());
- bar = new DecoratedBarChart(display, 0, 0, display.width(), 0, FREQ_BEGIN, FREQ_END,
- LO_RSSI_THRESHOLD, HI_RSSI_THRESHOLD, r.trigger_level);
+ bar = new DecoratedBarChart(display, 0, 0, display.width(), 0, CONF_FREQ_BEGIN,
+ CONF_FREQ_END, LO_RSSI_THRESHOLD, HI_RSSI_THRESHOLD,
+ r.trigger_level);
size_t b = stacked.addChart(bar);
@@ -720,9 +817,9 @@ void setup(void)
delete[] multiples;
- waterChart =
- new WaterfallChart(display, 0, WATERFALL_START, display.width(), 0, FREQ_BEGIN,
- FREQ_END, r.trigger_level, WATERFALL_SENSITIVITY, model);
+ waterChart = new WaterfallChart(display, 0, WATERFALL_START, display.width(), 0,
+ CONF_FREQ_BEGIN, CONF_FREQ_END, r.trigger_level,
+ WATERFALL_SENSITIVITY, model);
size_t c = stacked.addChart(waterChart);
stacked.setHeight(c, stacked.height - WATERFALL_START - statusBar->height);
@@ -953,13 +1050,13 @@ void loop(void)
}
// do the scan
- range = FREQ_END - FREQ_BEGIN;
+ range = CONF_FREQ_END - CONF_FREQ_BEGIN;
if (RANGE_PER_PAGE > range)
{
RANGE_PER_PAGE = range;
}
- r.fr_begin = FREQ_BEGIN;
+ r.fr_begin = CONF_FREQ_BEGIN;
r.fr_end = r.fr_begin;
// 50 is a single-screen range
@@ -1092,7 +1189,7 @@ void loop(void)
// Spectrum analyzer using getRSSI
{
LOG("METHOD RSSI");
- uint16_t max_rssi = r.rssiMethod(SAMPLES_RSSI, result,
+ uint16_t max_rssi = r.rssiMethod(CONF_SAMPLES, result,
RADIOLIB_SX126X_SPECTRAL_SCAN_RES_SIZE);
if (max_x_rssi[display_x] > max_rssi)
@@ -1104,7 +1201,7 @@ void loop(void)
// if this code is not executed LORA radio doesn't work
// basically SX1262 requires delay
- // osd.displayString(12, 1, String(FREQ_BEGIN));
+ // osd.displayString(12, 1, String(CONF_FREQ_BEGIN));
// osd.displayString(12, 30 - 8, String(FREQ_END));
// delay(2);
diff --git a/src/ui.cpp b/src/ui.cpp
index e488060..77bdc58 100644
--- a/src/ui.cpp
+++ b/src/ui.cpp
@@ -16,6 +16,8 @@
// temporary dirty import ... to be solved durring upcoming refactoring
extern unsigned int RANGE_PER_PAGE;
+extern uint64_t CONF_FREQ_BEGIN;
+extern uint64_t CONF_FREQ_END;
extern unsigned int median_frequency;
extern unsigned int drone_detected_frequency_start;
extern unsigned int drone_detected_frequency_end;
@@ -95,7 +97,8 @@ void StatusBar::draw()
// Frequency start
display.setTextAlignment(TEXT_ALIGN_LEFT);
display.drawString(pos_x, text_y,
- (r.fr_begin == 0) ? String(FREQ_BEGIN) : String(r.fr_begin));
+ (r.fr_begin == 0) ? String(CONF_FREQ_BEGIN)
+ : String(r.fr_begin));
// Frequency detected
display.setTextAlignment(TEXT_ALIGN_CENTER);
@@ -106,7 +109,7 @@ void StatusBar::draw()
// Frequency end
display.setTextAlignment(TEXT_ALIGN_RIGHT);
display.drawString(pos_x + width, text_y,
- (r.fr_end == 0) ? String(FREQ_END) : String(r.fr_end));
+ (r.fr_end == 0) ? String(CONF_FREQ_END) : String(r.fr_end));
}
// Status text block
@@ -170,11 +173,11 @@ void StatusBar::draw()
display.drawString(pos_x, text_y, String(loop_time));
#else
display.setTextAlignment(TEXT_ALIGN_LEFT);
- display.drawString(pos_x, text_y, String(FREQ_BEGIN));
+ display.drawString(pos_x, text_y, String(CONF_FREQ_BEGIN));
#endif
display.setTextAlignment(TEXT_ALIGN_RIGHT);
- display.drawString(pos_x + width, text_y, String(FREQ_END));
+ display.drawString(pos_x + width, text_y, String(CONF_FREQ_END));
}
else if (ranges_count > 0)
{