Add power options
Can deep sleep or just turn off the screen and keep tuner alive.
This commit is contained in:
+50
-10
@@ -114,6 +114,7 @@ byte SNR;
|
|||||||
byte SNRold;
|
byte SNRold;
|
||||||
byte specialstepOIRT;
|
byte specialstepOIRT;
|
||||||
byte stepsize;
|
byte stepsize;
|
||||||
|
byte deepsleep;
|
||||||
byte StereoLevel;
|
byte StereoLevel;
|
||||||
byte subnetclient;
|
byte subnetclient;
|
||||||
byte TEF;
|
byte TEF;
|
||||||
@@ -235,7 +236,7 @@ WiFiUDP Udp;
|
|||||||
|
|
||||||
void setup() {
|
void setup() {
|
||||||
setupmode = true;
|
setupmode = true;
|
||||||
EEPROM.begin(259);
|
EEPROM.begin(260);
|
||||||
if (EEPROM.readByte(43) != 28) DefaultSettings();
|
if (EEPROM.readByte(43) != 28) DefaultSettings();
|
||||||
|
|
||||||
frequency = EEPROM.readUInt(0);
|
frequency = EEPROM.readUInt(0);
|
||||||
@@ -286,6 +287,7 @@ void setup() {
|
|||||||
LowEdgeOIRTSet = EEPROM.readUInt(250);
|
LowEdgeOIRTSet = EEPROM.readUInt(250);
|
||||||
HighEdgeOIRTSet = EEPROM.readUInt(254);
|
HighEdgeOIRTSet = EEPROM.readUInt(254);
|
||||||
colorinvert = EEPROM.readByte(258);
|
colorinvert = EEPROM.readByte(258);
|
||||||
|
deepsleep = EEPROM.readByte(259);
|
||||||
|
|
||||||
LWLowEdgeSet = FREQ_LW_LOW_EDGE_MIN; // later will read from flash
|
LWLowEdgeSet = FREQ_LW_LOW_EDGE_MIN; // later will read from flash
|
||||||
LWHighEdgeSet = FREQ_LW_HIGH_EDGE_MAX; // later will read from flash
|
LWHighEdgeSet = FREQ_LW_HIGH_EDGE_MAX; // later will read from flash
|
||||||
@@ -691,6 +693,26 @@ void GetData() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SleepWake(bool isSleep) {
|
||||||
|
if (isSleep) {
|
||||||
|
power = false;
|
||||||
|
analogWrite(SMETERPIN, 0);
|
||||||
|
analogWrite(CONTRASTPIN, 0);
|
||||||
|
StoreFrequency();
|
||||||
|
if (deepsleep) radio.power(1);
|
||||||
|
}else {
|
||||||
|
if (deepsleep) {
|
||||||
|
ESP.restart();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
power = true;
|
||||||
|
pinMode (STANDBYLED, OUTPUT);
|
||||||
|
digitalWrite(STANDBYLED, LOW);
|
||||||
|
analogWrite(CONTRASTPIN, ContrastSet * 2 + 27);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void PWRButtonPress() {
|
void PWRButtonPress() {
|
||||||
if (menu == false) {
|
if (menu == false) {
|
||||||
unsigned long counterold = millis();
|
unsigned long counterold = millis();
|
||||||
@@ -699,7 +721,7 @@ void PWRButtonPress() {
|
|||||||
|
|
||||||
if (counter - counterold < 1000) {
|
if (counter - counterold < 1000) {
|
||||||
if (power == false) {
|
if (power == false) {
|
||||||
ESP.restart();
|
SleepWake(false); // Wake up
|
||||||
} else {
|
} else {
|
||||||
if (tunemode != TUNE_MEM) {
|
if (tunemode != TUNE_MEM) {
|
||||||
if (band == BAND_FM) {
|
if (band == BAND_FM) {
|
||||||
@@ -715,15 +737,9 @@ void PWRButtonPress() {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (power == false) {
|
if (power == false) {
|
||||||
ESP.restart();
|
SleepWake(false); // Wake up
|
||||||
} else {
|
} else {
|
||||||
power = false;
|
SleepWake(true); // Sleep
|
||||||
analogWrite(SMETERPIN, 0);
|
|
||||||
analogWrite(CONTRASTPIN, 0);
|
|
||||||
pinMode (STANDBYLED, OUTPUT);
|
|
||||||
digitalWrite(STANDBYLED, LOW);
|
|
||||||
StoreFrequency();
|
|
||||||
radio.power(1);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
while (digitalRead(PWRBUTTON) == LOW) delay(50);
|
while (digitalRead(PWRBUTTON) == LOW) delay(50);
|
||||||
@@ -1274,6 +1290,7 @@ void ModeButtonPress() {
|
|||||||
EEPROM.writeUInt(250, LowEdgeOIRTSet);
|
EEPROM.writeUInt(250, LowEdgeOIRTSet);
|
||||||
EEPROM.writeUInt(254, HighEdgeOIRTSet);
|
EEPROM.writeUInt(254, HighEdgeOIRTSet);
|
||||||
EEPROM.writeByte(258, colorinvert);
|
EEPROM.writeByte(258, colorinvert);
|
||||||
|
EEPROM.writeByte(259, deepsleep);
|
||||||
EEPROM.commit();
|
EEPROM.commit();
|
||||||
Serial.end();
|
Serial.end();
|
||||||
if (wifi) remoteip = IPAddress (WiFi.localIP()[0], WiFi.localIP()[1], WiFi.localIP()[2], subnetclient);
|
if (wifi) remoteip = IPAddress (WiFi.localIP()[0], WiFi.localIP()[1], WiFi.localIP()[2], subnetclient);
|
||||||
@@ -1722,6 +1739,12 @@ void ButtonPress() {
|
|||||||
tft.setTextColor(TFT_WHITE);
|
tft.setTextColor(TFT_WHITE);
|
||||||
tft.drawCentreString("https://github.com/PE5PVB/TEF6686_ESP32", 155, 175, GFXFF);
|
tft.drawCentreString("https://github.com/PE5PVB/TEF6686_ESP32", 155, 175, GFXFF);
|
||||||
break;
|
break;
|
||||||
|
case 70:
|
||||||
|
tft.setTextColor(TFT_WHITE);
|
||||||
|
tft.drawCentreString(myLanguage[language][74], 155, 70, GFXFF);
|
||||||
|
tft.setTextColor(TFT_YELLOW);
|
||||||
|
if (deepsleep) tft.drawCentreString(myLanguage[language][75], 155, 110, GFXFF); else tft.drawCentreString(myLanguage[language][76], 155, 110, GFXFF);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -2109,6 +2132,13 @@ void KeyUp() {
|
|||||||
if (colorinvert) tft.drawCentreString(myLanguage[language][42], 155, 110, GFXFF); else tft.drawCentreString(myLanguage[language][30], 155, 110, GFXFF);
|
if (colorinvert) tft.drawCentreString(myLanguage[language][42], 155, 110, GFXFF); else tft.drawCentreString(myLanguage[language][30], 155, 110, GFXFF);
|
||||||
tft.invertDisplay(colorinvert);
|
tft.invertDisplay(colorinvert);
|
||||||
break;
|
break;
|
||||||
|
case 70:
|
||||||
|
tft.setTextColor(TFT_BLACK);
|
||||||
|
if (deepsleep) tft.drawCentreString(myLanguage[language][75], 155, 110, GFXFF); else tft.drawCentreString(myLanguage[language][76], 155, 110, GFXFF);
|
||||||
|
if (deepsleep) deepsleep = 0; else deepsleep = 1;
|
||||||
|
tft.setTextColor(TFT_YELLOW);
|
||||||
|
if (deepsleep) tft.drawCentreString(myLanguage[language][75], 155, 110, GFXFF); else tft.drawCentreString(myLanguage[language][76], 155, 110, GFXFF);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -2489,6 +2519,13 @@ void KeyDown() {
|
|||||||
if (colorinvert) tft.drawCentreString(myLanguage[language][42], 155, 110, GFXFF); else tft.drawCentreString(myLanguage[language][30], 155, 110, GFXFF);
|
if (colorinvert) tft.drawCentreString(myLanguage[language][42], 155, 110, GFXFF); else tft.drawCentreString(myLanguage[language][30], 155, 110, GFXFF);
|
||||||
tft.invertDisplay(colorinvert);
|
tft.invertDisplay(colorinvert);
|
||||||
break;
|
break;
|
||||||
|
case 70:
|
||||||
|
tft.setTextColor(TFT_BLACK);
|
||||||
|
if (deepsleep) tft.drawCentreString(myLanguage[language][75], 155, 110, GFXFF); else tft.drawCentreString(myLanguage[language][76], 155, 110, GFXFF);
|
||||||
|
if (deepsleep) deepsleep = 0; else deepsleep = 1;
|
||||||
|
tft.setTextColor(TFT_YELLOW);
|
||||||
|
if (deepsleep) tft.drawCentreString(myLanguage[language][75], 155, 110, GFXFF); else tft.drawCentreString(myLanguage[language][76], 155, 110, GFXFF);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -2988,8 +3025,10 @@ void BuildMenu() {
|
|||||||
case 4:
|
case 4:
|
||||||
tft.drawString(myLanguage[language][69], 14, 30, GFXFF);
|
tft.drawString(myLanguage[language][69], 14, 30, GFXFF);
|
||||||
tft.drawString(myLanguage[language][70], 14, 50, GFXFF);
|
tft.drawString(myLanguage[language][70], 14, 50, GFXFF);
|
||||||
|
tft.drawString(myLanguage[language][74], 14, 70, GFXFF);
|
||||||
tft.setTextColor(TFT_YELLOW);
|
tft.setTextColor(TFT_YELLOW);
|
||||||
if (colorinvert) tft.drawRightString(myLanguage[language][42], 305, 30, GFXFF); else tft.drawRightString(myLanguage[language][30], 305, 30, GFXFF);
|
if (colorinvert) tft.drawRightString(myLanguage[language][42], 305, 30, GFXFF); else tft.drawRightString(myLanguage[language][30], 305, 30, GFXFF);
|
||||||
|
if (deepsleep) tft.drawRightString(myLanguage[language][75], 305, 70, GFXFF); else tft.drawRightString(myLanguage[language][76], 305, 70, GFXFF);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
analogWrite(SMETERPIN, 0);
|
analogWrite(SMETERPIN, 0);
|
||||||
@@ -4863,5 +4902,6 @@ void DefaultSettings() {
|
|||||||
EEPROM.writeUInt(250, 0);
|
EEPROM.writeUInt(250, 0);
|
||||||
EEPROM.writeUInt(254, 0);
|
EEPROM.writeUInt(254, 0);
|
||||||
EEPROM.writeByte(258, 0);
|
EEPROM.writeByte(258, 0);
|
||||||
|
EEPROM.writeByte(259, 0);
|
||||||
EEPROM.commit();
|
EEPROM.commit();
|
||||||
}
|
}
|
||||||
|
|||||||
+37
-10
@@ -1,6 +1,6 @@
|
|||||||
// [number of languages][number of texts][max. length of text]
|
// [number of languages][number of texts][max. length of text]
|
||||||
|
|
||||||
static const char myLanguage[9][74][85] = {
|
static const char myLanguage[9][77][85] = {
|
||||||
{ "English", // English
|
{ "English", // English
|
||||||
"Rotary direction changed",
|
"Rotary direction changed",
|
||||||
"Please release button",
|
"Please release button",
|
||||||
@@ -74,7 +74,10 @@ static const char myLanguage[9][74][85] = {
|
|||||||
"About software",
|
"About software",
|
||||||
"Main code:",
|
"Main code:",
|
||||||
"Contributors:",
|
"Contributors:",
|
||||||
"Unknown"
|
"Unknown",
|
||||||
|
"Power options",
|
||||||
|
"Deep sleep",
|
||||||
|
"Screen off"
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Nederlands", // Dutch
|
{ "Nederlands", // Dutch
|
||||||
@@ -150,7 +153,10 @@ static const char myLanguage[9][74][85] = {
|
|||||||
"Over deze software",
|
"Over deze software",
|
||||||
"Basis code:",
|
"Basis code:",
|
||||||
"Bijgedragen:",
|
"Bijgedragen:",
|
||||||
"Onbekend"
|
"Onbekend",
|
||||||
|
"Power options",
|
||||||
|
"Deep sleep",
|
||||||
|
"Screen off"
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Polski", // Polish
|
{ "Polski", // Polish
|
||||||
@@ -226,7 +232,10 @@ static const char myLanguage[9][74][85] = {
|
|||||||
"About software",
|
"About software",
|
||||||
"Main code:",
|
"Main code:",
|
||||||
"Contributors:",
|
"Contributors:",
|
||||||
"Unknown"
|
"Unknown",
|
||||||
|
"Power options",
|
||||||
|
"Deep sleep",
|
||||||
|
"Screen off"
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Hrvatski", // Croatian
|
{ "Hrvatski", // Croatian
|
||||||
@@ -302,7 +311,10 @@ static const char myLanguage[9][74][85] = {
|
|||||||
"O softveru",
|
"O softveru",
|
||||||
"Glavni izvorni kod:",
|
"Glavni izvorni kod:",
|
||||||
"Suradnici:",
|
"Suradnici:",
|
||||||
"Nepoznato"
|
"Nepoznato",
|
||||||
|
"Power options",
|
||||||
|
"Deep sleep",
|
||||||
|
"Screen off"
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Ελληνικά", // Greek
|
{ "Ελληνικά", // Greek
|
||||||
@@ -378,7 +390,10 @@ static const char myLanguage[9][74][85] = {
|
|||||||
"Πληροφορίες λογισμικού",
|
"Πληροφορίες λογισμικού",
|
||||||
"Κύριος κώδικας:",
|
"Κύριος κώδικας:",
|
||||||
"Συνεργάτες:",
|
"Συνεργάτες:",
|
||||||
"Unknown"
|
"Unknown",
|
||||||
|
"Power options",
|
||||||
|
"Deep sleep",
|
||||||
|
"Screen off"
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Romana", // Romanian
|
{ "Romana", // Romanian
|
||||||
@@ -454,7 +469,10 @@ static const char myLanguage[9][74][85] = {
|
|||||||
"About software",
|
"About software",
|
||||||
"Main code:",
|
"Main code:",
|
||||||
"Contributors:",
|
"Contributors:",
|
||||||
"Unknown"
|
"Unknown",
|
||||||
|
"Power options",
|
||||||
|
"Deep sleep",
|
||||||
|
"Screen off"
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Deutsch", // German
|
{ "Deutsch", // German
|
||||||
@@ -530,7 +548,10 @@ static const char myLanguage[9][74][85] = {
|
|||||||
"Über diese Software",
|
"Über diese Software",
|
||||||
"Hauptcode:",
|
"Hauptcode:",
|
||||||
"Mitwirkende:",
|
"Mitwirkende:",
|
||||||
"Unknown"
|
"Unknown",
|
||||||
|
"Power options",
|
||||||
|
"Deep sleep",
|
||||||
|
"Screen off"
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Czech", // Czech
|
{ "Czech", // Czech
|
||||||
@@ -606,7 +627,10 @@ static const char myLanguage[9][74][85] = {
|
|||||||
"About software",
|
"About software",
|
||||||
"Main code:",
|
"Main code:",
|
||||||
"Contributors:",
|
"Contributors:",
|
||||||
"Unknown"
|
"Unknown",
|
||||||
|
"Power options",
|
||||||
|
"Deep sleep",
|
||||||
|
"Screen off"
|
||||||
},
|
},
|
||||||
|
|
||||||
{ "Slovak", // Slovak
|
{ "Slovak", // Slovak
|
||||||
@@ -682,6 +706,9 @@ static const char myLanguage[9][74][85] = {
|
|||||||
"About software",
|
"About software",
|
||||||
"Main code:",
|
"Main code:",
|
||||||
"Contributors:",
|
"Contributors:",
|
||||||
"Unknown"
|
"Unknown",
|
||||||
|
"Power options",
|
||||||
|
"Deep sleep",
|
||||||
|
"Screen off"
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user