pavels / spektrum

rtl-sdr spectrum analyzer
BSD 3-Clause "New" or "Revised" License
586 stars 90 forks source link

changing buttons/options on the interface crashes the program and some are not working -Ubuntu #54

Open Mark-Record opened 8 months ago

Mark-Record commented 8 months ago

Spectrum does successfully scan initially once the sdr device is selected. However, changing the settings from its user interface crashes the program on my PC I'm running it from XUbuntu Description: Ubuntu 23.10 Release: 23.10 Codename: mantic When the program starts from a Terminal launcher on the desktop, it writes a config.csv file on the descktop. I found, editing this file on the desktop allows Spektrum settings such as startFreq and stopFreq to be set. My copy of Spectrum appears to read successfully from config.csv file on the desktop during startup. However. if I change a user option such as startFreq using the Spectrum graphic interface, the scanning hangs very shortly afterwards. The program is apparently looking for a config.csv file located in /usr/share/spektrum/ I suspect there is an issue about which path is used to access the config.csv The Text is printed to the terminal window when the crash occurs is as follows.

Loading libs from /usr/share/spektrum/lib. Library rtlsdr file /usr/share/spektrum/lib/librtlsdr.so. Library rtlpower file /usr/share/spektrum/lib/librtlpower.so. Generic RTL2832U OEM: 00000001 ControlP5 2.2.6 infos, comments, questions at http://www.sojamo.de/libraries/controlP5 Reached end of setup. Loading libs from /usr/share/spektrum/lib. Library rtlsdr file /usr/share/spektrum/lib/librtlsdr.so. Library rtlpower file /usr/share/spektrum/lib/librtlpower.so. Found Rafael Micro R820T tuner File config.csv /home/stem/Desktop/config.csv File config.csv exists. Reached end of makeconfig loadConfig: Config table config.csv loaded. startFreq = 24000000 stopFreq = 450000000 binStep = 1000 scaleMin = -60 scaleMax = 0 rfGain = 0 fullRangeMin = 24000000 fullRangeMax = 1800000000 ifOffset = 0 ifType = 0 "ARIAL" is not available, so another font will be used. Use PFont.list() to show available fonts. setRange exception. Mode: hopping setRange: CROP set to 0.0 setRangeButton offsetToggle minmaxToggle sweepToggle rfGain RF GAIN CLICKED avgShow avgSamples refShow refYoffset refYoffset perShowMaxToggle perShowMedToggle perShowMinToggle ifMinusToggle ifPlusToggle Mode: hopping setRange: CROP set to 0.0 Reached end of setupControls. deviceDropdown RESIZE DETECTED refShow avgShow sweepToggle Mode: hopping setRange: CROP set to 0.0 resetMin saveConfig: Active Configuration 0 with name AutoSave java.io.FileNotFoundException: /usr/share/spektrum/config.csv (Permission denied) at java.io.FileOutputStream.open0(Native Method) at java.io.FileOutputStream.open(FileOutputStream.java:270) at java.io.FileOutputStream.(FileOutputStream.java:213) at java.io.FileOutputStream.(FileOutputStream.java:162) at processing.core.PApplet.createOutput(PApplet.java:7674) at processing.data.Table.save(Table.java:1175) at processing.core.PApplet.saveTable(PApplet.java:6299) at spektrum.saveConfigToIndx(spektrum.java:1989) at spektrum.saveConfig(spektrum.java:1964) at spektrum.draw(spektrum.java:1768) at processing.core.PApplet.handleDraw(PApplet.java:2482) at processing.awt.PSurfaceAWT$12.callDraw(PSurfaceAWT.java:1547) at processing.core.PSurfaceNone$AnimationThread.run(PSurfaceNone.java:313) java.lang.NullPointerException at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82) at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140) at sun.nio.cs.StreamEncoder.implFlush(StreamEncoder.java:297) at sun.nio.cs.StreamEncoder.flush(StreamEncoder.java:141) at java.io.OutputStreamWriter.flush(OutputStreamWriter.java:229) at java.io.PrintWriter.flush(PrintWriter.java:320) at processing.data.Table.writeCSV(Table.java:1292) at processing.data.Table.save(Table.java:1203) at processing.data.Table.save(Table.java:1175) at processing.core.PApplet.saveTable(PApplet.java:6299) at spektrum.saveConfigToIndx(spektrum.java:1989) at spektrum.saveConfig(spektrum.java:1964) at spektrum.draw(spektrum.java:1768) at processing.core.PApplet.handleDraw(PApplet.java:2482) at processing.awt.PSurfaceAWT$12.callDraw(PSurfaceAWT.java:1547) at processing.core.PSurfaceNone$AnimationThread.run(PSurfaceNone.java:313)

Copying the config.csv file from the desktop to /usr/share/spektrum/ stops the program crashing but then the program still seems to use the desktop version at start up.

Thanks for all your work making this incredibly handy piece of software.

pavels commented 5 months ago

The code responsible for saving the config is all messed up - i will try to find some time to rework this in near future