testing LowPowerDigi

This commit is contained in:
richonguzman 2024-10-08 01:03:58 -03:00
parent 16215f9e56
commit f387e03b53
14 changed files with 46 additions and 38 deletions

View File

@ -2,7 +2,6 @@
"callsign": "NOCALL-10",
"wifi": {
"autoAP": {
"active": true,
"password": "1234567890",
"timeout": 10
},
@ -29,7 +28,8 @@
"objectsToRF": false
},
"digi": {
"mode": 0
"mode": 0,
"ecoMode": false
},
"lora": {
"txFreq": 433775000,

View File

@ -585,6 +585,21 @@
</option>
</select>
</div>
<div class="col-12">
<div class="form-check form-switch">
<input
type="checkbox"
name="digi.ecoMode"
id="digi.ecoMode"
class="form-check-input"
/>
<label
for="digi.ecoMode"
class="form-label"
>Digi - Eco Mode<small> This will Kill WiFi, Display, Leds and Low Processor Speed for Low Current Digirepeater. (<strong>Caution:</strong> Not Active means No WebUI Configuration, so <strong>ONLY</strong> activate for Remote Digirepeater)</small></label
>
</div>
</div>
</div>
</div>
</div>
@ -1465,21 +1480,6 @@
</div>
<div class="col-lg-9 col-sm-12">
<div class="col-12">
<div class="form-check form-switch">
<input
type="checkbox"
name="wifi.autoAP.active"
id="wifi.autoAP.active"
class="form-check-input"
/>
<label
for="wifi.autoAP.active"
class="form-label"
>WiFi Active<small> (Leave it Active for WiFi and WiFiAP normal use. <strong>Caution:</strong> Not Active means No WebUI Configuration, so <strong>ONLY</strong> deactivate it on Remote Digirepeater Mode)</small></label
>
</div>
</div>
<div class="col-12 mt-3">
<label
for="wifi.autoAP.password"
class="form-label"

View File

@ -136,6 +136,7 @@ function loadSettings(settings) {
// Digi
document.getElementById("digi.mode").value = settings.digi.mode;
document.getElementById("digi.ecoMode").checked = settings.digi.ecoMode;
// LoRa
document.getElementById("lora.txFreq").value = settings.lora.txFreq;
@ -195,7 +196,6 @@ function loadSettings(settings) {
document.getElementById("other.rebootModeTime").value = settings.other.rebootModeTime;
// WiFi Auto AP
document.getElementById("wifi.autoAP.active").checked = settings.wifi.autoAP.active;
document.getElementById("wifi.autoAP.password").value = settings.wifi.autoAP.password;
document.getElementById("wifi.autoAP.timeout").value = settings.wifi.autoAP.timeout;

View File

@ -38,7 +38,7 @@ ________________________________________________________________________________
#include "A7670_utils.h"
#endif
String versionDate = "2024.10.07";
String versionDate = "2024.10.08";
Configuration Config;
WiFiClient espClient;
@ -111,6 +111,7 @@ void setup() {
Config.loramodule.rxActive = false;
}
#endif
DIGI_Utils::checkEcoMode();
WIFI_Utils::setup();
SYSLOG_Utils::setup();
WX_Utils::setup();

View File

@ -71,7 +71,7 @@ namespace APRS_IS_Utils {
if (WiFi.status() == WL_CONNECTED) {
wifiState = "OK";
} else {
if (backUpDigiMode || !Config.wifiAutoAP.active) {
if (backUpDigiMode || Config.digi.ecoMode) {
wifiState = "--";
} else {
wifiState = "AP";

View File

@ -17,7 +17,6 @@ void Configuration::writeFile() {
}
}
data["wifi"]["autoAP"]["active"] = wifiAutoAP.active;
data["wifi"]["autoAP"]["password"] = wifiAutoAP.password;
data["wifi"]["autoAP"]["timeout"] = wifiAutoAP.timeout;
@ -42,6 +41,7 @@ void Configuration::writeFile() {
data["beacon"]["path"] = beacon.path;
data["digi"]["mode"] = digi.mode;
data["digi"]["ecoMode"] = digi.ecoMode;
data["lora"]["rxFreq"] = loramodule.rxFreq;
data["lora"]["txFreq"] = loramodule.txFreq;
@ -129,7 +129,6 @@ bool Configuration::readFile() {
wifiAPs.push_back(wifiap);
}
wifiAutoAP.active = data["wifi"]["autoAP"]["active"] | true;
wifiAutoAP.password = data["wifi"]["autoAP"]["password"] | "1234567890";
wifiAutoAP.timeout = data["wifi"]["autoAP"]["timeout"] | 10;
@ -155,6 +154,7 @@ bool Configuration::readFile() {
aprs_is.objectsToRF = data["aprs_is"]["objectsToRF"] | false;
digi.mode = data["digi"]["mode"] | 0;
digi.ecoMode = data["digi"]["ecoMode"] | false;
loramodule.txFreq = data["lora"]["txFreq"] | 433775000;
loramodule.rxFreq = data["lora"]["rxFreq"] | 433775000;
@ -235,7 +235,6 @@ void Configuration::init() {
wifiAPs.push_back(wifiap);
wifiAutoAP.active = true;
wifiAutoAP.password = "1234567890";
wifiAutoAP.timeout = 10;
@ -251,7 +250,8 @@ void Configuration::init() {
beacon.sendViaRF = false;
beacon.path = "WIDE1-1";
digi.mode = 0;
digi.mode = 0;
digi.ecoMode = false;
tnc.enableServer = false;
tnc.enableSerial = false;

View File

@ -13,7 +13,6 @@ public:
class WiFi_Auto_AP {
public:
bool active;
String password;
int timeout;
};
@ -45,6 +44,7 @@ public:
class DIGI {
public:
int mode;
bool ecoMode;
};

View File

@ -164,4 +164,12 @@ namespace DIGI_Utils {
}
}
void checkEcoMode() {
if (Config.digi.ecoMode) {
Config.display.alwaysOn = false;
Config.display.timeout = 0;
setCpuFrequencyMhz(10);
}
}
}

View File

@ -9,6 +9,7 @@ namespace DIGI_Utils {
String buildPacket(const String& path, const String& packet, bool thirdParty, bool crossFreq);
String generateDigiRepeatedPacket(const String& packet, bool thirdParty);
void processLoRaPacket(const String& packet);
void checkEcoMode();
}

View File

@ -116,9 +116,9 @@ namespace LoRa_Utils {
if (Config.loramodule.txFreq != Config.loramodule.rxFreq) {
changeFreqTx();
}
#ifdef INTERNAL_LED_PIN
digitalWrite(INTERNAL_LED_PIN, HIGH);
if (!Config.digi.ecoMode) digitalWrite(INTERNAL_LED_PIN, HIGH);
#endif
int state = radio.transmit("\x3c\xff\x01" + newPacket);
transmitFlag = true;
@ -133,7 +133,7 @@ namespace LoRa_Utils {
Utils::println(String(state));
}
#ifdef INTERNAL_LED_PIN
digitalWrite(INTERNAL_LED_PIN, LOW);
if (!Config.digi.ecoMode) digitalWrite(INTERNAL_LED_PIN, LOW);
#endif
if (Config.loramodule.txFreq != Config.loramodule.rxFreq) {
changeFreqRx();

View File

@ -22,7 +22,7 @@ String inputSerialBuffer = "";
namespace TNC_Utils {
void setup() {
if (Config.tnc.enableServer && Config.wifiAutoAP.active) {
if (Config.tnc.enableServer && !Config.digi.ecoMode) {
tncServer.stop();
tncServer.begin();
}
@ -133,7 +133,7 @@ namespace TNC_Utils {
}
void loop() {
if (Config.wifiAutoAP.active) {
if (!Config.digi.ecoMode) {
if (Config.tnc.enableServer) {
checkNewClients();
readFromClients();

View File

@ -70,7 +70,7 @@ namespace Utils {
}
String getLocalIP() {
if (!Config.wifiAutoAP.active) {
if (Config.digi.ecoMode) {
return "** WiFi AP Killed **";
} else if (!WiFiConnected) {
return "IP : 192.168.4.1";

View File

@ -111,7 +111,6 @@ namespace WEB_Utils {
Config.callsign = request->getParam("callsign", true)->value();
Config.wifiAutoAP.active = request->hasParam("wifi.autoAP.active", true);
Config.wifiAutoAP.password = request->getParam("wifi.autoAP.password", true)->value();
Config.wifiAutoAP.timeout = request->getParam("wifi.autoAP.timeout", true)->value().toInt();
@ -136,7 +135,8 @@ namespace WEB_Utils {
Config.beacon.path = request->getParam("beacon.path", true)->value();
Config.digi.mode = request->getParam("digi.mode", true)->value().toInt();
Config.digi.mode = request->getParam("digi.mode", true)->value().toInt();
Config.digi.ecoMode = request->hasParam("digi.ecoMode", true);
Config.loramodule.txFreq = request->getParam("lora.txFreq", true)->value().toInt();
@ -259,7 +259,7 @@ namespace WEB_Utils {
}
void setup() {
if (Config.wifiAutoAP.active) {
if (!Config.digi.ecoMode) {
server.on("/", HTTP_GET, handleHome);
server.on("/status", HTTP_GET, handleStatus);
server.on("/received-packets.json", HTTP_GET, handleReceivedPackets);

View File

@ -23,7 +23,7 @@ uint32_t lastBackupDigiTime = millis();
namespace WIFI_Utils {
void checkWiFi() {
if (Config.wifiAutoAP.active) {
if (!Config.digi.ecoMode) {
if (backUpDigiMode) {
uint32_t WiFiCheck = millis() - lastBackupDigiTime;
if (WiFi.status() != WL_CONNECTED && WiFiCheck >= 15 * 60 * 1000) {
@ -153,9 +153,7 @@ namespace WIFI_Utils {
}
void setup() {
if (Config.wifiAutoAP.active) {
startWiFi();
}
if (!Config.digi.ecoMode) startWiFi();
btStop();
}