How martinmarinov/tempestsdr works
TempestSDR is a Java GUI and native C toolkit that reconstructs video imagery from signals captured by SDR receivers or read from a sample file. The principal workflow is GUI configuration, source selection and plugin loading, sample acquisition, native signal processing and frame delivery to visualizers. The documented capabilities also include automatic resolution and refresh-rate estimation, synchronization controls, SNR and plot feedback, and post-processing. The README and sampled excerpts support the overall architecture; several GUI and DSP links reflect documented capabilities rather than inspected implementation details.
Main entry points: TSDRLibrary.java Java API · TSDRLibrary.c TSDR engine · TSDRPluginLoader.c Plugin loader · Main.java Main window
Components 22
GUI and controls
- Main window
JavaGUI/src/martin/tempest/gui/Main.java - Source catalog
JavaGUI/src/martin/tempest/sources/TSDRSource.java - Source settings
JavaGUI/src/martin/tempest/sources/TSDRSource.java
Input sources
- Raw-file plugin
TSDRPlugin_RawFile/src/TSDRPlugin_RawFile.c - Mirics plugin
TSDRPlugin_Mirics/src/TSDRPlugin_Mirics.c - SDRplay plugin
TSDRPlugin_SdrPlay/src/TSDRPlugin_SDRPlay.c - ExtIO plugin
TSDRPlugin_ExtIO/src/TSDRPlugin_ExtIO.c - UHD plugin
TSDRPlugin_UHD/src/TSDRPlugin_UHD.cpp
Native processing
- Java API
JavaGUI/src/martin/tempest/core/TSDRLibrary.java - JNI bridge
JavaGUI/jni/TSDRLibraryNDK.c - TSDR engine
TempestSDR/src/TSDRLibrary.c - Plugin loader
TempestSDR/src/TSDRPluginLoader.c - Signal processing
TempestSDR/src/dsp.c - Sync and detection
TempestSDR/src/syncdetector.c - Rate estimation
TempestSDR/src/frameratedetector.c
Frames and feedback
- Image visualizer
JavaGUI/src/martin/tempest/gui/ImageVisualizer.java - Plot visualizers
JavaGUI/src/martin/tempest/gui/PlotVisualizer.java - SNR visualizer
JavaGUI/src/martin/tempest/gui/SNRVisualizer.java - Auto scale
JavaGUI/src/martin/tempest/gui/AutoScaleVisualizer.java
Other components
- Operator
- SDR receiver
- Sample file
Connections 32
- Operator → Main window: configures
- Main window → Source catalog: lists sources
- Main window → Source settings: configures source
- Main window → Java API: controls capture
- Source settings → Java API: supplies plugin settings
- Java API → JNI bridge: invokes native API
- JNI bridge → TSDR engine: calls library API
- TSDR engine → Plugin loader: loads plugin
- Plugin loader → Raw-file plugin: dispatches
- Plugin loader → Mirics plugin: dispatches
- Plugin loader → SDRplay plugin: dispatches
- Plugin loader → ExtIO plugin: dispatches
- Plugin loader → UHD plugin: dispatches
- Raw-file plugin → Sample file: reads samples
- Mirics plugin → SDR receiver: captures samples
- SDRplay plugin → SDR receiver: captures samples
- ExtIO plugin → SDR receiver: captures samples
- UHD plugin → SDR receiver: captures samples
- Raw-file plugin → TSDR engine: streams samples
- Mirics plugin → TSDR engine: streams samples
- SDRplay plugin → TSDR engine: streams samples
- ExtIO plugin → TSDR engine: streams samples
- UHD plugin → TSDR engine: streams samples
- TSDR engine → Signal processing: processes samples
- Signal processing → Sync and detection: feeds synchronization
- Signal processing → Rate estimation: supports rate detection
- JNI bridge → Java API: delivers callbacks
- Java API → Image visualizer: delivers frames
- Java API → Plot visualizers: delivers plot data
- Java API → SNR visualizer: delivers SNR values
- Java API → Auto scale: delivers scale feedback
- Operator → Image visualizer: views output