add more device-specific options
This commit is contained in:
		@@ -1,4 +1,4 @@
 | 
				
			|||||||
from owrx.form import Input, CheckboxInput, DropdownInput, DropdownEnum
 | 
					from owrx.form import Input, CheckboxInput, DropdownInput, DropdownEnum, TextInput
 | 
				
			||||||
from owrx.form.converter import OptionalConverter, EnumConverter
 | 
					from owrx.form.converter import OptionalConverter, EnumConverter
 | 
				
			||||||
from owrx.soapy import SoapySettings
 | 
					from owrx.soapy import SoapySettings
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -155,3 +155,10 @@ class DirectSamplingInput(DropdownInput):
 | 
				
			|||||||
                defaultFormValue=DirectSamplingOptions.DIRECT_SAMPLING_OFF.name,
 | 
					                defaultFormValue=DirectSamplingOptions.DIRECT_SAMPLING_OFF.name,
 | 
				
			||||||
            ),
 | 
					            ),
 | 
				
			||||||
        )
 | 
					        )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class RemoteInput(TextInput):
 | 
				
			||||||
 | 
					    def __init__(self):
 | 
				
			||||||
 | 
					        super().__init__(
 | 
				
			||||||
 | 
					            "remote", "Remote IP and Port", infotext="Remote hostname or IP and port to connect to. Format = IP:Port"
 | 
				
			||||||
 | 
					        )
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,7 @@
 | 
				
			|||||||
from owrx.source.soapy import SoapyConnectorSource, SoapyConnectorDeviceDescription
 | 
					from owrx.source.soapy import SoapyConnectorSource, SoapyConnectorDeviceDescription
 | 
				
			||||||
from owrx.form import Input
 | 
					from owrx.form import Input, CheckboxInput
 | 
				
			||||||
from owrx.form.device import BiasTeeInput
 | 
					from owrx.form.device import BiasTeeInput
 | 
				
			||||||
 | 
					from owrx.form.converter import OptionalConverter
 | 
				
			||||||
from typing import List
 | 
					from typing import List
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -21,4 +22,17 @@ class AirspySource(SoapyConnectorSource):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
class AirspyDeviceDescription(SoapyConnectorDeviceDescription):
 | 
					class AirspyDeviceDescription(SoapyConnectorDeviceDescription):
 | 
				
			||||||
    def getInputs(self) -> List[Input]:
 | 
					    def getInputs(self) -> List[Input]:
 | 
				
			||||||
        return self.mergeInputs(super().getInputs(), [BiasTeeInput()])
 | 
					        return self.mergeInputs(
 | 
				
			||||||
 | 
					            super().getInputs(),
 | 
				
			||||||
 | 
					            [
 | 
				
			||||||
 | 
					                BiasTeeInput(),
 | 
				
			||||||
 | 
					                CheckboxInput(
 | 
				
			||||||
 | 
					                    "bitpack",
 | 
				
			||||||
 | 
					                    "",
 | 
				
			||||||
 | 
					                    checkboxText="Enable bit-packing",
 | 
				
			||||||
 | 
					                    infotext="Packs two 12-bit samples into 3 bytes."
 | 
				
			||||||
 | 
					                    + " Lowers USB bandwidth consumption, increases CPU load",
 | 
				
			||||||
 | 
					                    converter=OptionalConverter(defaultFormValue=False),
 | 
				
			||||||
 | 
					                ),
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
 | 
					        )
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,8 @@
 | 
				
			|||||||
from owrx.source.connector import ConnectorSource, ConnectorDeviceDescription
 | 
					from owrx.source.connector import ConnectorSource, ConnectorDeviceDescription
 | 
				
			||||||
from owrx.command import Flag, Option, Argument
 | 
					from owrx.command import Flag, Option, Argument
 | 
				
			||||||
 | 
					from owrx.form import Input
 | 
				
			||||||
 | 
					from owrx.form.device import RemoteInput
 | 
				
			||||||
 | 
					from typing import List
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class RtlTcpSource(ConnectorSource):
 | 
					class RtlTcpSource(ConnectorSource):
 | 
				
			||||||
@@ -19,4 +22,5 @@ class RtlTcpSource(ConnectorSource):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class RtlTcpDeviceDescription(ConnectorDeviceDescription):
 | 
					class RtlTcpDeviceDescription(ConnectorDeviceDescription):
 | 
				
			||||||
    pass
 | 
					    def getInputs(self) -> List[Input]:
 | 
				
			||||||
 | 
					        return self.mergeInputs(super().getInputs(), [RemoteInput()])
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,9 @@
 | 
				
			|||||||
from owrx.source.connector import ConnectorSource, ConnectorDeviceDescription
 | 
					from owrx.source.connector import ConnectorSource, ConnectorDeviceDescription
 | 
				
			||||||
from owrx.command import Argument, Flag, Option
 | 
					from owrx.command import Argument, Flag, Option
 | 
				
			||||||
 | 
					from owrx.form import Input, DropdownInput, DropdownEnum, CheckboxInput
 | 
				
			||||||
 | 
					from owrx.form.device import RemoteInput
 | 
				
			||||||
 | 
					from owrx.form.converter import OptionalConverter
 | 
				
			||||||
 | 
					from typing import List
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class RundsSource(ConnectorSource):
 | 
					class RundsSource(ConnectorSource):
 | 
				
			||||||
@@ -18,5 +22,30 @@ class RundsSource(ConnectorSource):
 | 
				
			|||||||
        )
 | 
					        )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class ProtocolOptions(DropdownEnum):
 | 
				
			||||||
 | 
					    PROTOCOL_EB200 = ("eb200", "EB200 protocol")
 | 
				
			||||||
 | 
					    PROTOCOL_AMMOS = ("ammos", "Ammos protocol")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def __new__(cls, *args, **kwargs):
 | 
				
			||||||
 | 
					        value, description = args
 | 
				
			||||||
 | 
					        obj = object.__new__(cls)
 | 
				
			||||||
 | 
					        obj._value_ = value
 | 
				
			||||||
 | 
					        obj.description = description
 | 
				
			||||||
 | 
					        return obj
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def __str__(self):
 | 
				
			||||||
 | 
					        return self.description
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class RundsDeviceDescription(ConnectorDeviceDescription):
 | 
					class RundsDeviceDescription(ConnectorDeviceDescription):
 | 
				
			||||||
    pass
 | 
					    def getInputs(self) -> List[Input]:
 | 
				
			||||||
 | 
					        return self.mergeInputs(
 | 
				
			||||||
 | 
					            super().getInputs(),
 | 
				
			||||||
 | 
					            [
 | 
				
			||||||
 | 
					                RemoteInput(),
 | 
				
			||||||
 | 
					                DropdownInput("protocol", "Protocol", ProtocolOptions),
 | 
				
			||||||
 | 
					                CheckboxInput(
 | 
				
			||||||
 | 
					                    "long", "", "Use 32-bit sample size (LONG)", converter=OptionalConverter(defaultFormValue=False)
 | 
				
			||||||
 | 
					                ),
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
 | 
					        )
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,4 +1,7 @@
 | 
				
			|||||||
from owrx.source.soapy import SoapyConnectorSource, SoapyConnectorDeviceDescription
 | 
					from owrx.source.soapy import SoapyConnectorSource, SoapyConnectorDeviceDescription
 | 
				
			||||||
 | 
					from owrx.form import Input, TextInput
 | 
				
			||||||
 | 
					from owrx.form.device import RemoteInput
 | 
				
			||||||
 | 
					from typing import List
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class SoapyRemoteSource(SoapyConnectorSource):
 | 
					class SoapyRemoteSource(SoapyConnectorSource):
 | 
				
			||||||
@@ -18,4 +21,13 @@ class SoapyRemoteSource(SoapyConnectorSource):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class SoapyRemoteDeviceDescription(SoapyConnectorDeviceDescription):
 | 
					class SoapyRemoteDeviceDescription(SoapyConnectorDeviceDescription):
 | 
				
			||||||
    pass
 | 
					    def getInputs(self) -> List[Input]:
 | 
				
			||||||
 | 
					        return self.mergeInputs(
 | 
				
			||||||
 | 
					            super().getInputs(),
 | 
				
			||||||
 | 
					            [
 | 
				
			||||||
 | 
					                RemoteInput(),
 | 
				
			||||||
 | 
					                TextInput(
 | 
				
			||||||
 | 
					                    "remote_driver", "Remote driver", infotext="SoapySDR driver to be used on the remote SoapySDRServer"
 | 
				
			||||||
 | 
					                ),
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
 | 
					        )
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user