switch hackrf to soapy
This commit is contained in:
		@@ -23,6 +23,7 @@
 | 
				
			|||||||
- Docker images migrated to Debian slim images; This was necessary to allow the use of function multiversioning in
 | 
					- Docker images migrated to Debian slim images; This was necessary to allow the use of function multiversioning in
 | 
				
			||||||
  csdr and owrx_connector to allow the images to run on a wider range of CPUs
 | 
					  csdr and owrx_connector to allow the images to run on a wider range of CPUs
 | 
				
			||||||
- Docker containers have been updated to include the SDRplay driver version 3
 | 
					- Docker containers have been updated to include the SDRplay driver version 3
 | 
				
			||||||
 | 
					- HackRF support is now based on SoapyHackRF
 | 
				
			||||||
 | 
					
 | 
				
			||||||
**0.18.0**
 | 
					**0.18.0**
 | 
				
			||||||
- Support for SoapyRemote
 | 
					- Support for SoapyRemote
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -24,7 +24,7 @@ class FeatureDetector(object):
 | 
				
			|||||||
        "rtl_sdr": ["rtl_connector"],
 | 
					        "rtl_sdr": ["rtl_connector"],
 | 
				
			||||||
        "rtl_sdr_soapy": ["soapy_connector", "soapy_rtl_sdr"],
 | 
					        "rtl_sdr_soapy": ["soapy_connector", "soapy_rtl_sdr"],
 | 
				
			||||||
        "sdrplay": ["soapy_connector", "soapy_sdrplay"],
 | 
					        "sdrplay": ["soapy_connector", "soapy_sdrplay"],
 | 
				
			||||||
        "hackrf": ["hackrf_transfer"],
 | 
					        "hackrf": ["soapy_connector", "soapy_hackrf"],
 | 
				
			||||||
        "perseussdr": ["perseustest"],
 | 
					        "perseussdr": ["perseustest"],
 | 
				
			||||||
        "airspy": ["soapy_connector", "soapy_airspy"],
 | 
					        "airspy": ["soapy_connector", "soapy_airspy"],
 | 
				
			||||||
        "airspyhf": ["soapy_connector", "soapy_airspyhf"],
 | 
					        "airspyhf": ["soapy_connector", "soapy_airspyhf"],
 | 
				
			||||||
@@ -127,26 +127,6 @@ class FeatureDetector(object):
 | 
				
			|||||||
        """
 | 
					        """
 | 
				
			||||||
        return self.command_is_runnable("nc --help")
 | 
					        return self.command_is_runnable("nc --help")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def has_hackrf_transfer(self):
 | 
					 | 
				
			||||||
        """
 | 
					 | 
				
			||||||
        To use a HackRF, compile the HackRF host tools from its "stdout" branch:
 | 
					 | 
				
			||||||
        ```
 | 
					 | 
				
			||||||
         git clone https://github.com/mossmann/hackrf/
 | 
					 | 
				
			||||||
         cd hackrf
 | 
					 | 
				
			||||||
         git fetch
 | 
					 | 
				
			||||||
         git checkout origin/stdout
 | 
					 | 
				
			||||||
         cd host
 | 
					 | 
				
			||||||
         mkdir build
 | 
					 | 
				
			||||||
         cd build
 | 
					 | 
				
			||||||
         cmake .. -DINSTALL_UDEV_RULES=ON
 | 
					 | 
				
			||||||
         make
 | 
					 | 
				
			||||||
         sudo make install
 | 
					 | 
				
			||||||
        ```
 | 
					 | 
				
			||||||
        """
 | 
					 | 
				
			||||||
        # TODO i don't have a hackrf, so somebody doublecheck this.
 | 
					 | 
				
			||||||
        # TODO also check if it has the stdout feature
 | 
					 | 
				
			||||||
        return self.command_is_runnable("hackrf_transfer --help")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    def has_perseustest(self):
 | 
					    def has_perseustest(self):
 | 
				
			||||||
        """
 | 
					        """
 | 
				
			||||||
        To use a Microtelecom Perseus HF receiver, compile and
 | 
					        To use a Microtelecom Perseus HF receiver, compile and
 | 
				
			||||||
@@ -333,6 +313,14 @@ class FeatureDetector(object):
 | 
				
			|||||||
        """
 | 
					        """
 | 
				
			||||||
        return self._has_soapy_driver("redpitaya")
 | 
					        return self._has_soapy_driver("redpitaya")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def has_soapy_hackrf(self):
 | 
				
			||||||
 | 
					        """
 | 
				
			||||||
 | 
					        The SoapyHackRF allows HackRF to be used with SoapySDR.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        You can get it [here](https://github.com/pothosware/SoapyHackRF/wiki).
 | 
				
			||||||
 | 
					        """
 | 
				
			||||||
 | 
					        return self._has_soapy_driver("hackrf")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def has_dsd(self):
 | 
					    def has_dsd(self):
 | 
				
			||||||
        """
 | 
					        """
 | 
				
			||||||
        The digital voice modes NXDN and D-Star can be decoded by the dsd project. Please note that you need the version
 | 
					        The digital voice modes NXDN and D-Star can be decoded by the dsd project. Please note that you need the version
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,23 +1,8 @@
 | 
				
			|||||||
from .direct import DirectSource
 | 
					from .soapy import SoapyConnectorSource
 | 
				
			||||||
from owrx.command import Option
 | 
					from owrx.command import Option
 | 
				
			||||||
import time
 | 
					import time
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class HackrfSource(DirectSource):
 | 
					class HackrfSource(SoapyConnectorSource):
 | 
				
			||||||
    def getCommandMapper(self):
 | 
					    def getDriver(self):
 | 
				
			||||||
        return super().getCommandMapper().setBase("hackrf_transfer").setMappings(
 | 
					        return "hackrf"
 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
                "samp_rate": Option("-s"),
 | 
					 | 
				
			||||||
                "tuner_freq": Option("-f"),
 | 
					 | 
				
			||||||
                "rf_gain": Option("-g"),
 | 
					 | 
				
			||||||
                "lna_gain": Option("-l"),
 | 
					 | 
				
			||||||
                "rf_amp": Option("-a"),
 | 
					 | 
				
			||||||
                "ppm": Option("-C"),
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        ).setStatic("-r-")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    def getFormatConversion(self):
 | 
					 | 
				
			||||||
        return ["csdr convert_s8_f"]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    def sleepOnRestart(self):
 | 
					 | 
				
			||||||
        time.sleep(1)
 | 
					 | 
				
			||||||
		Reference in New Issue
	
	Block a user