diff --git a/RX_FSK/RX_FSK.ino b/RX_FSK/RX_FSK.ino index 969bf7d5..d68b55fd 100644 --- a/RX_FSK/RX_FSK.ino +++ b/RX_FSK/RX_FSK.ino @@ -808,6 +808,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 2738037d..0fe80c78 100644 --- a/RX_FSK/data/cfg.js +++ b/RX_FSK/data/cfg.js @@ -70,6 +70,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 5e10b8d7..1ed7a1f3 100644 --- a/RX_FSK/data/config.txt +++ b/RX_FSK/data/config.txt @@ -139,6 +139,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 978f47d8..cfbdb3fe 100644 --- a/RX_FSK/src/Sonde.cpp +++ b/RX_FSK/src/Sonde.cpp @@ -350,6 +350,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 a38c7c1d..edd875a7 100644 --- a/RX_FSK/src/Sonde.h +++ b/RX_FSK/src/Sonde.h @@ -236,6 +236,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 e54d9bbd..597457b5 100644 --- a/RX_FSK/src/conn-sondehub.cpp +++ b/RX_FSK/src/conn-sondehub.cpp @@ -516,9 +516,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; @@ -692,7 +689,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: @@ -705,7 +702,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: