1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2026-07-26 12:04:13 -04:00
Commit Graph

89 Commits

Author SHA1 Message Date
Edouard Griffiths fcb7dbf8ba Merge pull request #2814 from rgetz/rgetz-pluto-gain-updates
plutosdr: Update RX gain limits dynamically from hardware
2026-07-21 03:13:47 +02:00
Robin Getz 72d612d986 plutosdr: Update RX gain limits dynamically from hardware
Query the PlutoSDR hardware for the current RX gain range and use it
to configure the GUI gain control dynamically.

The AD936x gain limits vary with LO frequency. Previously the GUI used
a fixed gain range, allowing users to select values that the hardware
would reject after changing bands. The gain slider now refreshes its
minimum, maximum, and step size whenever the device center frequency is
updated.

Also change the gain setting serialization to use a signed integer so
negative gain values are preserved for operating modes that support
them.

Changes include:
- Add DevicePlutoSDRBox::getGainRange() to read
  in_voltage0_hardwaregain_available.
- Expose gain range through PlutoSDRInput.
- Refresh GUI gain limits when the device frequency changes.
- Avoid unnecessary widget updates when limits are unchanged.
- Store/restore gain as a signed value.
- Add default RX gain limit constants for fallback when the device
  cannot provide its range.

Signed-off-by: Robin Getz <rgetz503@gmail.com>
2026-07-19 17:48:53 -04:00
Robin Getz af4c366cb7 PlutoSDR: Guard against null buddy shared pointers | Fix #2779
Add defensive null checks before dereferencing DeviceAPI::getBuddySharedPtr()
in the PlutoSDR input and output plugins.

DeviceAPI initializes the buddy shared pointer to nullptr, so a buddy may
exist before its shared state has been attached. This could result in null
pointer dereferences during device initialization, buddy thread
suspend/resume, or settings application.

Changes include:
- Validate buddy shared pointer in openDevice() and fail gracefully if absent.
- Guard suspendBuddies() and resumeBuddies() against null shared pointers.
- Skip buddies without shared state during applySettings() while logging a
  warning.
- Prevent dereferencing null buddy shared pointers when restarting buddy
  threads.

These changes improve robustness during PlutoSDR buddy initialization and
avoid crashes caused by partially initialized buddy relationships.

Signed-off-by: Robin Getz <rgetz503@gmail.com>
2026-07-19 12:59:17 -04:00
f4exb 63348eeee1 Make device title editable in the basic device settings. Fixes #2292 2026-01-28 03:05:39 +01:00
f4exb 585d806ef8 All device plugins: make sure start and stop are effective once only. PArt of #2159 2024-08-27 09:54:09 +02:00
Mykola Dvornik 15337cac66 Fix bug that prevents settings changes updates via reverse API
Most plugins that use reverse API to PATCH settings updates to remote
server only do so when `useReverseAPI` is toggled, but not when the
relevant settings are being updated. So lets fix the precondition to
use the `m_useReverseAPI` flag instead.
2024-04-14 18:58:12 +02:00
Daniele Forsi 8c3f7e3775 Remove unused includes and use more direct includes 2024-04-11 23:31:34 +02:00
f4exb b6c4d10b62 Rewriting of copyright notices for plugins/samplesource. Part of #1893 2023-11-18 10:07:41 +01:00
f4exb c4debeef8e PlutoSDR input/output: do not apply settings to self when coming from a buddy change. Fixes #1690 2023-07-11 11:44:25 +02:00
f4exb 94a465b210 PlutoSDR input: Make settings assignments atomic. Part of #1329 2022-10-24 00:57:41 +02:00
f4exb 4111c967e9 Fixed some signal/slot connects. Removed unnecessary m_channelMessageQueue in ChannelAPI. Fixes #1185 2022-03-23 22:32:23 +01:00
f4exb 053e4a31cd Add label to SampleSinkFifo to mention controlling component in error messages 2022-03-18 21:53:53 +01:00
f4exb e6e7ece46c Removed file recording function from device plugins 2020-08-09 00:47:06 +02:00
f4exb c4136c6a44 IQ swap: REST API: implementation in plugins 2020-06-23 19:56:50 +02:00
f4exb cc5d614f67 IQ swap: initial implementation in plugins 2020-06-23 19:29:58 +02:00
f4exb e79e11546c PlutoSDR: fixed handling of open device status. Fixes issue #510 2020-05-20 11:23:51 +02:00
f4exb 323e75cddd REST API device and channel actions: extension of record action: implementation 2020-03-10 19:44:27 +01:00
f4exb d0858f21fb Added possibility to specify devices that cannot be discovered automatically. This implements #445 2019-12-16 01:03:47 +01:00
f4exb 246ff824af Corrected network manager process memory leaks (Rx side) 2019-11-12 18:46:45 +01:00
f4exb f80d16451b REST API: config: PUT (1): swagger implementation. Various small fixes 2019-08-05 18:29:09 +02:00
f4exb a078239685 REST API: config: GET (11). Support of the rest of devices 2019-08-04 20:24:44 +02:00
f4exb 1255784b7f PlutoSDR input: implement control of hardware DC and IQ corrections 2019-07-25 13:57:24 +02:00
f4exb 06dea9b29f PVS-Studio analys fixes: core package serious issues 2019-06-14 16:58:09 +02:00
f4exb b01c4e2477 Device API: added a number of source and sink streams and update it from the plugins 2019-05-21 00:27:08 +02:00
f4exb 89e53cf179 Single DeviceAPI interface (1) 2019-05-08 22:11:53 +02:00
f4exb 54e46837dd REST API: changed binary tx parameter to ternary direction parameter (0: rx, 1: tx, 2: any) 2019-05-07 14:43:38 +02:00
f4exb 4bb0f4f51a Fixed incomplete copyright headers (2): plugins/samplesource 2019-04-11 06:57:41 +02:00
f4exb e2ac286458 Series of shifted decimators matching shifted interpolators. Applied to HackRF input 2019-04-02 01:10:03 +02:00
f4exb cd35732807 Reverse API originator information: implemented for start/stop in all source plugins 2019-03-25 15:21:17 +01:00
f4exb 9b30d602c3 Reverse API originator information: implemented in all source plugins 2019-03-25 13:41:38 +01:00
Robin Getz 95edff4985 plutosdr: grab the RF bandwidth range from the device
This will use the RF bandwidth from the device, which is different
between AD9363 and AD9364.

