diff --git a/RX_FSK/RX_FSK.ino b/RX_FSK/RX_FSK.ino old mode 100644 new mode 100755 index 969bf7d..0df5d45 --- a/RX_FSK/RX_FSK.ino +++ b/RX_FSK/RX_FSK.ino @@ -42,6 +42,9 @@ /* Data exchange connectors */ +#if FEATURE_SONDESEEKER +#include "src/conn-sondeseeker.h" +#endif #if FEATURE_CHASEMAPPER #include "src/conn-chasemapper.h" #endif @@ -71,6 +74,9 @@ Conn *connectors[] = { &connSystem, #if FEATURE_CHASEMAPPER &connChasemapper, #endif +#if FEATURE_SONDESEEKER +&connSondeseeker, +#endif #if FEATURE_MQTT &connMQTT, #endif @@ -689,6 +695,7 @@ void setupConfigData() { while (file.available()) { String line = readLine(file); //file.readStringUntil('\n'); sonde.setConfig(line.c_str()); + LOG_D(TAG, "Processing a=%s",line.c_str()); } sonde.checkConfig(); // eliminate invalid entries } @@ -753,6 +760,12 @@ struct st_configitems config_list[] = { {"cm.host", 63, &sonde.config.cm.host}, {"cm.port", 0, &sonde.config.cm.port}, #endif +#if FEATURE_SONDESEEKER + /* Sondeseeker settings */ + {"ss.active", -3, &sonde.config.ss.active}, + {"ss.host", 63, &sonde.config.ss.host}, + {"ss.port", 0, &sonde.config.ss.port}, +#endif #if FEATURE_MQTT /* MQTT */ {"mqtt.active", 0, &sonde.config.mqtt.active}, @@ -2311,6 +2324,9 @@ void loopDecoder() { #endif #if FEATURE_CHASEMAPPER connChasemapper.updateSonde( s ); +#endif +#if FEATURE_SONDESEEKER + connSondeseeker.updateSonde( s ); #endif } #if FEATURE_SONDEHUB diff --git a/RX_FSK/core.h b/RX_FSK/core.h old mode 100644 new mode 100755 diff --git a/RX_FSK/data/GPSRESET b/RX_FSK/data/GPSRESET old mode 100644 new mode 100755 diff --git a/RX_FSK/data/cfg.js b/RX_FSK/data/cfg.js old mode 100644 new mode 100755 index 2738037..d9fcaf6 --- a/RX_FSK/data/cfg.js +++ b/RX_FSK/data/cfg.js @@ -63,12 +63,16 @@ var cfgs = [ [ "cm.active", "Chasemapper active (0=disabled, 1=active)"], [ "cm.host", "Chasemapper UDP host"], [ "cm.port", "Chasemapper UDP port"], +[ "", "SondeSeeker settings", "https://github.com/dl9rdz/rdz_ttgo_sonde/wiki/Sondeseeker-configuration"], +[ "ss.active", "Sondeseeker active (0=disabled, 1=active)"], +[ "ss.host", "Sondeseeker UDP host"], +[ "ss.port", "Sondeseeker UDP port"], [ "", "SondeHub settings", "https://github.com/dl9rdz/rdz_ttgo_sonde/wiki/SondeHub-settings"], [ "sondehub.active", "SondeHub reporting (0=disabled, 1=active)"], [ "sondehub.chase", "SondeHub location reporting (0=off, 1=fixed, 2=chase/GPS, 3=auto)"], [ "sondehub.host", "SondeHub host (DO NOT CHANGE)"], [ "sondehub.callsign", "Callsign"], -[ "sondehub.antenna", "Antenna (optional, visisble on SondeHub tracker)"], +[ "sondehub.antenna", "Antenna (optional, visible on SondeHub tracker)"], [ "sondehub.email", "SondeHub email (optional, only used to contact in case of upload errors)"], [ "", "SondeHub frequency import", "https://github.com/dl9rdz/rdz_ttgo_sonde/wiki/SondeHub-import" ], [ "sondehub.fiactive", "SondeHub frequency import active (0=disabled, 1=active)" ], @@ -97,7 +101,7 @@ var cfgs = [ [ "power_pout", "Power control port"], [ "led_pout", "LED output port"], [ "gps_rxd", "GPS RXD pin (-1 to disable)"], -[ "gps_txd", "GPS TXD pin (optional, only for GSP reset)"], +[ "gps_txd", "GPS TXD pin (optional, only for GPS reset)"], [ "batt_adc", "Battery measurement pin"], [ "sx1278_ss", "SX1278 SS"], [ "sx1278_miso", "SX1278 MISO"], diff --git a/RX_FSK/data/config.txt b/RX_FSK/data/config.txt old mode 100644 new mode 100755 index 5e10b8d..46bf327 --- a/RX_FSK/data/config.txt +++ b/RX_FSK/data/config.txt @@ -147,5 +147,11 @@ sondehub.fiinterval=60 sondehub.fimaxdist=150 sondehub.fimaxage=6 #-------------------------------# +# Sondeseeker settings +#-------------------------------# +ss.active=0 +ss.host=224.0.0.0 +ss.port=62655 +#-------------------------------# # EOF #-------------------------------# diff --git a/RX_FSK/data/gpsinit.txt b/RX_FSK/data/gpsinit.txt old mode 100644 new mode 100755 diff --git a/RX_FSK/data/livemap.html b/RX_FSK/data/livemap.html old mode 100644 new mode 100755 diff --git a/RX_FSK/data/livemap.js b/RX_FSK/data/livemap.js old mode 100644 new mode 100755 diff --git a/RX_FSK/data/login.html b/RX_FSK/data/login.html old mode 100644 new mode 100755 diff --git a/RX_FSK/data/map.html b/RX_FSK/data/map.html old mode 100644 new mode 100755 diff --git a/RX_FSK/data/networks.txt b/RX_FSK/data/networks.txt old mode 100644 new mode 100755 diff --git a/RX_FSK/data/qrg.txt b/RX_FSK/data/qrg.txt old mode 100644 new mode 100755 diff --git a/RX_FSK/data/rdz.js b/RX_FSK/data/rdz.js old mode 100644 new mode 100755 diff --git a/RX_FSK/data/screens.txt b/RX_FSK/data/screens.txt old mode 100644 new mode 100755 diff --git a/RX_FSK/data/screens1.txt b/RX_FSK/data/screens1.txt old mode 100644 new mode 100755 diff --git a/RX_FSK/data/screens2.txt b/RX_FSK/data/screens2.txt old mode 100644 new mode 100755 diff --git a/RX_FSK/data/screens3.txt b/RX_FSK/data/screens3.txt old mode 100644 new mode 100755 diff --git a/RX_FSK/data/screens4.txt b/RX_FSK/data/screens4.txt old mode 100644 new mode 100755 diff --git a/RX_FSK/data/screens5.txt b/RX_FSK/data/screens5.txt old mode 100644 new mode 100755 diff --git a/RX_FSK/data/sdfiles.html b/RX_FSK/data/sdfiles.html old mode 100644 new mode 100755 diff --git a/RX_FSK/data/sha256.min.js b/RX_FSK/data/sha256.min.js old mode 100644 new mode 100755 diff --git a/RX_FSK/data/upd.html b/RX_FSK/data/upd.html old mode 100644 new mode 100755 diff --git a/RX_FSK/features.h b/RX_FSK/features.h old mode 100644 new mode 100755 index c9abf99..4549eeb --- a/RX_FSK/features.h +++ b/RX_FSK/features.h @@ -11,6 +11,7 @@ #define FEATURE_MQTT 1 #define FEATURE_SDCARD 1 #define FEATURE_APRS 1 +#define FEATURE_SONDESEEKER 1 // Additional optional components diff --git a/RX_FSK/src/DFM.cpp b/RX_FSK/src/DFM.cpp old mode 100644 new mode 100755 diff --git a/RX_FSK/src/DFM.h b/RX_FSK/src/DFM.h old mode 100644 new mode 100755 diff --git a/RX_FSK/src/DecoderBase.cpp b/RX_FSK/src/DecoderBase.cpp old mode 100644 new mode 100755 diff --git a/RX_FSK/src/DecoderBase.h b/RX_FSK/src/DecoderBase.h old mode 100644 new mode 100755 diff --git a/RX_FSK/src/DefaultFonts.c b/RX_FSK/src/DefaultFonts.c old mode 100644 new mode 100755 diff --git a/RX_FSK/src/Display.cpp b/RX_FSK/src/Display.cpp old mode 100644 new mode 100755 diff --git a/RX_FSK/src/Display.h b/RX_FSK/src/Display.h old mode 100644 new mode 100755 diff --git a/RX_FSK/src/M10M20.cpp b/RX_FSK/src/M10M20.cpp old mode 100644 new mode 100755 diff --git a/RX_FSK/src/M10M20.h b/RX_FSK/src/M10M20.h old mode 100644 new mode 100755 diff --git a/RX_FSK/src/MP3H.cpp b/RX_FSK/src/MP3H.cpp old mode 100644 new mode 100755 diff --git a/RX_FSK/src/MP3H.h b/RX_FSK/src/MP3H.h old mode 100644 new mode 100755 diff --git a/RX_FSK/src/RS41.cpp b/RX_FSK/src/RS41.cpp old mode 100644 new mode 100755 diff --git a/RX_FSK/src/RS41.h b/RX_FSK/src/RS41.h old mode 100644 new mode 100755 diff --git a/RX_FSK/src/RS92.cpp b/RX_FSK/src/RS92.cpp old mode 100644 new mode 100755 diff --git a/RX_FSK/src/RS92.h b/RX_FSK/src/RS92.h old mode 100644 new mode 100755 diff --git a/RX_FSK/src/SX1278FSK.cpp b/RX_FSK/src/SX1278FSK.cpp old mode 100644 new mode 100755 diff --git a/RX_FSK/src/SX1278FSK.h b/RX_FSK/src/SX1278FSK.h old mode 100644 new mode 100755 diff --git a/RX_FSK/src/Scanner.cpp b/RX_FSK/src/Scanner.cpp old mode 100644 new mode 100755 diff --git a/RX_FSK/src/Scanner.h b/RX_FSK/src/Scanner.h old mode 100644 new mode 100755 diff --git a/RX_FSK/src/ShFreqImport.cpp b/RX_FSK/src/ShFreqImport.cpp old mode 100644 new mode 100755 diff --git a/RX_FSK/src/ShFreqImport.h b/RX_FSK/src/ShFreqImport.h old mode 100644 new mode 100755 diff --git a/RX_FSK/src/Sonde.cpp b/RX_FSK/src/Sonde.cpp old mode 100644 new mode 100755 index 978f47d..ff6d3b5 --- a/RX_FSK/src/Sonde.cpp +++ b/RX_FSK/src/Sonde.cpp @@ -301,7 +301,7 @@ void Sonde::defaultConfig() { } // config.noisefloor = -125; - strcpy(config.call,"NOCALL"); + strcpy(config.call,"N0CALL"); config.passcode = -1; strcpy(config.mdnsname, "rdzsonde"); config.maxsonde=15; @@ -343,6 +343,10 @@ void Sonde::defaultConfig() { strcpy(config.mqtt.password, "/0"); strcpy(config.mqtt.prefix, "rdz_sonde_server/"); config.mqtt.report_interval = 60000; + + config.ss.active = 1; + strcpy(config.ss.host, "255.255.255.255"); + config.ss.port = 62655; } extern struct st_configitems config_list[]; diff --git a/RX_FSK/src/Sonde.h b/RX_FSK/src/Sonde.h old mode 100644 new mode 100755 index a38c7c1..b86ae35 --- a/RX_FSK/src/Sonde.h +++ b/RX_FSK/src/Sonde.h @@ -229,6 +229,12 @@ struct st_cm { int port; }; +struct st_ss { + int active; + char host[64]; + int port; +}; + struct st_sondehub { int active; int chase; @@ -236,7 +242,7 @@ struct st_sondehub { char callsign[64]; char antenna[64]; char email[64]; - int fiactive; + int fiactive; int fiinterval; int fimaxdist; double fimaxage; @@ -299,7 +305,7 @@ typedef struct st_rdzconfig { int noisefloor; // for spectrum display char mdnsname[15]; // mDNS-Name, defaults to rdzsonde // receiver configuration - int freqofs; // frequency offset (tuner config = rx frequency + freqofs) in Hz + int freqofs; // frequency offset (tuner config = rx frequency + freqofs) in Hz struct st_rs41config rs41; // configuration options specific for RS41 receiver struct st_rs92config rs92; struct st_dfmconfig dfm; @@ -309,17 +315,18 @@ typedef struct st_rdzconfig { // data feed configuration // for now, one feed for each type is enough, but might get extended to more? char call[10]; // APRS callsign - int passcode; // APRS passcode + int passcode; // APRS passcode int chase; char objcall[10]; // APRS object call (for wettersonde.net) char beaconsym[5]; // APRS beacon symbol char comment[32]; struct st_axudpinfo udpfeed; // target for AXUDP messages - struct st_aprsinfo tcpfeed; // target for APRS-IS TCP connections - struct st_kisstnc kisstnc; // target for KISS TNC (via TCP, mainly for APRSdroid) + struct st_aprsinfo tcpfeed; // target for APRS-IS TCP connections + struct st_kisstnc kisstnc; // target for KISS TNC (via TCP, mainly for APRSdroid) struct st_mqtt mqtt; struct st_sondehub sondehub; struct st_cm cm; + struct st_ss ss; struct st_sdcard sd; } RDZConfig; @@ -335,7 +342,6 @@ struct st_configitems { extern struct st_configitems config_list[]; extern const int N_CONFIG; - #define MAXSONDE 50 extern int fingerprintValue[]; @@ -391,13 +397,12 @@ public: void updateDisplayIP(); void updateDisplay(); void clearDisplay(); - void dispsavectlON(); - void dispsavectlOFF(int rxactive); + void dispsavectlON(); + void dispsavectlOFF(int rxactive); void setIP(String ip, bool isAP); }; extern Sonde sonde; -#endif - +#endif \ No newline at end of file diff --git a/RX_FSK/src/aprs.cpp b/RX_FSK/src/aprs.cpp old mode 100644 new mode 100755 diff --git a/RX_FSK/src/aprs.h b/RX_FSK/src/aprs.h old mode 100644 new mode 100755 diff --git a/RX_FSK/src/autodetect-infos b/RX_FSK/src/autodetect-infos old mode 100644 new mode 100755 diff --git a/RX_FSK/src/colors.h b/RX_FSK/src/colors.h old mode 100644 new mode 100755 diff --git a/RX_FSK/src/conn-action.txt b/RX_FSK/src/conn-action.txt old mode 100644 new mode 100755 diff --git a/RX_FSK/src/conn-aprs.cpp b/RX_FSK/src/conn-aprs.cpp old mode 100644 new mode 100755 diff --git a/RX_FSK/src/conn-aprs.h b/RX_FSK/src/conn-aprs.h old mode 100644 new mode 100755 diff --git a/RX_FSK/src/conn-chasemapper.cpp b/RX_FSK/src/conn-chasemapper.cpp old mode 100644 new mode 100755 diff --git a/RX_FSK/src/conn-chasemapper.h b/RX_FSK/src/conn-chasemapper.h old mode 100644 new mode 100755 diff --git a/RX_FSK/src/conn-mqtt.cpp b/RX_FSK/src/conn-mqtt.cpp old mode 100644 new mode 100755 diff --git a/RX_FSK/src/conn-mqtt.h b/RX_FSK/src/conn-mqtt.h old mode 100644 new mode 100755 diff --git a/RX_FSK/src/conn-sdcard.cpp b/RX_FSK/src/conn-sdcard.cpp old mode 100644 new mode 100755 diff --git a/RX_FSK/src/conn-sdcard.h b/RX_FSK/src/conn-sdcard.h old mode 100644 new mode 100755 diff --git a/RX_FSK/src/conn-sondehub.cpp b/RX_FSK/src/conn-sondehub.cpp old mode 100644 new mode 100755 diff --git a/RX_FSK/src/conn-sondehub.h b/RX_FSK/src/conn-sondehub.h old mode 100644 new mode 100755 diff --git a/RX_FSK/src/conn-sondeseeker.cpp b/RX_FSK/src/conn-sondeseeker.cpp new file mode 100755 index 0000000..80b3e8f --- /dev/null +++ b/RX_FSK/src/conn-sondeseeker.cpp @@ -0,0 +1,50 @@ +#include "../features.h" +#if FEATURE_SONDESEEKER + +#include "conn-sondeseeker.h" +#include +#include "posinfo.h" +#include "json.h" + +extern const char *sondeTypeStrSH[]; +extern WiFiUDP udp; + +void ConnSondeseeker::init() { +} + +void ConnSondeseeker::netsetup() { +} + +void ConnSondeseeker::netshutdown() { +} + +void ConnSondeseeker::updateSonde(SondeInfo *si) { + char buf[1024]; + + strcpy(buf, "{\"sonde\": {"); + sonde2json(buf + strlen(buf), 1024, si); + strcat(buf, "}}"); + + Serial.printf("Sending SondeSeeker json: %s\n", buf); + udp.beginPacket(sonde.config.ss.host, sonde.config.ss.port); + udp.write((const uint8_t *)buf, strlen(buf)); + udp.endPacket(); + +} + +void ConnSondeseeker::updateStation(PosInfo *pi) { +} + +String ConnSondeseeker::getStatus() { + if(!sonde.config.ss.active) return String("disabled"); + char info[100]; + snprintf(info, 100, "active [%s:%d]", sonde.config.ss.host, sonde.config.ss.port); + return String(info); +} + +String ConnSondeseeker::getName() { + return String("SondeSeeker"); +} + +ConnSondeseeker connSondeseeker; +#endif diff --git a/RX_FSK/src/conn-sondeseeker.h b/RX_FSK/src/conn-sondeseeker.h new file mode 100755 index 0000000..4c1ef75 --- /dev/null +++ b/RX_FSK/src/conn-sondeseeker.h @@ -0,0 +1,20 @@ +#ifndef _SONDESEEKER_H +#define _SONDESEEKER_H + +#include "Sonde.h" +#include "conn.h" + +class ConnSondeseeker : public Conn { +public: + void init(); + void netsetup(); + void netshutdown(); + void updateSonde( SondeInfo *si ); + void updateStation( PosInfo *pi ); + String getStatus(); + String getName(); +}; + +extern ConnSondeseeker connSondeseeker; + +#endif diff --git a/RX_FSK/src/conn-system.cpp b/RX_FSK/src/conn-system.cpp old mode 100644 new mode 100755 diff --git a/RX_FSK/src/conn-system.h b/RX_FSK/src/conn-system.h old mode 100644 new mode 100755 diff --git a/RX_FSK/src/conn.cpp b/RX_FSK/src/conn.cpp old mode 100644 new mode 100755 diff --git a/RX_FSK/src/conn.h b/RX_FSK/src/conn.h old mode 100644 new mode 100755 diff --git a/RX_FSK/src/fonts/FreeMono12pt7b.h b/RX_FSK/src/fonts/FreeMono12pt7b.h old mode 100644 new mode 100755 diff --git a/RX_FSK/src/fonts/FreeMono12pt8b.h b/RX_FSK/src/fonts/FreeMono12pt8b.h old mode 100644 new mode 100755 diff --git a/RX_FSK/src/fonts/FreeMono9pt7b.h b/RX_FSK/src/fonts/FreeMono9pt7b.h old mode 100644 new mode 100755 diff --git a/RX_FSK/src/fonts/FreeMono9pt8b.h b/RX_FSK/src/fonts/FreeMono9pt8b.h old mode 100644 new mode 100755 diff --git a/RX_FSK/src/fonts/FreeSans12pt7b.h b/RX_FSK/src/fonts/FreeSans12pt7b.h old mode 100644 new mode 100755 diff --git a/RX_FSK/src/fonts/FreeSans12pt8b.h b/RX_FSK/src/fonts/FreeSans12pt8b.h old mode 100644 new mode 100755 diff --git a/RX_FSK/src/fonts/FreeSans18pt7b.h b/RX_FSK/src/fonts/FreeSans18pt7b.h old mode 100644 new mode 100755 diff --git a/RX_FSK/src/fonts/FreeSans18pt8b.h b/RX_FSK/src/fonts/FreeSans18pt8b.h old mode 100644 new mode 100755 diff --git a/RX_FSK/src/fonts/FreeSans9pt7b.h b/RX_FSK/src/fonts/FreeSans9pt7b.h old mode 100644 new mode 100755 diff --git a/RX_FSK/src/fonts/FreeSans9pt8b.h b/RX_FSK/src/fonts/FreeSans9pt8b.h old mode 100644 new mode 100755 diff --git a/RX_FSK/src/fonts/Picopixel.h b/RX_FSK/src/fonts/Picopixel.h old mode 100644 new mode 100755 diff --git a/RX_FSK/src/fonts/Terminal11x16.h b/RX_FSK/src/fonts/Terminal11x16.h old mode 100644 new mode 100755 diff --git a/RX_FSK/src/fonts/fonts.cpp b/RX_FSK/src/fonts/fonts.cpp old mode 100644 new mode 100755 diff --git a/RX_FSK/src/fonts/gfxfont.h b/RX_FSK/src/fonts/gfxfont.h old mode 100644 new mode 100755 diff --git a/RX_FSK/src/geteph.cpp b/RX_FSK/src/geteph.cpp old mode 100644 new mode 100755 diff --git a/RX_FSK/src/geteph.h b/RX_FSK/src/geteph.h old mode 100644 new mode 100755 diff --git a/RX_FSK/src/json.cpp b/RX_FSK/src/json.cpp old mode 100644 new mode 100755 diff --git a/RX_FSK/src/json.h b/RX_FSK/src/json.h old mode 100644 new mode 100755 diff --git a/RX_FSK/src/library.json b/RX_FSK/src/library.json old mode 100644 new mode 100755 diff --git a/RX_FSK/src/logger.cpp b/RX_FSK/src/logger.cpp old mode 100644 new mode 100755 diff --git a/RX_FSK/src/logger.h b/RX_FSK/src/logger.h old mode 100644 new mode 100755 diff --git a/RX_FSK/src/nav_gps_vel.cpp b/RX_FSK/src/nav_gps_vel.cpp old mode 100644 new mode 100755 diff --git a/RX_FSK/src/nav_gps_vel.h b/RX_FSK/src/nav_gps_vel.h old mode 100644 new mode 100755 diff --git a/RX_FSK/src/pmu.cpp b/RX_FSK/src/pmu.cpp old mode 100644 new mode 100755 diff --git a/RX_FSK/src/pmu.h b/RX_FSK/src/pmu.h old mode 100644 new mode 100755 diff --git a/RX_FSK/src/posinfo.cpp b/RX_FSK/src/posinfo.cpp old mode 100644 new mode 100755 diff --git a/RX_FSK/src/posinfo.h b/RX_FSK/src/posinfo.h old mode 100644 new mode 100755 diff --git a/RX_FSK/src/rs92gps.cpp b/RX_FSK/src/rs92gps.cpp old mode 100644 new mode 100755 diff --git a/RX_FSK/src/rs92gps.h b/RX_FSK/src/rs92gps.h old mode 100644 new mode 100755 diff --git a/RX_FSK/src/rsc.cpp b/RX_FSK/src/rsc.cpp old mode 100644 new mode 100755 diff --git a/RX_FSK/src/rsc.h b/RX_FSK/src/rsc.h old mode 100644 new mode 100755 diff --git a/RX_FSK/src/rsc_decode.cpp b/RX_FSK/src/rsc_decode.cpp old mode 100644 new mode 100755 diff --git a/RX_FSK/src/user.cpp b/RX_FSK/src/user.cpp old mode 100644 new mode 100755 diff --git a/RX_FSK/src/user.h b/RX_FSK/src/user.h old mode 100644 new mode 100755 diff --git a/RX_FSK/version.h b/RX_FSK/version.h old mode 100644 new mode 100755 diff --git a/scripts/gen_esp32part.py b/scripts/gen_esp32part.py old mode 100644 new mode 100755