diff --git a/src/config.h b/src/config.h
index 8a62517..acb8556 100644
--- a/src/config.h
+++ b/src/config.h
@@ -32,6 +32,6 @@
/*
* firmeware version string
*/
- #define __FIRMWARE__ "2020081004"
+ #define __FIRMWARE__ "2020081005"
#endif // _CONFIG_H
diff --git a/src/webserver/webserver.cpp b/src/webserver/webserver.cpp
index 5d53501..93af65a 100644
--- a/src/webserver/webserver.cpp
+++ b/src/webserver/webserver.cpp
@@ -36,6 +36,65 @@
AsyncWebServer asyncserver( WEBSERVERPORT );
TaskHandle_t _WEBSERVER_Task;
+ static const char* serverIndex =
+ "\n
\n "
+ "\n "
+
+ "\n "
+ "\n "
+ "Update by Browser
"
+ "\n "
+ "\n Progress: 0%
"
+ "\n "
+ "\n "
+ "\n ";
void handleUpdate( AsyncWebServerRequest *request, const String& filename, size_t index, uint8_t *data, size_t len, bool final) {
@@ -79,10 +138,97 @@ void handleUpdate( AsyncWebServerRequest *request, const String& filename, size_
*/
void asyncwebserver_start(void){
+ asyncserver.on("/index.htm", HTTP_GET, [](AsyncWebServerRequest *request) {
+ String html = (String) ""
+ ""
+ ""
+ "";
+ request->send(200, "text/html", html);
+ });
+
+ asyncserver.on("/nav.htm", HTTP_GET, [](AsyncWebServerRequest *request) {
+ String html = (String) ""
+ ""
+ ""
+ "Web Interface"
+ ""
+ "TTGo Watch Web Server
"
+ "This is your device, program it as you see fit."
+ "
Here are some URLs the device already supports, which you might find helpful:"
+ "
"
+ "- /info - Display information about the device"
+ "
- /network - Display network information"
+ "
- /shot - Capture a screen shot"
+ "
- /screen.565 - Retrieve the image in RGB565 format"
+ "
- /edit - View, edit, upload, and delete files"
+ "
"
+ "Caution:
Use these with care:"
+ "- /reset Reboot the device"
+ "
- /update Transmit a firmware update through POST request"
+ "";
+ request->send(200, "text/html", html);
+ });
+
asyncserver.on("/info", HTTP_GET, [](AsyncWebServerRequest *request) {
- String message("Firmwarestand: " __DATE__ " " __TIME__ "\nGCC-Version: " __VERSION__ "\n");
- message = message + "Heap: " + ESP.getFreeHeap() + " bytes used of " + ESP.getHeapSize() + " bytes total\nHeap low water mark: " + ESP.getMinFreeHeap() + " bytes available\nPsram: " + ESP.getFreePsram() + " bytes used of " + ESP.getPsramSize() + " bytes available\nCurrent battery voltage: " + TTGOClass::getWatch()->power->getBattVoltage() / 1000 + " Volts";
- request->send(200, "text/plain", message.c_str());
+ FlashMode_t mode = ESP.getFlashChipMode();
+ int SketchFull = ESP.getSketchSize() + ESP.getFreeSketchSpace();
+
+ String html = (String) "
Information
" +
+ "Memory
" +
+ "Heap size: " + ESP.getHeapSize() + "
" +
+ "Heap free: " + ESP.getFreeHeap() + "
" +
+ "Heap free min: " + ESP.getMinFreeHeap() + "
" +
+ "Heap size: " + ESP.getHeapSize() + "
" +
+ "Psram size: " + ESP.getPsramSize() + "
" +
+ "Psram free: " + ESP.getFreePsram() + "
" +
+
+ "
System
" +
+ "\tBattery voltage: " + TTGOClass::getWatch()->power->getBattVoltage() / 1000 + " Volts" + "
" +
+
+ "\tUptime: " + millis() / 1000 + "
" +
+ "
Chip" +
+ "
SdkVersion: " + String(ESP.getSdkVersion()) + "
" +
+ "CpuFreq: " + String(ESP.getCpuFreqMHz()) + " MHz
" +
+
+ "
Flash
" +
+ "FlashChipSpeed: " + String(ESP.getFlashChipSpeed() / 1000000) + " MHz
" +
+ "Flash mode: " + String( mode == FM_QIO ? "QIO" : mode == FM_QOUT ? "QOUT" : mode == FM_DIO ? "DIO" : mode == FM_DOUT ? "DOUT" : "UNKNOWN") + "
" +
+ "Flash sector size: " + String( SPI_FLASH_SEC_SIZE) + "
" +
+ "FlashChipMode: " + ESP.getFlashChipMode() + "
" +
+ "FlashChipSize (SDK): " + ESP.getFlashChipSize() + "
" +
+
+ "
Firmware
" +
+ "SketchSpace free: " + ESP.getFreeSketchSpace() + " (" + (ESP.getFreeSketchSpace() / (SketchFull / 100)) + "%)
" +
+ "BuildTime: " + __DATE__ + " " + __TIME__ + "
" +
+ "Version: " + __FIRMWARE__ + "
" +
+ "GCC-Version: " + __VERSION__ + "
" +
+ "SketchMD5: " + String(ESP.getSketchMD5()) + "
" +
+
+ "
Filesystem
" +
+ "Total size: " + SPIFFS.totalBytes() + "
" +
+ "Used size: " + SPIFFS.usedBytes() + "
" +
+
+ "
";
+ request->send(200, "text/html", html);
+ });
+
+ asyncserver.on("/network", HTTP_GET, [](AsyncWebServerRequest *request) {
+ String html = (String) "Network
" +
+ "IP Addr: " + WiFi.localIP().toString() + "
" +
+ "MAC: " + WiFi.macAddress() + "
" +
+ "SNMask: " + WiFi.subnetMask().toString() + "
" +
+ "GW IP: " + WiFi.gatewayIP().toString() + "
" +
+ "DNS 1: " + WiFi.dnsIP(0).toString() + "
" +
+ "DNS 2: " + WiFi.dnsIP(1).toString() + "
" +
+ "RSSI: " + String(WiFi.RSSI()) + "dB
" +
+ "Hostname: " + WiFi.getHostname() + "
" +
+ "SSID: " + WiFi.SSID() + "
" +
+ "
Upnp Info: description.xml" + "
" +
+ "";
+ request->send(200, "text/html", html);
});
asyncserver.on("/shot", HTTP_GET, [](AsyncWebServerRequest * request) {
@@ -92,7 +238,8 @@ void asyncwebserver_start(void){
});
asyncserver.addHandler(new SPIFFSEditor(SPIFFS));
- asyncserver.serveStatic("/", SPIFFS, "/").setDefaultFile("index.htm");
+ asyncserver.rewrite("/", "/index.htm");
+ asyncserver.serveStatic("/", SPIFFS, "/");
asyncserver.onNotFound([](AsyncWebServerRequest *request){
Serial.printf( "NOT_FOUND: ");
@@ -164,9 +311,14 @@ void asyncwebserver_start(void){
ESP.restart();
});
- asyncserver.on("/update", HTTP_POST,
+ asyncserver.on("/update", HTTP_GET, [](AsyncWebServerRequest * request) {
+ request->send(200, "text/html", serverIndex);
+ });
+
+ asyncserver.on(
+ "/update", HTTP_POST,
[](AsyncWebServerRequest *request) {},
- [](AsyncWebServerRequest *request, const String& filename, size_t index, uint8_t *data, size_t len, bool final) { handleUpdate(request, filename, index, data, len, final); }
+ [](AsyncWebServerRequest *request, const String &filename, size_t index, uint8_t *data, size_t len, bool final) { handleUpdate(request, filename, index, data, len, final); }
);
asyncserver.on("/description.xml", HTTP_GET, [](AsyncWebServerRequest *request) {
diff --git a/ttgo-t-watch2020_v1.ino.bin b/ttgo-t-watch2020_v1.ino.bin
index cae6940..3479c68 100644
Binary files a/ttgo-t-watch2020_v1.ino.bin and b/ttgo-t-watch2020_v1.ino.bin differ
diff --git a/ttgo-t-watch2020_v1.version.json b/ttgo-t-watch2020_v1.version.json
index c5d7709..9cc8ec8 100644
--- a/ttgo-t-watch2020_v1.version.json
+++ b/ttgo-t-watch2020_v1.version.json
@@ -1 +1 @@
-{"version":"2020081001","host":"http://www.neo-guerillaz.de","file":"ttgo-t-watch2020_v1.ino.bin"}
+{"version":"2020081005","host":"http://www.neo-guerillaz.de","file":"ttgo-t-watch2020_v1.ino.bin"}