From 6368eca7aa9c4293ee95d5a807620f847e2f8ee2 Mon Sep 17 00:00:00 2001 From: Sassa NF Date: Tue, 31 Dec 2024 11:00:48 +0000 Subject: [PATCH] Default lora config --- lib/config/config.cpp | 53 +++++++++++++++++++------------------------ lib/config/config.h | 30 ++++++++++++++++++++---- platformio.ini | 3 +++ src/main.cpp | 4 ++-- 4 files changed, 54 insertions(+), 36 deletions(-) diff --git a/lib/config/config.cpp b/lib/config/config.cpp index 2b2ec69..07ae40a 100644 --- a/lib/config/config.cpp +++ b/lib/config/config.cpp @@ -107,23 +107,26 @@ Config Config::init() return c; } +#define UPDATE_BOOL(val, key, value) \ + if (key.equalsIgnoreCase(#val)) \ + { \ + String v = value; \ + bool p = v.equalsIgnoreCase("true"); \ + if (!p && !v.equalsIgnoreCase("false")) \ + { \ + Serial.printf("Expected bool for '%s', found '%s' - ignoring\n", \ + key.c_str(), value.c_str()); \ + } \ + else \ + { \ + val = p; \ + } \ + return true; \ + } + bool Config::updateConfig(String key, String value) { - if (key.equalsIgnoreCase("print_profile_time")) - { - String v = value; - bool p = v.equalsIgnoreCase("true"); - if (!p && !v.equalsIgnoreCase("false")) - { - Serial.printf("Expected bool for '%s', found '%s' - ignoring\n", key.c_str(), - value.c_str()); - } - else - { - print_profile_time = p; - } - return true; - } + UPDATE_BOOL(print_profile_time, key, value); if (key.equalsIgnoreCase("log_data_json_interval")) { @@ -167,21 +170,9 @@ bool Config::updateConfig(String key, String value) return true; } - if (key.equalsIgnoreCase("is_host")) - { - String v = value; - bool p = v.equalsIgnoreCase("true"); - if (!p && !v.equalsIgnoreCase("false")) - { - Serial.printf("Expected bool for '%s', found '%s' - ignoring\n", key.c_str(), - value.c_str()); - } - else - { - is_host = p; - } - return true; - } + UPDATE_BOOL(is_host, key, value); + + UPDATE_BOOL(lora_enabled, key, value); return false; } @@ -512,6 +503,8 @@ bool Config::write_config(const char *path) f.println("tx_lora = " + getConfig("tx_lora")); f.println("is_host = " + getConfig("is_host")); + f.println("lora_enabled = " + getConfig("lora_enabled")); + f.close(); return true; } diff --git a/lib/config/config.h b/lib/config/config.h index 87136e8..29ce03e 100644 --- a/lib/config/config.h +++ b/lib/config/config.h @@ -25,6 +25,28 @@ struct LoRaConfig LoRaConfig *configureLora(String cfg); +#ifndef FREQ_RX +#define FREQ_RX 866 +#endif + +#ifndef FREQ_TX +#define FREQ_TX (FREQ_RX + 2) +#endif + +#define DEFAULT_RX String("freq:") + String(FREQ_RX) +#define DEFAULT_TX String("freq:") + String(FREQ_TX) + +#ifndef DEFAULT_TX_SCAN_ON_BOOT +#define DEFAULT_TX_SCAN_ON_BOOT false +#endif + +#ifndef DEFAULT_IS_LORA_HOST +#define DEFAULT_IS_LORA_HOST false +#endif + +#ifndef DEFAULT_LORA_ENABLED +#define DEFAULT_LORA_ENABLED false +#endif #define CREATE_MISSING_CONFIG true struct Config { @@ -42,16 +64,16 @@ struct Config LoRaConfig *tx_lora; bool is_host; + bool lora_enabled; Config() : create_missing_config(CREATE_MISSING_CONFIG), print_profile_time(false), detection_strategy(String("RSSI")), samples(0), scan_ranges_sz(0), scan_ranges(NULL), log_data_json_interval(1000), listen_on_serial0(String("none")), listen_on_serial1(String("readline")), - listen_on_usb(String("readline")), rx_lora(NULL), tx_lora(NULL), - // Enable Lora Send: - // rx_lora(configureLora("freq:920")),tx_lora(configureLora("freq:916")) - is_host(false) {}; + listen_on_usb(String("readline")), rx_lora(configureLora(DEFAULT_RX)), + tx_lora(configureLora(DEFAULT_TX)), is_host(DEFAULT_IS_LORA_HOST), + lora_enabled(DEFAULT_LORA_ENABLED) {}; bool write_config(const char *path); diff --git a/platformio.ini b/platformio.ini index 7225048..370060d 100644 --- a/platformio.ini +++ b/platformio.ini @@ -70,6 +70,7 @@ build_flags = -DHELTEC -DFREQ_BEGIN=130 -DFREQ_END=180 + -DFREQ_RX=133 -DRADIOLIB_CHECK_PARAMS=0 [env:lilygo-T3S3-v1-2-sx1262] @@ -122,6 +123,7 @@ build_flags = -DUSING_LR1121 -DFREQ_BEGIN=2400 -DFREQ_END=2500 + -DFREQ_RX=2440 -DARDUINO_ARCH_ESP32 -DARDUINO_USB_CDC_ON_BOOT=1 -DARDUINO_LILYGO_T3_S3_V1_X @@ -150,6 +152,7 @@ build_flags = -DUSING_SX1280PA -DFREQ_BEGIN=2400 -DFREQ_END=2500 + -DFREQ_RX=2440 -DARDUINO_ARCH_ESP32 -DARDUINO_USB_CDC_ON_BOOT=1 -DARDUINO_LILYGO_T3_S3_V1_X diff --git a/src/main.cpp b/src/main.cpp index aa63139..6b24e25 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1521,9 +1521,9 @@ void loop(void) else { doScan(); - if (TxComms != NULL) + if (TxComms != NULL && config.lora_enabled) reportScan(*TxComms); - if (RxComms != NULL) + if (RxComms != NULL && config.lora_enabled) checkRadio(*RxComms); } }