From 18f9e3809028ab9043d05f7297b03833e8ec508b Mon Sep 17 00:00:00 2001 From: Denny Sheirer Date: Sun, 19 Apr 2020 14:57:05 +0000 Subject: [PATCH] Updates HackRF Sample Rates (#744) * Hackrf Changes * Updates HackRF tuner controller sample rates to deprecate previous sample rates to ensure playlist settings don't get corrupted. Co-authored-by: Doug Co-authored-by: Denny --- .../hackrf/HackRFTunerConfiguration.java | 8 ++--- .../tuner/hackrf/HackRFTunerController.java | 35 ++++++++++++------- .../tuner/hackrf/HackRFTunerEditor.java | 4 +-- 3 files changed, 29 insertions(+), 18 deletions(-) diff --git a/src/main/java/io/github/dsheirer/source/tuner/hackrf/HackRFTunerConfiguration.java b/src/main/java/io/github/dsheirer/source/tuner/hackrf/HackRFTunerConfiguration.java index 74590f07..75e163f0 100644 --- a/src/main/java/io/github/dsheirer/source/tuner/hackrf/HackRFTunerConfiguration.java +++ b/src/main/java/io/github/dsheirer/source/tuner/hackrf/HackRFTunerConfiguration.java @@ -27,10 +27,10 @@ import io.github.dsheirer.source.tuner.hackrf.HackRFTunerController.HackRFVGAGai public class HackRFTunerConfiguration extends TunerConfiguration { - private HackRFSampleRate mSampleRate = HackRFSampleRate.RATE2_016MHZ; - private HackRFLNAGain mLNAGain = HackRFLNAGain.GAIN_16; - private HackRFVGAGain mVGAGain = HackRFVGAGain.GAIN_10; - private boolean mAmplifierEnabled = true; + private HackRFSampleRate mSampleRate = HackRFSampleRate.RATE_5_0; + private HackRFLNAGain mLNAGain = HackRFLNAGain.GAIN_16; // We can see some signal at this gain + private HackRFVGAGain mVGAGain = HackRFVGAGain.GAIN_16; // We can see some signal at this gain + private boolean mAmplifierEnabled = false; //Probably should start off disabled private double mFrequencyCorrection = 0.0d; /** diff --git a/src/main/java/io/github/dsheirer/source/tuner/hackrf/HackRFTunerController.java b/src/main/java/io/github/dsheirer/source/tuner/hackrf/HackRFTunerController.java index eb38b81c..d507cba6 100644 --- a/src/main/java/io/github/dsheirer/source/tuner/hackrf/HackRFTunerController.java +++ b/src/main/java/io/github/dsheirer/source/tuner/hackrf/HackRFTunerController.java @@ -25,8 +25,8 @@ import io.github.dsheirer.source.SourceException; import io.github.dsheirer.source.tuner.configuration.TunerConfiguration; import io.github.dsheirer.source.tuner.usb.USBTransferProcessor; import io.github.dsheirer.source.tuner.usb.USBTunerController; -import io.github.dsheirer.source.tuner.usb.converter.SignedByteSampleConverter; import io.github.dsheirer.source.tuner.usb.converter.NativeBufferConverter; +import io.github.dsheirer.source.tuner.usb.converter.SignedByteSampleConverter; import org.apache.commons.io.EndianUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -57,13 +57,13 @@ public class HackRFTunerController extends USBTunerController public static final long MIN_FREQUENCY = 10000000l; public static final long MAX_FREQUENCY = 6000000000l; public static final long DEFAULT_FREQUENCY = 101100000; - public static final double USABLE_BANDWIDTH_PERCENT = 0.75; + public static final double USABLE_BANDWIDTH_PERCENT = 0.90; public static final int DC_SPIKE_AVOID_BUFFER = 5000; private NativeBufferConverter mNativeBufferConverter = new SignedByteSampleConverter(); private USBTransferProcessor mUSBTransferProcessor; - private HackRFSampleRate mSampleRate = HackRFSampleRate.RATE2_016MHZ; + private HackRFSampleRate mSampleRate = HackRFSampleRate.RATE_5_0; private boolean mAmplifierEnabled = false; private Device mDevice; @@ -344,7 +344,7 @@ public class HackRFTunerController extends USBTunerController if(!hackRFConfig.getSampleRate().isValidSampleRate()) { mLog.warn("Changing legacy HackRF Sample Rates Setting [" + hackRFConfig.getSampleRate().name() + "] to current valid setting"); - hackRFConfig.setSampleRate(HackRFSampleRate.RATE_2_3); + hackRFConfig.setSampleRate(HackRFSampleRate.RATE_5_0); } try @@ -508,7 +508,7 @@ public class HackRFTunerController extends USBTunerController { if(!rate.isValidSampleRate()) { - rate = HackRFSampleRate.RATE_2_3; + rate = HackRFSampleRate.RATE_5_0; } setSampleRateManual(rate.getRate(), 1); @@ -578,21 +578,33 @@ public class HackRFTunerController extends USBTunerController public enum HackRFSampleRate { + //Changes to enumerate correct rates + RATE_1_75(1750000, "1.750 MHz", BasebandFilter.F1_75), + RATE_2_5(2500000, "2.500 MHz", BasebandFilter.F2_50), + RATE_3_5(3500000, "3.500 MHz", BasebandFilter.F3_50), + RATE_5_0(5000000, "5.000 MHz", BasebandFilter.F5_00), + RATE_5_5(5500000, "5.500 MHz", BasebandFilter.F5_50), + RATE_6_0(6000000, "6.000 MHz", BasebandFilter.F6_00), + RATE_7_0(7000000, "7.000 MHz", BasebandFilter.F7_00), + RATE_8_0(8000000, "8.000 MHz", BasebandFilter.F8_00), + RATE_9_0(9000000, "9.000 MHz", BasebandFilter.F9_00), + RATE_10_0(10000000, "10.000 MHz", BasebandFilter.F10_00), + RATE_12_0(12000000, "12.000 MHz", BasebandFilter.F12_00), + RATE_14_0(14000000, "14.000 MHz", BasebandFilter.F14_00), + RATE_15_0(15000000, "15.000 MHz", BasebandFilter.F15_00), + RATE_20_0(20000000, "20.000 MHz", BasebandFilter.F20_00), + + //These sample rates are deprecated. They're maintained here for backward compatibility with user settings RATE_2_3(2300000, "2.300 MHz", BasebandFilter.F1_75), RATE_3_3(3300000, "3.300 MHz", BasebandFilter.F2_50), RATE_4_6(4600000, "4.600 MHz", BasebandFilter.F3_50), RATE_6_6(6600000, "6.600 MHz", BasebandFilter.F5_00), RATE_7_3(7300000, "7.300 MHz", BasebandFilter.F5_50), - RATE_8_0(8000000, "8.000 MHz", BasebandFilter.F6_00), RATE_9_3(9300000, "9.300 MHz", BasebandFilter.F7_00), RATE_10_6(10600000, "10.600 MHz", BasebandFilter.F8_00), - RATE_12_0(12000000, "12.000 MHz", BasebandFilter.F9_00), RATE_13_3(13300000, "13.300 MHz", BasebandFilter.F10_00), RATE_16_0(16000000, "16.000 MHz", BasebandFilter.F12_00), RATE_18_6(18600000, "18.600 MHz", BasebandFilter.F14_00), - RATE_20_0(20000000, "20.000 MHz", BasebandFilter.F15_00), - - //These sample rates are deprecated. They're maintained here for backward compatibility with user settings RATE2_016MHZ(2016000, "*2.016 MHz", BasebandFilter.F3_50), RATE3_024MHZ(3024000, "*3.024 MHz", BasebandFilter.F5_00), RATE4_464MHZ(4464000, "*4.464 MHz", BasebandFilter.F6_00), @@ -603,7 +615,6 @@ public class HackRFTunerController extends USBTunerController RATE13_440MHZ(13440000, "*13.440 MHz", BasebandFilter.F15_00), RATE14_976MHZ(14976000, "*14.976 MHz", BasebandFilter.F20_00), RATE19_968MHZ(19968000, "*19.968 MHz", BasebandFilter.F24_00); - private int mRate; private String mLabel; private BasebandFilter mFilter; @@ -615,7 +626,7 @@ public class HackRFTunerController extends USBTunerController mFilter = filter; } - public static EnumSet VALID_SAMPLE_RATES = EnumSet.range(RATE_2_3, RATE_20_0); + public static EnumSet VALID_SAMPLE_RATES = EnumSet.range(RATE_1_75, RATE_20_0); public int getRate() { diff --git a/src/main/java/io/github/dsheirer/source/tuner/hackrf/HackRFTunerEditor.java b/src/main/java/io/github/dsheirer/source/tuner/hackrf/HackRFTunerEditor.java index e1e8fe5e..80abb013 100644 --- a/src/main/java/io/github/dsheirer/source/tuner/hackrf/HackRFTunerEditor.java +++ b/src/main/java/io/github/dsheirer/source/tuner/hackrf/HackRFTunerEditor.java @@ -236,7 +236,7 @@ public class HackRFTunerEditor extends TunerConfigurationEditor if(lnaGain == null) { - lnaGain = HackRFLNAGain.GAIN_0; + lnaGain = HackRFLNAGain.GAIN_16; } mController.setLNAGain(lnaGain); @@ -267,7 +267,7 @@ public class HackRFTunerEditor extends TunerConfigurationEditor if(vgaGain == null) { - vgaGain = HackRFVGAGain.GAIN_4; + vgaGain = HackRFVGAGain.GAIN_16; } mController.setVGAGain(vgaGain);