Configurable maxage for SondeHub

This commit is contained in:
Luke Williams 2024-10-28 23:12:34 -05:00
parent 331fa13330
commit 9b88148641
6 changed files with 7 additions and 5 deletions

View File

@ -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},

View File

@ -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)" ],

View File

@ -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
#-------------------------------#

View File

@ -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;

View File

@ -222,6 +222,7 @@ struct st_sondehub {
char callsign[64];
char antenna[64];
char email[64];
int maxage;
int fiactive;
int fiinterval;
int fimaxdist;

View File

@ -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: