How romanolorenzo/truesignal works
TrueSignal’s SignaLab is a PySide6 desktop oscilloscope for viewing two channels in time or FFT mode, adjusting scales and triggers, and saving plots or sampled data. The main runtime path starts in main.py, which builds the UI and connects GUI and menu behavior; GuiFunctions supplies a simulated signal source to the tabbed oscilloscope widgets, which render and analyze it. Menu actions provide export and recording. README capabilities such as themes and informational overlays are included, but their implementation paths are not established by the sampled excerpts, so links are omitted where unsupported.
Main entry points: main.py App window · Functions.py Signal source · MenuFunctions.py Menu actions · trigger_handler.py Trigger detection
Components 18
Application
- App window
main.py - UI layout
src/ui_interface.py - GUI functions
src/Functions.py - JSON themes
json-styles/style.json
Signal and plots
- Signal source
src/Functions.py - Tabbed views
src/Functions.py - Combined plot
src/OscilloscopeWidget.py - Channel 1 plot
src/OscilloscopeWidget.py - Channel 2 plot
src/OscilloscopeWidget.py - Recording overlay
src/OscilloscopeWidget.py
Controls and analysis
- Trigger detection
src/trigger_handler.py - Scale controls
src/Functions.py - Stepped spinbox
src/custom_spinbox.py
User actions
- Menu actions
src/MenuFunctions.py - Data recording
src/MenuFunctions.py - Plot export
src/MenuFunctions.py
Other components
- Operator
- USB oscilloscope
Connections 25
- Operator → App window: launches
README.md - App window → UI layout: sets up
main.py - App window → GUI functions: creates
main.py - App window → Menu actions: creates
main.py - GUI functions → Signal source: creates
src/Functions.py - GUI functions → Tabbed views: builds
src/Functions.py - Tabbed views → Combined plot: adds
src/Functions.py - Tabbed views → Channel 1 plot: adds
src/Functions.py - Tabbed views → Channel 2 plot: adds
src/Functions.py - Signal source → Combined plot: emits plot data
src/OscilloscopeWidget.py - Signal source → Channel 1 plot: emits plot data
src/OscilloscopeWidget.py - Signal source → Channel 2 plot: emits plot data
src/OscilloscopeWidget.py - Combined plot → Trigger detection: checks triggers
src/OscilloscopeWidget.py - Channel 1 plot → Trigger detection: checks triggers
src/OscilloscopeWidget.py - Channel 2 plot → Trigger detection: checks triggers
src/OscilloscopeWidget.py - App window → Stepped spinbox: installs
main.py - GUI functions → Scale controls: connects controls
src/Functions.py - Menu actions → Plot export: exports plots
src/MenuFunctions.py - Menu actions → Data recording: records data
src/MenuFunctions.py - Operator → Menu actions: selects actions
src/MenuFunctions.py - Operator → Scale controls: adjusts display
README.md - Operator → Trigger detection: sets trigger
README.md - Operator → JSON themes: customizes theme
README.md - Operator → Recording overlay: records screen
README.md - USB oscilloscope → Signal source: provides samples