From 4cf51405ea8cc9e58a9602ed08402b686fc4c528 Mon Sep 17 00:00:00 2001 From: Denny Sheirer Date: Tue, 3 Dec 2024 17:16:37 -0500 Subject: [PATCH] #2102 Log Unknown Tuners From SDRPlay API (#2102) Co-authored-by: Dennis Sheirer --- gradle.properties | 2 +- .../dsheirer/source/tuner/TunerFactory.java | 3 +++ .../sdrplay/api/device/DeviceStruct_v3_08.java | 15 +++++++++++++-- 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/gradle.properties b/gradle.properties index 5dd13a84..ce338574 100644 --- a/gradle.properties +++ b/gradle.properties @@ -28,4 +28,4 @@ # tag name, specifically the dashes inserted before and after the alpha/beta labels. # See: https://github.com/DSheirer/sdrtrunk/issues/1651 -projectVersion=0.6.1 \ No newline at end of file +projectVersion=0.6.2-beta-1 \ No newline at end of file diff --git a/src/main/java/io/github/dsheirer/source/tuner/TunerFactory.java b/src/main/java/io/github/dsheirer/source/tuner/TunerFactory.java index 3d6450df..aac25d6d 100644 --- a/src/main/java/io/github/dsheirer/source/tuner/TunerFactory.java +++ b/src/main/java/io/github/dsheirer/source/tuner/TunerFactory.java @@ -187,6 +187,9 @@ public class TunerFactory break; } break; + default: + mLog.warn("SDRPlay API returned an unknown tuner type [" + deviceInfo.getDeviceType() + + "] with serial number [" + deviceInfo.getSerialNumber() + "]"); } return tuners; diff --git a/src/main/java/io/github/dsheirer/source/tuner/sdrplay/api/device/DeviceStruct_v3_08.java b/src/main/java/io/github/dsheirer/source/tuner/sdrplay/api/device/DeviceStruct_v3_08.java index 440af097..45d84a0e 100644 --- a/src/main/java/io/github/dsheirer/source/tuner/sdrplay/api/device/DeviceStruct_v3_08.java +++ b/src/main/java/io/github/dsheirer/source/tuner/sdrplay/api/device/DeviceStruct_v3_08.java @@ -21,12 +21,15 @@ package io.github.dsheirer.source.tuner.sdrplay.api.device; import io.github.dsheirer.source.tuner.sdrplay.api.v3_08.sdrplay_api_DeviceT; import java.lang.foreign.MemorySegment; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** - * sdrplay_api_DeviceT structure parser for API version 3.07 + * sdrplay_api_DeviceT structure parser for API version 3.08+ */ public class DeviceStruct_v3_08 implements IDeviceStruct { + private static final Logger LOGGER = LoggerFactory.getLogger(DeviceStruct_v3_08.class); private final MemorySegment mDeviceMemorySegment; private final DeviceType mDeviceType; private final String mSerialNumber; @@ -38,9 +41,17 @@ public class DeviceStruct_v3_08 implements IDeviceStruct public DeviceStruct_v3_08(MemorySegment deviceMemorySegment) { mDeviceMemorySegment = deviceMemorySegment; - mDeviceType = DeviceType.fromValue(0xFF & sdrplay_api_DeviceT.hwVer(mDeviceMemorySegment)); + int deviceTypeValue = 0xFF & sdrplay_api_DeviceT.hwVer(mDeviceMemorySegment); + mDeviceType = DeviceType.fromValue(deviceTypeValue); + MemorySegment serialSegment = sdrplay_api_DeviceT.SerNo(mDeviceMemorySegment); mSerialNumber = serialSegment.getString(0); + + if(mDeviceType == DeviceType.UNKNOWN) + { + LOGGER.warn("Unrecognized RSP tuner device type value [" + deviceTypeValue + "] with serial number [" + + mSerialNumber + "]"); + } } @Override public MemorySegment getDeviceMemorySegment()