Things are now managed like the device likes - analog low pass bandwidth
is RF (complex) bandwidth, not baseband single I or Q bandwidth.

Signed-off-by: Robin Getz <robin.getz@analog.com>
2019-02-01 16:42:08 -05:00
f4exb 0215839220 REST API: implement reverse API settings (3) 2019-01-11 14:45:00 +01:00
f4exb b5a7425f1e PlutoSDR: some minor changes to pull request #269 (Get LO range from device) and get Tx LO range also from device 2019-01-04 11:23:54 +01:00
Robin Getz 333273b3cb pluto: Get LO range from device
When updating firmware, the devices which have AD9364s on them, get
reset to the default of a AD9363 (tuning range of 325 to 3800 MHz).
SDRAngel assumes a AD9364, and the GUI allows you to set LO settings
that the firmware doesn't support.

This ensures that does not happen, by going out to the hardware, and
querying the device to set the min/max limits on LO.

Signed-off-by: Robin Getz <robin.getz@analog.com>
2019-01-03 12:46:40 -05:00
f4exb fc3f6d1711 Reverse API: PlutoSDR input 2018-12-26 16:39:48 +01:00
f4exb 7574cb23d4 Windows: MSVC2017: fixed more attribute unused cases (2) 2018-11-13 08:51:14 +01:00
f4exb be15aa7cb0 PlutoSDR output: implemeted WEB API 2018-05-26 20:33:02 +02:00
f4exb 3f303a0c0d PlutoSDR input: implemeted WEB API 2018-05-26 18:07:21 +02:00
beta-tester 15078c9c07 modified unique file name 2018-05-11 09:08:20 +02:00
f4exb 17976cf058 PlutoSDR and RTL-SDR input: rework of center frequency setting 2018-05-10 11:48:06 +02:00
f4exb 775b2a270d File record default file name fix (2) 2018-05-09 17:39:48 +02:00
f4exb 0981d04904 File record default file name fix (1) 2018-05-08 11:03:09 +02:00
f4exb 5b7cbdf0e5 Multiple audio support: transfer start/stop audio to audio FIFO management in AudioDeviceManager 2018-03-24 04:18:58 +01:00
f4exb 2e5cfcafee PVS-Studio static analysis corrections (3) issue #137 2018-02-24 10:29:27 +01:00
f4exb 2b846f5d28 PVS-Studio static analysis corrections (2) issue #137 2018-02-22 03:04:42 +01:00
f4exb 057a8f94bb Airspy, BladeRF, HackRF, PlutoSDR, RTLSDR, SDRPlay: fixed frequency setting when changing decimation with fc position change 2018-01-20 03:28:30 +01:00
f4exb 9824843684 PlutoSDR: fixed possible segfault when stopping one device in multiple stream confguration. 2018-01-08 00:37:15 +01:00
f4exb 65ac9e2f2c Web API: added identification string in device and channel include files description 2017-12-28 11:04:33 +01:00
f4exb 8399baeb4e Source plugins: put a serializer and deserializer in the core plugin for server. NFM demod: fixed deserializer 2017-12-28 03:21:48 +01:00
f4exb 49d1439981 Device source plugins: implemented an init method for initializations to be done when all collaborating objects are created and possibly connected 2017-12-25 09:10:19 +01:00