mirror of
https://github.com/richonguzman/LoRa_APRS_iGate.git
synced 2026-01-23 01:00:15 +01:00
cambio1
This commit is contained in:
parent
786f5bdc0e
commit
e689bb592c
|
|
@ -29,7 +29,7 @@
|
|||
},
|
||||
"digi": {
|
||||
"mode": 0,
|
||||
"ecoMode": false
|
||||
"ecoMode": 0
|
||||
},
|
||||
"lora": {
|
||||
"txFreq": 433775000,
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@ public:
|
|||
class DIGI {
|
||||
public:
|
||||
int mode;
|
||||
bool ecoMode;
|
||||
int ecoMode; // 0 = Not Active | 1 = Ultra EcoMode | 2 = Not Active (WiFi OFF, Serial ON)
|
||||
};
|
||||
|
||||
class LoraModule {
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@ ___________________________________________________________________*/
|
|||
#endif
|
||||
|
||||
|
||||
String versionDate = "2025.03.20";
|
||||
String versionDate = "2025.04.24";
|
||||
Configuration Config;
|
||||
WiFiClient espClient;
|
||||
#ifdef HAS_GPS
|
||||
|
|
@ -133,7 +133,6 @@ void setup() {
|
|||
Config.loramodule.rxActive = false;
|
||||
}
|
||||
#endif
|
||||
DIGI_Utils::checkEcoMode();
|
||||
WIFI_Utils::setup();
|
||||
NTP_Utils::setup();
|
||||
SYSLOG_Utils::setup();
|
||||
|
|
|
|||
|
|
@ -70,7 +70,7 @@ namespace APRS_IS_Utils {
|
|||
if (WiFi.status() == WL_CONNECTED) {
|
||||
wifiState = "OK";
|
||||
} else {
|
||||
if (backUpDigiMode || Config.digi.ecoMode) {
|
||||
if (backUpDigiMode || Config.digi.ecoMode == 1 || Config.digi.ecoMode == 2) {
|
||||
wifiState = "--";
|
||||
} else {
|
||||
wifiState = "AP";
|
||||
|
|
|
|||
|
|
@ -167,7 +167,7 @@ bool Configuration::readFile() {
|
|||
aprs_is.objectsToRF = data["aprs_is"]["objectsToRF"] | false;
|
||||
|
||||
digi.mode = data["digi"]["mode"] | 0;
|
||||
digi.ecoMode = data["digi"]["ecoMode"] | false;
|
||||
digi.ecoMode = data["digi"]["ecoMode"] | 0;
|
||||
|
||||
loramodule.txFreq = data["lora"]["txFreq"] | 433775000;
|
||||
loramodule.rxFreq = data["lora"]["rxFreq"] | 433775000;
|
||||
|
|
@ -274,7 +274,7 @@ void Configuration::init() {
|
|||
beacon.gpsAmbiguity = false;
|
||||
|
||||
digi.mode = 0;
|
||||
digi.ecoMode = false;
|
||||
digi.ecoMode = 0;
|
||||
|
||||
tnc.enableServer = false;
|
||||
tnc.enableSerial = false;
|
||||
|
|
|
|||
|
|
@ -162,12 +162,4 @@ namespace DIGI_Utils {
|
|||
}
|
||||
}
|
||||
|
||||
void checkEcoMode() {
|
||||
if (Config.digi.ecoMode) {
|
||||
Config.display.alwaysOn = false;
|
||||
Config.display.timeout = 0;
|
||||
setCpuFrequencyMhz(10);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -133,7 +133,7 @@ namespace LoRa_Utils {
|
|||
}
|
||||
|
||||
#ifdef INTERNAL_LED_PIN
|
||||
if (!Config.digi.ecoMode) digitalWrite(INTERNAL_LED_PIN, HIGH);
|
||||
if (Config.digi.ecoMode != 1) digitalWrite(INTERNAL_LED_PIN, HIGH); // disabled in Ultra Eco Mode
|
||||
#endif
|
||||
int state = radio.transmit("\x3c\xff\x01" + newPacket);
|
||||
transmitFlag = true;
|
||||
|
|
@ -148,27 +148,13 @@ namespace LoRa_Utils {
|
|||
Utils::println(String(state));
|
||||
}
|
||||
#ifdef INTERNAL_LED_PIN
|
||||
if (!Config.digi.ecoMode) digitalWrite(INTERNAL_LED_PIN, LOW);
|
||||
if (Config.digi.ecoMode != 1) digitalWrite(INTERNAL_LED_PIN, LOW); // disabled in Ultra Eco Mode
|
||||
#endif
|
||||
if (Config.loramodule.txFreq != Config.loramodule.rxFreq) {
|
||||
changeFreqRx();
|
||||
}
|
||||
}
|
||||
|
||||
/*String packetSanitization(const String& packet) {
|
||||
String sanitizedPacket = packet;
|
||||
if (packet.indexOf("\0") > 0) {
|
||||
sanitizedPacket.replace("\0", "");
|
||||
}
|
||||
if (packet.indexOf("\r") > 0) {
|
||||
sanitizedPacket.replace("\r", "");
|
||||
}
|
||||
if (packet.indexOf("\n") > 0) {
|
||||
sanitizedPacket.replace("\n", "");
|
||||
}
|
||||
return sanitizedPacket;
|
||||
}*/
|
||||
|
||||
void startReceive() {
|
||||
radio.startReceive();
|
||||
}
|
||||
|
|
@ -193,7 +179,7 @@ namespace LoRa_Utils {
|
|||
Utils::println("<--- LoRa Packet Rx : " + packet.substring(3));
|
||||
Utils::println("(RSSI:" + String(rssi) + " / SNR:" + String(snr) + " / FreqErr:" + String(freqError) + ")");
|
||||
|
||||
if (!Config.lowPowerMode && !Config.digi.ecoMode) {
|
||||
if (!Config.lowPowerMode && Config.digi.ecoMode == 0) {
|
||||
if (receivedPackets.size() >= 10) {
|
||||
receivedPackets.erase(receivedPackets.begin());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ NTPClient timeClient(ntpUDP, "pool.ntp.org", 0, 15 * 60 * 1000); // Update in
|
|||
namespace NTP_Utils {
|
||||
|
||||
void setup() {
|
||||
if (WiFi.status() == WL_CONNECTED && !Config.digi.ecoMode && Config.callsign != "NOCALL-10") {
|
||||
if (WiFi.status() == WL_CONNECTED && Config.digi.ecoMode == 0 && Config.callsign != "NOCALL-10") {
|
||||
int gmt = Config.ntp.gmtCorrection * 3600;
|
||||
timeClient.setTimeOffset(gmt);
|
||||
timeClient.begin();
|
||||
|
|
@ -23,11 +23,11 @@ namespace NTP_Utils {
|
|||
}
|
||||
|
||||
void update() {
|
||||
if (WiFi.status() == WL_CONNECTED && !Config.digi.ecoMode && Config.callsign != "NOCALL-10") timeClient.update();
|
||||
if (WiFi.status() == WL_CONNECTED && Config.digi.ecoMode == 0 && Config.callsign != "NOCALL-10") timeClient.update();
|
||||
}
|
||||
|
||||
String getFormatedTime() {
|
||||
if (!Config.digi.ecoMode) return timeClient.getFormattedTime();
|
||||
if (Config.digi.ecoMode == 0) return timeClient.getFormattedTime();
|
||||
return "DigiEcoMode Active";
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -250,7 +250,7 @@ namespace POWER_Utils {
|
|||
|
||||
#if defined(HELTEC_V3) || defined(HELTEC_V3_2) || defined(HELTEC_WP) || defined(HELTEC_WSL_V3) || defined(HELTEC_WSL_V3_DISPLAY)
|
||||
Wire1.begin(BOARD_I2C_SDA, BOARD_I2C_SCL);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(TTGO_T_DECK_GPS) || defined(TTGO_T_DECK_PLUS)
|
||||
pinMode(BOARD_POWERON, OUTPUT);
|
||||
|
|
@ -266,7 +266,15 @@ namespace POWER_Utils {
|
|||
|
||||
delay(500);
|
||||
Wire.begin(BOARD_I2C_SDA, BOARD_I2C_SCL);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// PIN Ultra Eco Mode definitions
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//
|
||||
|
||||
delay(1000);
|
||||
BATTERY_Utils::setup();
|
||||
|
|
|
|||
|
|
@ -58,9 +58,9 @@ namespace QUERY_Utils {
|
|||
else if (STATION_Utils::isManager(station) && (!queryFromAPRSIS || !Config.remoteManagement.rfOnly)) {
|
||||
if (queryQuestion.indexOf("?EM=OFF") == 0) {
|
||||
if ((Config.digi.mode == 2 || Config.digi.mode == 3) && Config.loramodule.txActive && Config.loramodule.rxActive && !Config.aprs_is.active) {
|
||||
if (Config.digi.ecoMode) { // Exit Digipeater EcoMode
|
||||
if (Config.digi.ecoMode == 1) { // Exit Digipeater EcoMode
|
||||
answer = "DigiEcoMode:OFF";
|
||||
Config.digi.ecoMode = false;
|
||||
Config.digi.ecoMode = 0;
|
||||
Config.display.alwaysOn = true;
|
||||
Config.display.timeout = 10;
|
||||
shouldSleepLowVoltage = true; // to make sure all packets in outputPacketBuffer are sended before restart.
|
||||
|
|
@ -73,9 +73,9 @@ namespace QUERY_Utils {
|
|||
}
|
||||
} else if (queryQuestion.indexOf("?EM=ON") == 0) {
|
||||
if ((Config.digi.mode == 2 || Config.digi.mode == 3) && Config.loramodule.txActive && Config.loramodule.rxActive && !Config.aprs_is.active) {
|
||||
if (!Config.digi.ecoMode) { // Start Digipeater EcoMode
|
||||
if (Config.digi.ecoMode == 0) { // Start Digipeater EcoMode
|
||||
answer = "DigiEcoMode:ON";
|
||||
Config.digi.ecoMode = true;
|
||||
Config.digi.ecoMode = 1;
|
||||
shouldSleepLowVoltage = true; // to make sure all packets in outputPacketBuffer are sended before restart.
|
||||
saveNewDigiEcoModeConfig = true;
|
||||
} else {
|
||||
|
|
@ -85,7 +85,13 @@ namespace QUERY_Utils {
|
|||
answer = "DigiEcoMode control not possible";
|
||||
}
|
||||
} else if (queryQuestion.indexOf("?EM=?") == 0) { // Digipeater EcoMode Status
|
||||
answer = (Config.digi.ecoMode) ? "DigiEcoMode:ON" : "DigiEcoMode:OFF";
|
||||
if (Config.digi.ecoMode == 0) {
|
||||
answer = "DigiEcoMode:OFF";
|
||||
} else if (Config.digi.ecoMode == 1) {
|
||||
answer = "DigiEcoMode:ON";
|
||||
} else {
|
||||
answer = "DigiEcoMode:OFF/Only Serial Output";
|
||||
}
|
||||
} else if (queryQuestion.indexOf("?TX=ON") == 0) {
|
||||
if (Config.loramodule.txActive) {
|
||||
answer = "TX was ON";
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ String inputSerialBuffer = "";
|
|||
namespace TNC_Utils {
|
||||
|
||||
void setup() {
|
||||
if (Config.tnc.enableServer && !Config.digi.ecoMode) {
|
||||
if (Config.tnc.enableServer && Config.digi.ecoMode == 0) {
|
||||
tncServer.stop();
|
||||
tncServer.begin();
|
||||
}
|
||||
|
|
@ -128,7 +128,7 @@ namespace TNC_Utils {
|
|||
}
|
||||
|
||||
void loop() {
|
||||
if (!Config.digi.ecoMode) {
|
||||
if (Config.digi.ecoMode == 0) {
|
||||
if (Config.tnc.enableServer) {
|
||||
checkNewClients();
|
||||
readFromClients();
|
||||
|
|
|
|||
|
|
@ -76,7 +76,7 @@ namespace Utils {
|
|||
}
|
||||
|
||||
String getLocalIP() {
|
||||
if (Config.digi.ecoMode) {
|
||||
if (Config.digi.ecoMode == 1 || Config.digi.ecoMode == 2) {
|
||||
return "** WiFi AP Killed **";
|
||||
} else if (!WiFiConnected) {
|
||||
return "IP : 192.168.4.1";
|
||||
|
|
@ -93,7 +93,14 @@ namespace Utils {
|
|||
digitalWrite(INTERNAL_LED_PIN,HIGH);
|
||||
#endif
|
||||
Serial.println("\nStarting Station: " + Config.callsign + " Version: " + versionDate);
|
||||
Serial.println((Config.digi.ecoMode) ? "(DigiEcoMode: ON)" : "(DigiEcoMode: OFF)");
|
||||
Serial.print("(DigiEcoMode: ");
|
||||
if (Config.digi.ecoMode == 0) {
|
||||
Serial.println("OFF)");
|
||||
} else if (Config.digi.ecoMode == 1) {
|
||||
Serial.println("ON)");
|
||||
} else {
|
||||
Serial.println("ON / Only Serial Output)");
|
||||
}
|
||||
displayShow(" LoRa APRS", "", "", " ( iGATE & DIGI )", "", "" , " CA2RXU " + versionDate, 4000);
|
||||
#ifdef INTERNAL_LED_PIN
|
||||
digitalWrite(INTERNAL_LED_PIN,LOW);
|
||||
|
|
@ -200,7 +207,6 @@ namespace Utils {
|
|||
!Config.wxsensor.active &&
|
||||
(Config.battery.sendInternalVoltage || Config.battery.sendExternalVoltage) &&
|
||||
(lastBeaconTx > 0)) {
|
||||
//(!Config.digi.ecoMode || lastBeaconTx > 0)) {
|
||||
sendInitialTelemetryPackets();
|
||||
}
|
||||
|
||||
|
|
@ -211,7 +217,7 @@ namespace Utils {
|
|||
beaconPacket = iGateBeaconPacket;
|
||||
secondaryBeaconPacket = iGateLoRaBeaconPacket;
|
||||
#ifdef HAS_GPS
|
||||
if (Config.beacon.gpsActive && !Config.digi.ecoMode) {
|
||||
if (Config.beacon.gpsActive && Config.digi.ecoMode == 0) {
|
||||
GPS_Utils::getData();
|
||||
if (gps.location.isUpdated() && gps.location.lat() != 0.0 && gps.location.lng() != 0.0) {
|
||||
GPS_Utils::generateBeaconFirstPart();
|
||||
|
|
|
|||
|
|
@ -141,7 +141,7 @@ namespace WEB_Utils {
|
|||
|
||||
|
||||
Config.digi.mode = request->getParam("digi.mode", true)->value().toInt();
|
||||
Config.digi.ecoMode = request->hasParam("digi.ecoMode", true);
|
||||
Config.digi.ecoMode = request->getParam("digi.ecoMode", true)->value().toInt();;
|
||||
|
||||
|
||||
Config.loramodule.txFreq = request->getParam("lora.txFreq", true)->value().toInt();
|
||||
|
|
@ -271,7 +271,7 @@ namespace WEB_Utils {
|
|||
}
|
||||
|
||||
void setup() {
|
||||
if (!Config.digi.ecoMode) {
|
||||
if (Config.digi.ecoMode == 0) {
|
||||
server.on("/", HTTP_GET, handleHome);
|
||||
server.on("/status", HTTP_GET, handleStatus);
|
||||
server.on("/received-packets.json", HTTP_GET, handleReceivedPackets);
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ uint32_t lastBackupDigiTime = millis();
|
|||
namespace WIFI_Utils {
|
||||
|
||||
void checkWiFi() {
|
||||
if (!Config.digi.ecoMode) {
|
||||
if (Config.digi.ecoMode == 0) {
|
||||
if (backUpDigiMode) {
|
||||
uint32_t WiFiCheck = millis() - lastBackupDigiTime;
|
||||
if (WiFi.status() != WL_CONNECTED && WiFiCheck >= 15 * 60 * 1000) {
|
||||
|
|
@ -154,7 +154,7 @@ namespace WIFI_Utils {
|
|||
}
|
||||
|
||||
void setup() {
|
||||
if (!Config.digi.ecoMode) startWiFi();
|
||||
if (Config.digi.ecoMode == 0) startWiFi();
|
||||
btStop();
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue