add rockprog interface
This commit is contained in:
parent
9aa6f72152
commit
406d06fef2
@ -125,6 +125,11 @@ class SdrSource(ABC):
|
|||||||
if self.monitor:
|
if self.monitor:
|
||||||
return
|
return
|
||||||
|
|
||||||
|
try:
|
||||||
|
self.preStart()
|
||||||
|
except Exception:
|
||||||
|
logger.exception("Exception during preStart()")
|
||||||
|
|
||||||
cmd = self.getCommand()
|
cmd = self.getCommand()
|
||||||
cmd = [c for c in cmd if c is not None]
|
cmd = [c for c in cmd if c is not None]
|
||||||
|
|
||||||
@ -176,7 +181,16 @@ class SdrSource(ABC):
|
|||||||
|
|
||||||
self.setState(SdrSource.STATE_FAILED if self.failed else SdrSource.STATE_RUNNING)
|
self.setState(SdrSource.STATE_FAILED if self.failed else SdrSource.STATE_RUNNING)
|
||||||
|
|
||||||
|
def preStart(self):
|
||||||
|
"""
|
||||||
|
override this method in subclasses if there's anything to be done before starting up the actual SDR
|
||||||
|
"""
|
||||||
|
pass
|
||||||
|
|
||||||
def postStart(self):
|
def postStart(self):
|
||||||
|
"""
|
||||||
|
override this method in subclasses if there's things to do after the actual SDR has started up
|
||||||
|
"""
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def isAvailable(self):
|
def isAvailable(self):
|
||||||
|
@ -1,5 +1,10 @@
|
|||||||
from owrx.command import Option
|
from owrx.command import Option
|
||||||
from .direct import DirectSource
|
from .direct import DirectSource
|
||||||
|
from subprocess import Popen
|
||||||
|
|
||||||
|
import logging
|
||||||
|
|
||||||
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
class FifiSdrSource(DirectSource):
|
class FifiSdrSource(DirectSource):
|
||||||
@ -14,3 +19,19 @@ class FifiSdrSource(DirectSource):
|
|||||||
|
|
||||||
def getFormatConversion(self):
|
def getFormatConversion(self):
|
||||||
return ["csdr convert_s16_f", "csdr gain_ff 30"]
|
return ["csdr convert_s16_f", "csdr gain_ff 30"]
|
||||||
|
|
||||||
|
def sendRockProgFrequency(self, frequency):
|
||||||
|
process = Popen(["echo", "--vco", "-w", "--", "freq={}".format(frequency / 1E6)])
|
||||||
|
process.communicate()
|
||||||
|
rc = process.wait()
|
||||||
|
if rc != 0:
|
||||||
|
logger.warning("rockprog failed to set frequency; rc=%i", rc)
|
||||||
|
|
||||||
|
def preStart(self):
|
||||||
|
values = self.getCommandValues()
|
||||||
|
self.sendRockProgFrequency(values["tuner_freq"])
|
||||||
|
|
||||||
|
def onPropertyChange(self, name, value):
|
||||||
|
if name != "center_freq":
|
||||||
|
return
|
||||||
|
self.sendRockProgFrequency(value)
|
||||||
|
Loading…
Reference in New Issue
Block a user