mirror of
https://github.com/f4exb/sdrangel.git
synced 2026-07-12 05:44:25 -04:00
cfeac1dc11
Improve PlutoSDR device identity handling to correctly distinguish
multiple libiio backends (IP, USB, etc.) and provide stable grouping
of physically identical hardware in the UI.
- Append backend prefix to scanned device serials to ensure uniqueness
across multiple discovery paths (e.g. "<serial>_ip", "<serial>_usb").
This prevents collisions when the same device is visible through
different transports.
- Add physical serial extraction and grouping logic so that devices
discovered via multiple backends are treated as a single physical
unit for display purposes. This stabilizes UI numbering and avoids
duplicate entries for the same hardware.
- Update enumOriginDevices() to:
- group devices by physical serial rather than scan index
- assign stable per-device indices independent of backend enumeration
- include backend label in the display name to distinguish connection
paths when multiple backends are active
- Introduce helper utilities:
- createBackendSuffix(): extract backend identifier from libiio URI
- getPhysicalSerial(): strip backend suffix for grouping logic
- getBackendLabel(): format backend suffix for user-facing display
These changes ensure:
- unique internal identifiers per backend connection
- consistent grouping per physical device across discovery mechanisms
- improved UI clarity when multiple access paths exist for the same SDR
No change to RF/data path behavior; this is purely a discovery and
presentation-layer refactor.
Signed-off-by: Robin Getz <rgetz503@gmail.com>
Devices common resources
This folder contains classes and methods that can be used by different plugins that work with a common physical device or via network. Thus this can be one of the following devices:
-
BladeRF1: one Rx and one Tx full duplex. Plugins are:
- bladerf1input
- bladerf1output
-
BladeRF2: 2 Rx and 2 Tx full duplex (BladeRF 2.0 micro). Plugins are:
- bladerf2input
- bladerf2output
-
HackRF: one Rx and one Tx half duplex. Plugins are:
- hackrfinput
- hackrfoutput
-
LimeSDR: 2 Rx and 2 Tx full duplex (Lime-USB). 1 Rx and 1 Tx full duplex (Lime-Mini). Plugins are
- limesdrinput
- limesdroutput
-
PlutoSDR: one Rx and one Tx full duplex. Plugins are
- plutosdrinput
- plutosdroutput
-
SoapySDR: Soapy SDR virtual device
- soapysdrinput
- soapysdroutput
-
USRP: Up to 2 Rx and 2 Tx full duplex. Plugins are
- usrpinput
- usrpoutput