From 9b88148641099ffe0e453f57b2f7f6e2b14d4529 Mon Sep 17 00:00:00 2001 From: Luke Williams Date: Mon, 28 Oct 2024 23:12:34 -0500 Subject: [PATCH] Configurable maxage for SondeHub --- RX_FSK/RX_FSK.ino | 1 + RX_FSK/data/cfg.js | 1 + RX_FSK/data/config.txt | 1 + RX_FSK/src/Sonde.cpp | 1 + RX_FSK/src/Sonde.h | 1 + RX_FSK/src/conn-sondehub.cpp | 7 ++----- 6 files changed, 7 insertions(+), 5 deletions(-) diff --git a/RX_FSK/RX_FSK.ino b/RX_FSK/RX_FSK.ino index bf4b37e..9f87d6f 100644 --- a/RX_FSK/RX_FSK.ino +++ b/RX_FSK/RX_FSK.ino @@ -751,6 +751,7 @@ struct st_configitems config_list[] = { {"sondehub.callsign", 63, &sonde.config.sondehub.callsign}, {"sondehub.antenna", 63, &sonde.config.sondehub.antenna}, {"sondehub.email", 63, &sonde.config.sondehub.email}, + {"sondehub.maxage", 0, &sonde.config.sondehub.maxage}, {"sondehub.fiactive", 0, &sonde.config.sondehub.fiactive}, {"sondehub.fiinterval", 0, &sonde.config.sondehub.fiinterval}, {"sondehub.fimaxdist", 0, &sonde.config.sondehub.fimaxdist}, diff --git a/RX_FSK/data/cfg.js b/RX_FSK/data/cfg.js index 4dc261c..1af172c 100644 --- a/RX_FSK/data/cfg.js +++ b/RX_FSK/data/cfg.js @@ -69,6 +69,7 @@ var cfgs = [ [ "sondehub.callsign", "Callsign"], [ "sondehub.antenna", "Antenna (optional, visisble on SondeHub tracker)"], [ "sondehub.email", "SondeHub email (optional, only used to contact in case of upload errors)"], +[ "sondehub.maxage", "SondeHub max age of packets before submitting (seconds, ≥ 15)"], [ "", "SondeHub frequency import", "https://github.com/dl9rdz/rdz_ttgo_sonde/wiki/SondeHub-import" ], [ "sondehub.fiactive", "SondeHub frequency import active (0=disabled, 1=active)" ], [ "sondehub.fiinterval", "Import frequency (minutes, ≥ 5)" ], diff --git a/RX_FSK/data/config.txt b/RX_FSK/data/config.txt index 0c24719..0383aa5 100644 --- a/RX_FSK/data/config.txt +++ b/RX_FSK/data/config.txt @@ -138,6 +138,7 @@ sondehub.host=api.v2.sondehub.org sondehub.callsign=CHANGEME_RDZTTGO sondehub.antenna= sondehub.email= +sondehub.maxage=15 #-------------------------------# # Sondehub freq import settings #-------------------------------# diff --git a/RX_FSK/src/Sonde.cpp b/RX_FSK/src/Sonde.cpp index c092d56..87be5af 100644 --- a/RX_FSK/src/Sonde.cpp +++ b/RX_FSK/src/Sonde.cpp @@ -328,6 +328,7 @@ extern const int N_CONFIG; void Sonde::checkConfig() { if(config.maxsonde > MAXSONDE) config.maxsonde = MAXSONDE; + if(config.sondehub.maxage<15) config.sondehub.maxage = 15; if(config.sondehub.fiinterval<5) config.sondehub.fiinterval = 5; if(config.sondehub.fimaxdist>700) config.sondehub.fimaxdist = 700; if(config.sondehub.fimaxage>48) config.sondehub.fimaxage = 48; diff --git a/RX_FSK/src/Sonde.h b/RX_FSK/src/Sonde.h index a87874f..2411844 100644 --- a/RX_FSK/src/Sonde.h +++ b/RX_FSK/src/Sonde.h @@ -222,6 +222,7 @@ struct st_sondehub { char callsign[64]; char antenna[64]; char email[64]; + int maxage; int fiactive; int fiinterval; int fimaxdist; diff --git a/RX_FSK/src/conn-sondehub.cpp b/RX_FSK/src/conn-sondehub.cpp index 8e79a69..5512666 100644 --- a/RX_FSK/src/conn-sondehub.cpp +++ b/RX_FSK/src/conn-sondehub.cpp @@ -478,9 +478,6 @@ void ConnSondehub::sondehub_send_data(SondeInfo * s) { return; } - // max age of data in JSON request (in seconds) -#define SONDEHUB_MAXAGE 15 - char rs_msg[MSG_SIZE]; char *w; struct tm ts; @@ -654,7 +651,7 @@ void ConnSondehub::sondehub_send_data(SondeInfo * s) { } else { sondehub_send_next(s, rs_msg, strlen(rs_msg), 0); } - if (now - shStart > SONDEHUB_MAXAGE) { // after MAXAGE seconds + if (now - shStart > sonde.config.sondehub.maxage) { // after MAXAGE seconds sondehub_send_last(); shclient_state = SH_CONN_WAITACK; rs_msg_len = 0; // wait for new msg: @@ -667,7 +664,7 @@ void ConnSondehub::sondehub_finish_data() { if (shclient_state == SH_CONN_APPENDING) { time_t now; time(&now); - if (now - shStart > SONDEHUB_MAXAGE + 3) { // after MAXAGE seconds + if (now - shStart > sonde.config.sondehub.maxage + 3) { // after MAXAGE seconds sondehub_send_last(); shclient_state = SH_CONN_WAITACK; rs_msg_len = 0; // wait for new msg: