Code Monkey home page Code Monkey logo

sdrpp_radiosonde's People

Contributors

dbdexter-dev avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

sdrpp_radiosonde's Issues

SondeHub support?

Just wondering if you've considered adding sondehub.org upload support?

SondeHub has a simple API for submitting data to, and is usually fairly easy for RS41 data. DFM sondes have a few quirks around frame numbering but also not too hard.

https://github.com/projecthorus/sondehub-infra/wiki/SondeHub-Telemetry-Format
https://github.com/projecthorus/sondehub-infra/wiki/Specific-Notes#sonde-data-uploader-notes
https://github.com/projecthorus/sondehub-infra/wiki/API-(Beta)

Let me know if this interests you and if you need any help.

wrong ELF class: ELFCLASS64

I am getting the error

Couldn't load /usr/lib/sdrpp/plugins/radiosonde_decoder_x64.so: /usr/lib/sdrpp/plugins/radiosonde_decoder_x64.so: wrong ELF class: ELFCLASS64

I did use various .so files, same result.

Module won't work under new versions of SDR++ with dates after 20240421

I updated SDR++ to the latest nightly build of 20240423 on my 64-bit Windows-10 platform. Although SDR++ recognizes the radiosonde decoder dll, when one tries to create the module with Module Manager, the process begins and then stalls, forcing one to close SDR++ to regain control.

Thank you for such a wonderful module that worked in earlier versions of SDR++.

Ken -- WBØOCV

Requesting MacOS version of plugin

I don't have the necessary permission on the computer to compile the plugin myself. If somebody with a mac, preferably apple silicon, can compile and upload that would be great, Thanks!

Wish: Horus decoder

Hi,

if possible add Horus decoder (Horusdemodlib).
Thanks in advance.
Mario

plugin won't load

[2023-10-11 13:48:16.584] [error] Couldn't load /usr/lib/sdrpp/plugins/radiosonde_decoder_debian_sid.so.

i've tried with every version of the plugin, including both debian and ubuntu variants with no success.
i use OpenSUSE Tumbleweed

calibration relative humidity

adapted sdrpp_radiosonde so it exports all measured values to the log file. Wrote a script that uploads the data to Sondehub as they come in real-time. Sondes used in this area are RS41-SGP.
As more stations follow a sonde, one can compare sdrpp_radiosonde reported measurements, with those reported by other rx stations, using radiosonde_auto_rx. Perfect match, except for Relative Humidity. And for a few data missing in sdrpp_radiosonde.
At high altitudes 20-30 km, radiosonde_auto_rx reports RH in the few percent. sdrpp_radiosonde does not report under 5%, and through the entire trajectory consistently higher than the other reporters. Of course either can be right, difficult to tell, but what causes the same base data to yield different results?
Other questions: When radiosonde_auto_rx reports that the burstkill is inactive, sdrpp_radiosonde reports some burstkill integer, suggesting it is active. Which one is right?
SDR++ general question: is there a way the radiosonde module can know what the tuned frequency is, and what the signal strength, so it can export that into the log?
Now add the frequency via a rigctl query. But not elegant, nor can I get S/N that way.

Great work by the way; the decoder works really well. Thank you!

Build on macOS fails

I'm trying to compile this plugin one macOS; everything seems to be going well until I get the following error :

[ 61%] Built target radiosonde
[ 62%] Building CXX object decoder_modules/sdrpp_radiosonde/CMakeFiles/radiosonde_decoder.dir/src/main.cpp.o
In file included from /Users/fredericdruppel/Downloads/SDRPlusPlus/decoder_modules/sdrpp_radiosonde/src/main.cpp:7:
In file included from /Users/fredericdruppel/Downloads/SDRPlusPlus/core/src/signal_path/signal_path.h:2:
In file included from /Users/fredericdruppel/Downloads/SDRPlusPlus/core/src/signal_path/iq_frontend.h:3:
/Users/fredericdruppel/Downloads/SDRPlusPlus/core/src/signal_path/../dsp/buffer/reshaper.h:61:13: warning: 'run' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
        int run() {
            ^
/Users/fredericdruppel/Downloads/SDRPlusPlus/core/src/signal_path/iq_frontend.h:79:43: note: in instantiation of template class 'dsp::buffer::Reshaper<dsp::complex_t>' requested here
    dsp::buffer::Reshaper<dsp::complex_t> reshape;
                                          ^
/Users/fredericdruppel/Downloads/SDRPlusPlus/core/src/dsp/block.h:65:21: note: overridden virtual function is here
        virtual int run() = 0;
                    ^
/Users/fredericdruppel/Downloads/SDRPlusPlus/decoder_modules/sdrpp_radiosonde/src/main.cpp:57:46: error: too few arguments to function call, expected 5, have 4
        fmDemod.init(vfo->output, bw, bw/2.0f, false);
        ~~~~~~~~~~~~                                ^
/Users/fredericdruppel/Downloads/SDRPlusPlus/core/src/dsp/demod/fm.h:25:14: note: 'init' declared here
        void init(dsp::stream<dsp::complex_t>* in, double samplerate, double bandwidth, bool lowPass, bool highPass) {
             ^
1 warning and 1 error generated.
make[2]: *** [decoder_modules/sdrpp_radiosonde/CMakeFiles/radiosonde_decoder.dir/build.make:118: decoder_modules/sdrpp_radiosonde/CMakeFiles/radiosonde_decoder.dir/src/main.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:864: decoder_modules/sdrpp_radiosonde/CMakeFiles/radiosonde_decoder.dir/all] Error 2
make: *** [Makefile:136: all] Error 2

Can someone help me ? ^^'

build file for arch

Hello, is it possible to get a build file for arch ?

I can't easily recompile your plugin as my version of SDR++ was installed through AUR so I don't have any build directory.

Your released builds (for ubuntu and debian) - predictably - don't work for arch it seems.

Building on Windows

This is a great plugin!

Trying to build on Windows (using clang-cl), gave only 2 problems:

  • timegm() is not available. But the my_timegm() is already in the code.
  • setenv() and unsetenv() are also missing on Windows.
  • The "/tmp/radiosonde*" files.

I patched 2 files to fix it:

--- a/src/decode/dfm09/decoder.cpp 2022-01-06 08:51:39
+++ b/src/decode/dfm09/decoder.cpp 2022-01-06 09:43:01
@@ -10,6 +10,12 @@

 static time_t my_timegm(struct tm *tm);

+#ifdef _WIN32
+  #define timegm(tm)                   my_timegm(tm)
+  #define setenv(env, val, overwrite)  _putenv_s(env, val)
+  #define unsetenv(env)                _putenv_s(env, "=")
+#endif
+
 DFM09Decoder::DFM09Decoder(dsp::stream<uint8_t> *in, void (*handler)(SondeData *data, void *ctx), void *ctx)
 {
        init(in, handler, ctx);

--- a/src/main.cpp 2022-01-06 08:51:39
+++ b/src/main.cpp 2022-01-06 10:44:54
@@ -24,6 +24,20 @@

 ConfigManager config;

+static std::string GetTempFile (std::string file)
+{
+    const char *env = getenv("TMP");  /* Unix / Apple */
+
+    if (!env)
+       env = getenv("TEMP");  /* Windows */
+    if (!env)
+       env = "/tmp";
+#ifdef _WIN32
+    return (std::string(env) + "/" + file);
+#else
+    return (std::string(env) + "\\" + file);
+#endif
+}

 RadiosondeDecoderModule::RadiosondeDecoderModule(std::string name)
 {
@@ -40,8 +54,8 @@

        config.acquire();
        if (!config.conf.contains(name)) {
-               config.conf[name]["gpxPath"] = "/tmp/radiosonde.gpx";
-               config.conf[name]["ptuPath"] = "/tmp/radiosonde_ptu.csv";
+               config.conf[name]["gpxPath"] = GetTempFile ("radiosonde.gpx");
+               config.conf[name]["ptuPath"] = GetTempFile ("radiosonde_ptu.csv");
                config.conf[name]["sondeType"] = 0;
                created = true;
        }

Hope you could clean it up.

IMHO most of this should go into utils.c. Or better yet, into sdrpp_core.dll.

Imet-4 support?

It would be nice if you can add Imet-4 sondes like the sondes launched from Beauvechain (B) to your plugin. Normally I use Mysondy to receive a sonde near the landing spot but Mysondy can not support Imet.

compilation error; linux

Opensuse 15.4
Linux 5.14.21-150400.24.63-default #1 SMP PREEMPT_DYNAMIC Tue May 2 15:49:04 UTC 2023 (fd0cc4f) x86_64 x86_64 x86_64 GNU/Linux

`[ 89%] Building CXX object decoder_modules/sdrpp_radiosonde/CMakeFiles/radiosonde_decoder.dir/src/main.cpp.o
/usr/local/src/SDRPlusPlus/decoder_modules/sdrpp_radiosonde/src/main.cpp: In constructor ‘RadiosondeDecoderModule::RadiosondeDecoderModule(std::string)’:
/usr/local/src/SDRPlusPlus/decoder_modules/sdrpp_radiosonde/src/main.cpp:57:46: error: no matching function for call to ‘dsp::demod::FM::init(dsp::streamdsp::complex_t&, float&, float, bool)’
57 | fmDemod.init(vfo->output, bw, bw/2.0f, false);
| ^
In file included from /usr/local/src/SDRPlusPlus/decoder_modules/sdrpp_radiosonde/src/main.hpp:6,
from /usr/local/src/SDRPlusPlus/decoder_modules/sdrpp_radiosonde/src/main.cpp:9:
/usr/local/src/SDRPlusPlus/core/src/dsp/demod/fm.h:25:14: note: candidate: ‘void dsp::demod::FM::init(dsp::streamdsp::complex_t
, double, double, bool, bool) [with T = float]’
25 | void init(dsp::streamdsp::complex_t* in, double samplerate, double bandwidth, bool lowPass, bool highPass) {
| ^~~~
/usr/local/src/SDRPlusPlus/core/src/dsp/demod/fm.h:25:14: note: candidate expects 5 arguments, 4 provided
make[2]: *** [decoder_modules/sdrpp_radiosonde/CMakeFiles/radiosonde_decoder.dir/build.make:118: decoder_modules/sdrpp_radiosonde/CMakeFiles/radiosonde_decoder.dir/src/main.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:2076: decoder_modules/sdrpp_radiosonde/CMakeFiles/radiosonde_decoder.dir/all] Error 2
make: *** [Makefile:136: all] Error 2

`

New compilation error...

After recent updates in SDR++ v1.1.0, compiling with the radiosonde plugin ends with an error:
.
.
.
[ 92%] Built target sdrplay_source
[ 93%] Built target bookmark_manager
[ 96%] Built target spyserver_source
[ 96%] Built target do_always
[ 96%] Built target radiosonde
Consolidate compiler generated dependencies of target radiosonde_decoder
[ 96%] Building CXX object decoder_modules/sdrpp_radiosonde/CMakeFiles/radiosonde_decoder.dir/src/main.cpp.o
/home/kmp/SDRPlusPlus/decoder_modules/sdrpp_radiosonde/src/main.cpp: In constructor ‘RadiosondeDecoderModule::RadiosondeDecoderModule(std::string)’:
/home/kmp/SDRPlusPlus/decoder_modules/sdrpp_radiosonde/src/main.cpp:57:21: error: no matching function for call to ‘dsp::demod::FM::init(dsp::streamdsp::complex_t&, float&, float, bool)’
57 | fmDemod.init(vfo->output, bw, bw/2.0f, false);
| ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/kmp/SDRPlusPlus/decoder_modules/sdrpp_radiosonde/src/main.hpp:6,
from /home/kmp/SDRPlusPlus/decoder_modules/sdrpp_radiosonde/src/main.cpp:9:
/home/kmp/SDRPlusPlus/core/src/dsp/demod/fm.h:25:14: note: candidate: ‘void dsp::demod::FM::init(dsp::streamdsp::complex_t
, double, double, bool, bool) [with T = float]’
25 | void init(dsp::streamdsp::complex_t* in, double samplerate, double bandwidth, bool lowPass, bool highPass) {
| ^~~~
/home/kmp/SDRPlusPlus/core/src/dsp/demod/fm.h:25:14: note: candidate expects 5 arguments, 4 provided
make[2]: *** [decoder_modules/sdrpp_radiosonde/CMakeFiles/radiosonde_decoder.dir/build.make:118: decoder_modules/sdrpp_radiosonde/CMakeFiles/radiosonde_decoder.dir/src/main.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:1540: decoder_modules/sdrpp_radiosonde/CMakeFiles/radiosonde_decoder.dir/all] Error 2
make: *** [Makefile:136: all] Error 2

Can you do something about it? please...

Radiosonde Decoding Compatibility Table

May I suggest including a radiosonde support matrix such as the ones found here: https://github.com/projecthorus/radiosonde_auto_rx#radiosonde-support-matrix
https://github.com/dl9rdz/rdz_ttgo_sonde#radiosonde-support-matrix

I have included an example table but I'm not sure if all the fields are correct

Radiosonde Support Matrix

Manufacturer Model Position Temperature Humidity Pressure
Vaisala RS41-SG/SGP/SGM ✔️ ✔️ ✔️ ✔️ (for -SGP)
Graw DFM06/09/17 ✔️ ✔️

Error on Windows

Hi!

Great software! Unfortunately, I'm getting an error on windows when SDR++ loads with the DLL in the folder.

Can you please help?

73!

Sasha VE3SVF
image

Removing two instances from the module loader causes a crash

If you have multiple sdrpp_radiosonde modules loaded in SDR++, removing one (by clicking the - icon in the module manager) works fine, but when you try to remove another one, the program crashes:

#5 ?? () from /usr/lib/libc.so.6
#6 free () from /usr/lib/libc.so.6
#7 fclose () from /usr/lib/libc.so.6
#8 ims100_decoder_deinit (d=0x5555562d47d0) at sdrpp/decoder_modules/sdrpp_radiosonde/src/decode/sondedump/sonde/ims100/ims100.c:75
#9 radiosonde::Decoder<ims100decoder, &ims100_decoder_init, &ims100_decoder_deinit, &ims100_decode>::~Decoder at sdrpp/decoder_modules/sdrpp_radiosonde/src/decode/decoder.hpp:24
#10 radiosonde::Decoder<ims100decoder, &ims100_decoder_init, &ims100_decoder_deinit, &ims100_decode>::~Decoder at sdrpp/decoder_modules/sdrpp_radiosonde/src/decode/decoder.hpp:24
#11 RadiosondeDecoderModule::~RadiosondeDecoderModule at sdrpp/decoder_modules/sdrpp_radiosonde/src/main.cpp:85
#12 _DELETE_INSTANCE_ at sdrpp/decoder_modules/sdrpp_radiosonde/src/main.cpp:419
#13 ModuleManager::deleteInstance at sdrpp/core/src/module.cpp:115
#14 module_manager_menu::draw at sdrpp/core/src/gui/menus/module_manager.cpp:74
#15 Menu::draw at sdrpp/core/src/gui/widgets/menu.cpp:124
#16 MainWindow::draw at sdrpp/core/src/gui/main_window.cpp:476
#17 backend::renderLoop at sdrpp/core/backends/glfw/backend.cpp:285
#18 sdrpp_main at sdrpp/core/src/core.cpp:370
#19 main at sdrpp/src/main.cpp:5

Instructions on how to decode iMet-4 sondes

Hi,

I am trying to decode an iMet-4. I can see the signal on SDR++, but it's not being decoded. are there any tips or tricks to make it work? I guess the signal was only about 12 db over the noise, but I could clearly see it on the waterfall. The decoding just stayed all 0s.

Thanks.

Error during compilation

home/peter/Applications/SDRPlusPlus/decoder_modules/sdrpp_radiosonde/src/main.cpp:57:21: error: no matching function for call to ‘dsp::demod::FM::init(dsp::streamdsp::complex_t*&, float&, float, bool)’
57 | fmDemod.init(vfo->output, bw, bw/2.0f, false);
| ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

In file included from /home/peter/Applications/SDRPlusPlus/decoder_modules/sdrpp_radiosonde/src/main.hpp:6,
from /home/peter/Applications/SDRPlusPlus/decoder_modules/sdrpp_radiosonde/src/main.cpp:9:
/home/peter/Applications/SDRPlusPlus/core/src/dsp/demod/fm.h:25:14: note: candidate: ‘void dsp::demod::FM::init(dsp::streamdsp::complex_t, double, double, bool, bool) [with T = float]’
25 | void init(dsp::streamdsp::complex_t
in, double samplerate, double bandwidth, bool lowPass, bool highPass) {
| ^~~~

/home/peter/Applications/SDRPlusPlus/core/src/dsp/demod/fm.h:25:14: note: candidate expects 5 arguments, 4 provided
make[2]: *** [decoder_modules/sdrpp_radiosonde/CMakeFiles/radiosonde_decoder.dir/build.make:118: decoder_modules/sdrpp_radiosonde/CMakeFiles/radiosonde_decoder.dir/src/main.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:2004: decoder_modules/sdrpp_radiosonde/CMakeFiles/radiosonde_decoder.dir/all] Error 2
make: *** [Makefile:136: all] Error 2

Any ideas. Iv followed your guide step by step. This is on Bookworm and Volk ver is 2.5.2-3. Also tried to use the precompiled .so but Volk issue arose. Any help would be appreciated.

After the April SDR ++ updates...

  1. After the April SDR ++ updates, the plugin cannot be compiled in
  2. It should be:
    if (OPT_BUILD_RADIOSONDE_DECODER)
    add_subdirectory ("decoder_modules / sdrpp_radiosonde")
    endif (OPT_BUILD_RADIOSONDE_DECODER)
  • space after endif in the 3rd line ...

Linux, Ubuntu 20.04.4 LTS

Automatically Compiled Binaries?

Hi,

I was wondering if you had considered setting up GitHub Actions to automatically generate binaries when you update the plugin.

This would solve the problem of having to manually build SDR++ and could make the plugin much more accessible.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.