diff --git a/RX_FSK/RX_FSK.ino b/RX_FSK/RX_FSK.ino index 6796cfe..7d2b07b 100644 --- a/RX_FSK/RX_FSK.ino +++ b/RX_FSK/RX_FSK.ino @@ -63,7 +63,8 @@ WiFiClient client; #define SONDEHUB_STATION_UPDATE_TIME (60*60*1000) // 60 min #define SONDEHUB_MOBILE_STATION_UPDATE_TIME (30*1000) // 30 sec WiFiClient shclient; // Sondehub v2 -char shImportInterval = 0, shImport = 0; +int shImportInterval = 0; +char shImport = 0; unsigned long time_last_update = 0; /* SH_LOC_OFF: never send position information to SondeHub SH_LOC_FIXED: send fixed position (if specified in config) to sondehub @@ -74,8 +75,8 @@ unsigned long time_last_update = 0; enum { SH_LOC_OFF, SH_LOC_FIXED, SH_LOC_CHASE, SH_LOC_AUTO }; /* auto mode is chase if valid GPS position and (no fixed location entered OR valid GPS position and distance in lat/lon deg to fixed location > threshold) */ #define MIN_LOC_AUTO_DIST 200 /* meter */ -#define SH_LOC_AUTO_IS_CHASE ( gpsPos.valid && ( (isnan(sonde.config.sondehub.lat) || isnan(sonde.config.sondehub.lon) ) || \ - calcLatLonDist( gpsPos.lat, gpsPos.lon, sonde.config.sondehub.lat, sonde.config.sondehub.lon ) > MIN_LOC_AUTO_DIST ) ) +#define SH_LOC_AUTO_IS_CHASE ( gpsPos.valid && ( (isnan(sonde.config.rxlat) || isnan(sonde.config.rxlon) ) || \ + calcLatLonDist( gpsPos.lat, gpsPos.lon, sonde.config.rxlat, sonde.config.rxlon ) > MIN_LOC_AUTO_DIST ) ) #endif extern float calcLatLonDist(float lat1, float lon1, float lat2, float lon2); @@ -154,7 +155,7 @@ String processor(const String& var) { } if (var == "FULLNAMEID") { char tmp[128]; - snprintf(tmp, 128, "%s-%c%d", version_id, SPIFFS_MAJOR+'A'-1, SPIFFS_MINOR); + snprintf(tmp, 128, "%s-%c%d", version_id, SPIFFS_MAJOR + 'A' - 1, SPIFFS_MINOR); return String(tmp); } if (var == "AUTODETECT_INFO") { @@ -423,14 +424,14 @@ const char *createSondeHubMap() { HTMLBODY(ptr, "map.html"); if (!sonde.config.sondehub.active) { strcat(ptr, "
NOTE: SondeHub uploading is not enabled, detected sonde will not be visable on map
"); - if ((*s->ser == 0) && ( !isnan(sonde.config.sondehub.lat))) { - sprintf(ptr + strlen(ptr), "", sonde.config.sondehub.lat, sonde.config.sondehub.lon); + if ((*s->ser == 0) && ( !isnan(sonde.config.rxlat))) { + sprintf(ptr + strlen(ptr), "", sonde.config.rxlat, sonde.config.rxlon); } else { sprintf(ptr + strlen(ptr), "", s-> ser); } } else { - if ((*s->ser == 0) && (!isnan(sonde.config.sondehub.lat))) { - sprintf(ptr, "", sonde.config.sondehub.lat, sonde.config.sondehub.lon); + if ((*s->ser == 0) && (!isnan(sonde.config.rxlat))) { + sprintf(ptr, "", sonde.config.rxlat, sonde.config.rxlon); } else { sprintf(ptr, "", s-> ser); } @@ -568,8 +569,8 @@ void setupConfigData() { String line = readLine(file); //file.readStringUntil('\n'); sonde.setConfig(line.c_str()); } - int shII = sonde.config.sondehub.fiinterval * 60; - if(shImportInterval > shII) shImportInterval = shII; + sonde.checkConfig(); // eliminate invalid entries + shImportInterval = 5; // refresh now in 5 seconds } @@ -682,6 +683,9 @@ struct st_configitems config_list[] = { {"wifi", 0, &sonde.config.wifi}, {"debug", 0, &sonde.config.debug}, {"maxsonde", 0, &sonde.config.maxsonde}, + {"rxlat", -7, &sonde.config.rxlat}, + {"rxlon", -7, &sonde.config.rxlon}, + {"rxalt", -7, &sonde.config.rxalt}, {"screenfile", 0, &sonde.config.screenfile}, {"display", -6, sonde.config.display}, /* Spectrum display settings */ @@ -766,12 +770,9 @@ struct st_configitems config_list[] = { {"sondehub.chase", 0, &sonde.config.sondehub.chase}, {"sondehub.host", 63, &sonde.config.sondehub.host}, {"sondehub.callsign", 63, &sonde.config.sondehub.callsign}, - {"sondehub.lat", -7, &sonde.config.sondehub.lat}, - {"sondehub.lon", -7, &sonde.config.sondehub.lon}, - {"sondehub.alt", 19, &sonde.config.sondehub.alt}, {"sondehub.antenna", 63, &sonde.config.sondehub.antenna}, {"sondehub.email", 63, &sonde.config.sondehub.email}, - {"sondehub.fiactive", 0, &sonde.config.sondehub.fimactitve}, + {"sondehub.fiactive", 0, &sonde.config.sondehub.fiactive}, {"sondehub.fiinterval", 0, &sonde.config.sondehub.fiinterval}, {"sondehub.fimaxdist", 0, &sonde.config.sondehub.fimaxdist}, {"sondehub.fimaxage", 0, &sonde.config.sondehub.fimaxage}, @@ -850,32 +851,41 @@ const char *createConfigForm() { strcat(ptr, "
"); strcat(ptr, ""); strcat(ptr, "