From 57be2b7d80522e24ed925e1f08c721e0670431f0 Mon Sep 17 00:00:00 2001 From: "Hansi, dl9rdz" Date: Sun, 24 Nov 2019 20:54:47 +0100 Subject: [PATCH] add simple gpx export --- RX_FSK/RX_FSK.ino | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/RX_FSK/RX_FSK.ino b/RX_FSK/RX_FSK.ino index 20f884e..470b943 100644 --- a/RX_FSK/RX_FSK.ino +++ b/RX_FSK/RX_FSK.ino @@ -729,6 +729,33 @@ const char *handleUpdatePost(AsyncWebServerRequest *request) { } +const char *sendGPX(AsyncWebServerRequest * request) { + Serial.println("\n\n\n********GPX request\n\n"); + String url = request->url(); + int index = atoi(url.c_str() + 1); + char *ptr = message; + if (index < 0 || index >= MAXSONDE) { + return "ERROR"; + } + SondeInfo *si = &sonde.sondeList[index]; + strcpy(si->id, "test"); + si->lat=48; si->lon=11; si->alt=500; + snprintf(ptr, 10240, "\n" + "\n" + "" + "Sonde #%d (%s)\n" + "rdzTTGOsonde\n" + "\n" + "\n %f\n %s\n Radio BeaconSonde\n" + "\n", index, si->id, si->lat, si->lon, si->alt, si->id); + Serial.println(message); + return message; +} + + + const char* PARAM_MESSAGE = "message"; void SetupAsyncServer() { server.reset(); @@ -806,6 +833,18 @@ void SetupAsyncServer() { request->send(SPIFFS, "/index.html", String(), false, processor); }); + server.onNotFound([](AsyncWebServerRequest * request) { + if (request->method() == HTTP_OPTIONS) { + request->send(200); + } else { + String url = request->url(); + if (url.endsWith(".gpx")) + request->send(200, "application/gpx+xml", sendGPX(request)); + else + request->send(404); + } + }); + // Start server server.begin(); }