add rockprog interface
This commit is contained in:
@ -1,5 +1,10 @@
|
||||
from owrx.command import Option
|
||||
from .direct import DirectSource
|
||||
from subprocess import Popen
|
||||
|
||||
import logging
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class FifiSdrSource(DirectSource):
|
||||
@ -13,4 +18,20 @@ class FifiSdrSource(DirectSource):
|
||||
return super().getEventNames() + ["device"]
|
||||
|
||||
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)
|
||||
|
Reference in New Issue
Block a user