openwebrx/owrx/source/rtl_tcp.py

43 lines
1.3 KiB
Python

from owrx.source.connector import ConnectorSource, ConnectorDeviceDescription
from owrx.command import Flag, Option, Argument
from owrx.form.input import Input
from owrx.form.input.device import RemoteInput, DirectSamplingInput
from owrx.form.input.validator import Range
from typing import List
class RtlTcpSource(ConnectorSource):
def getCommandMapper(self):
return (
super()
.getCommandMapper()
.setBase("rtl_tcp_connector")
.setMappings(
{
"bias_tee": Flag("-b"),
"direct_sampling": Option("-e"),
"remote": Argument(),
}
)
)
class RtlTcpDeviceDescription(ConnectorDeviceDescription):
def getName(self):
return "RTL-SDR device (via rtl_tcp)"
def getInputs(self) -> List[Input]:
return super().getInputs() + [RemoteInput(), DirectSamplingInput()]
def getDeviceMandatoryKeys(self):
return super().getDeviceMandatoryKeys() + ["remote"]
def getDeviceOptionalKeys(self):
return super().getDeviceOptionalKeys() + ["direct_sampling"]
def getProfileOptionalKeys(self):
return super().getProfileOptionalKeys() + ["direct_sampling"]
def getSampleRateRanges(self) -> List[Range]:
return [Range(250000, 3200000)]