Perseus SDR HF receiver first support
This commit is contained in:
@ -25,6 +25,7 @@ class FeatureDetector(object):
|
||||
"rtl_sdr_soapy": ["soapy_connector", "soapy_rtl_sdr"],
|
||||
"sdrplay": ["soapy_connector", "soapy_sdrplay"],
|
||||
"hackrf": ["hackrf_transfer"],
|
||||
"perseussdr": ["perseustest"],
|
||||
"airspy": ["soapy_connector", "soapy_airspy"],
|
||||
"airspyhf": ["soapy_connector", "soapy_airspyhf"],
|
||||
"lime_sdr": ["soapy_connector", "soapy_lime_sdr"],
|
||||
@ -150,6 +151,26 @@ class FeatureDetector(object):
|
||||
# TODO also check if it has the stdout feature
|
||||
return self.command_is_runnable("hackrf_transfer --help")
|
||||
|
||||
def has_perseustest(self):
|
||||
"""
|
||||
To use a Microtelecom Perseus HF receiver, compile and
|
||||
install the libperseus-sdr:
|
||||
```
|
||||
sudo apt install libusb-1.0-0-dev
|
||||
cd /tmp
|
||||
wget https://github.com/Microtelecom/libperseus-sdr/releases/download/v0.7.5/libperseus_sdr-0.7.5.tar.gz
|
||||
tar -zxvf libperseus_sdr-0.7.5.tar.gz
|
||||
cd libperseus_sdr-0.7.5/
|
||||
./configure
|
||||
make
|
||||
sudo make install
|
||||
sudo ldconfig
|
||||
perseustest
|
||||
```
|
||||
"""
|
||||
return self.command_is_runnable("perseustest -d -1 -a -t 1")
|
||||
|
||||
|
||||
def has_digiham(self):
|
||||
"""
|
||||
To use digital voice modes, the digiham package is required. You can find the package and installation
|
||||
|
31
owrx/source/perseussdr.py
Normal file
31
owrx/source/perseussdr.py
Normal file
@ -0,0 +1,31 @@
|
||||
from .direct import DirectSource
|
||||
from owrx.command import Flag, Option
|
||||
|
||||
|
||||
#
|
||||
# perseustest -s 768000 -u 0 -f 14150000 -r-|csdr convert_s8_f|nmux --bufsize 192512 --bufcnt 260 --port 35989 --address 127.0.0.1
|
||||
# perseustest -a -t0 -o -
|
||||
# perseustest -d 9 -a -t 100000 -o - -s 768000 -u 0 -f 14150000 -r-
|
||||
|
||||
class PerseussdrSource(DirectSource):
|
||||
def getCommandMapper(self):
|
||||
return super().getCommandMapper().setBase("perseustest -p -d -1 -a -t 100000 -o - ").setMappings(
|
||||
{
|
||||
"samp_rate": Option("-s"),
|
||||
"tuner_freq": Option("-f"),
|
||||
"rf_gain": Option("-u"),
|
||||
"lna_gain": Option("-g"),
|
||||
"rf_amp": Option("-x"),
|
||||
}
|
||||
).setStatic("-r-")
|
||||
|
||||
def getEventNames(self):
|
||||
return super().getEventNames() + [
|
||||
"lna_gain",
|
||||
"rf_amp",
|
||||
]
|
||||
|
||||
def getFormatConversion(self):
|
||||
# return ["csdr convert_s24_f --bigendian"]
|
||||
# return ["csdr convert_s24_f", "csdr gain_ff 20"]
|
||||
return ["csdr gain_ff 20"]
|
Reference in New Issue
Block a user