def getInputs(self) -> List[Input]: return super().getInputs() + [ DropdownInput("attenuator", "Attenuator", options=AttenuatorOptions), CheckboxInput("adc_preamp", "Activate ADC preamp"), CheckboxInput("adc_dither", "Enable ADC dithering"), CheckboxInput("wideband", "Disable analog filters"), ]
def getInputs(self) -> List[Input]: return [ CheckboxInput("enabled", "Enable this device", converter=OptionalConverter(defaultFormValue=True)), GainInput("rf_gain", "Device gain", self.hasAgc()), NumberInput( "ppm", "Frequency correction", append="ppm", ), CheckboxInput( "always-on", "Keep device running at all times", infotext="Prevents shutdown of the device when idle. Useful for devices with unreliable startup.", ), CheckboxInput( "services", "Run background services on this device", ), ExponentialInput( "lfo_offset", "Oscillator offset", "Hz", infotext="Use this when the actual receiving frequency differs from the frequency to be tuned on the" + " device. <br/> Formula: Center frequency + oscillator offset = sdr tune frequency", ), WaterfallLevelsInput("waterfall_levels", "Waterfall levels"), SchedulerInput("scheduler", "Scheduler"), ExponentialInput("center_freq", "Center frequency", "Hz"), ExponentialInput("samp_rate", "Sample rate", "S/s"), ExponentialInput("start_freq", "Initial frequency", "Hz"), ModesInput("start_mod", "Initial modulation"), NumberInput("initial_squelch_level", "Initial squelch level", append="dBFS"), ]
def getInputs(self) -> List[Input]: return super().getInputs() + [ BiasTeeInput(), CheckboxInput( "rf_notch", "Enable RF notch filter", ), CheckboxInput( "dab_notch", "Enable DAB notch filter", ), DropdownInput( "if_mode", "IF Mode", IfModeOptions, ), ]
def getInputs(self) -> List[Input]: return super().getInputs() + [ BiasTeeInput(), CheckboxInput( "bitpack", "Enable bit-packing", infotext="Packs two 12-bit samples into 3 bytes." + " Lowers USB bandwidth consumption, increases CPU load", ), ]
def getSections(self): return [ Section( "Background decoding", CheckboxInput( "services_enabled", "Enable background decoding services", ), ServicesCheckboxInput("services_decoders", "Enabled services"), ), ]
def getInputs(self) -> List[Input]: return super().getInputs() + [ NumberInput( "rtltcp_compat", "Port for rtl_tcp compatible data", infotext="Activate an rtl_tcp compatible interface on the port number specified.<br />" + "Note: Port is only available on the local machine, not on the network.<br />" + "Note: IQ data may be degraded by the downsampling process to 8 bits.", ), CheckboxInput( "iqswap", "Swap I and Q channels", infotext="Swapping inverts the spectrum, so this is useful in combination with an inverting mixer", ), ]
def getInputs(self) -> List[Input]: return super().getInputs() + [ RemoteInput(), DropdownInput("protocol", "Protocol", ProtocolOptions), CheckboxInput("long", "Use 32-bit sample size (LONG)"), ]
def getSections(self): return [ Section( "Demodulator settings", NumberInput( "squelch_auto_margin", "Auto-Squelch threshold", infotext= "Offset to be added to the current signal level when using the auto-squelch", append="dB", ), DropdownInput( "wfm_deemphasis_tau", "Tau setting for WFM (broadcast FM) deemphasis", WfmTauValues, infotext= 'See <a href="https://en.wikipedia.org/wiki/FM_broadcasting#Pre-emphasis_and_de-emphasis"' + ' target="_blank">this Wikipedia article</a> for more information', ), ), Section( "Digital voice", TextInput( "digital_voice_codecserver", "Codecserver address", infotext= "Address of a remote codecserver instance (name[:port]). Leave empty to use local" + " codecserver", converter=OptionalConverter(), ), CheckboxInput( "digital_voice_dmr_id_lookup", 'Enable lookup of DMR ids in the <a href="https://www.radioid.net/" target="_blank">' + "radioid</a> database to show callsigns and names", ), CheckboxInput( "digital_voice_nxdn_id_lookup", 'Enable lookup of NXDN ids in the <a href="https://www.radioid.net/" target="_blank">' + "radioid</a> database to show callsigns and names", ), ), Section( "Digimodes", NumberInput("digimodes_fft_size", "Digimodes FFT size", append="bins"), ), Section( "Decoding settings", NumberInput("decoding_queue_workers", "Number of decoding workers"), NumberInput("decoding_queue_length", "Maximum length of decoding job queue"), NumberInput( "wsjt_decoding_depth", "Default WSJT decoding depth", infotext= "A higher decoding depth will allow more results, but will also consume more cpu", ), WsjtDecodingDepthsInput( "wsjt_decoding_depths", "Individual decoding depths", ), NumberInput( "js8_decoding_depth", "Js8Call decoding depth", infotext= "A higher decoding depth will allow more results, but will also consume more cpu", ), Js8ProfileCheckboxInput("js8_enabled_profiles", "Js8Call enabled modes"), MultiCheckboxInput( "fst4_enabled_intervals", "Enabled FST4 intervals", [ Option(v, "{}s".format(v)) for v in Fst4Profile.availableIntervals ], ), MultiCheckboxInput( "fst4w_enabled_intervals", "Enabled FST4W intervals", [ Option(v, "{}s".format(v)) for v in Fst4wProfile.availableIntervals ], ), Q65ModeMatrix("q65_enabled_combinations", "Enabled Q65 Mode combinations"), ), ]
def getSections(self): return [ Section( "Demodulator settings", NumberInput( "squelch_auto_margin", "Auto-Squelch threshold", infotext= "Offset to be added to the current signal level when using the auto-squelch", append="dB", ), DropdownInput( "wfm_deemphasis_tau", "Tau setting for WFM (broadcast FM) deemphasis", WfmTauValues, infotext= 'See <a href="https://en.wikipedia.org/wiki/FM_broadcasting#Pre-emphasis_and_de-emphasis"' + ' target="_blank">this Wikipedia article</a> for more information', ), ), Section( "Digital voice", NumberInput( "digital_voice_unvoiced_quality", "Quality of unvoiced sounds in synthesized voice", infotext= "Determines the quality, and thus the cpu usage, for the ambe codec used by digital voice" + " modes.<br />If you're running on a Raspberry Pi (up to 3B+) you should leave this set at 1", ), CheckboxInput( "digital_voice_dmr_id_lookup", 'Enable lookup of DMR ids in the <a href="https://www.radioid.net/" target="_blank">' + "radioid</a> database to show callsigns and names", ), ), Section( "Digimodes", NumberInput("digimodes_fft_size", "Digimodes FFT size", append="bins"), ), Section( "Decoding settings", NumberInput("decoding_queue_workers", "Number of decoding workers"), NumberInput("decoding_queue_length", "Maximum length of decoding job queue"), NumberInput( "wsjt_decoding_depth", "Default WSJT decoding depth", infotext= "A higher decoding depth will allow more results, but will also consume more cpu", ), WsjtDecodingDepthsInput( "wsjt_decoding_depths", "Individual decoding depths", ), NumberInput( "js8_decoding_depth", "Js8Call decoding depth", infotext= "A higher decoding depth will allow more results, but will also consume more cpu", ), Js8ProfileCheckboxInput("js8_enabled_profiles", "Js8Call enabled modes"), MultiCheckboxInput( "fst4_enabled_intervals", "Enabled FST4 intervals", [ Option(v, "{}s".format(v)) for v in Fst4Profile.availableIntervals ], ), MultiCheckboxInput( "fst4w_enabled_intervals", "Enabled FST4W intervals", [ Option(v, "{}s".format(v)) for v in Fst4wProfile.availableIntervals ], ), Q65ModeMatrix("q65_enabled_combinations", "Enabled Q65 Mode combinations"), ), ]
def getSections(self): return [ Section( "APRS-IS reporting", CheckboxInput( "aprs_igate_enabled", "Send received APRS data to APRS-IS", infotext= "Due to limits of the APRS-IS network, reporting will only work for background decoders" ), TextInput( "aprs_callsign", "APRS callsign", infotext= "This callsign will be used to send data to the APRS-IS network", ), TextInput("aprs_igate_server", "APRS-IS server"), TextInput("aprs_igate_password", "APRS-IS network password"), CheckboxInput( "aprs_igate_beacon", "Send the receiver position to the APRS-IS network", infotext= "Please check that your receiver location is setup correctly before enabling the beacon", ), DropdownInput( "aprs_igate_symbol", "APRS beacon symbol", AprsBeaconSymbols, ), TextInput( "aprs_igate_comment", "APRS beacon text", infotext= "This text will be sent as APRS comment along with your beacon", converter=OptionalConverter(), ), NumberInput( "aprs_igate_height", "Antenna height", infotext="Antenna height above average terrain (HAAT)", append="m", converter=OptionalConverter(), ), NumberInput( "aprs_igate_gain", "Antenna gain", append="dBi", converter=OptionalConverter(), ), DropdownInput("aprs_igate_dir", "Antenna direction", AprsAntennaDirections), ), Section( "pskreporter settings", CheckboxInput( "pskreporter_enabled", "Enable sending spots to pskreporter.info", ), TextInput( "pskreporter_callsign", "pskreporter callsign", infotext= "This callsign will be used to send spots to pskreporter.info", ), TextInput( "pskreporter_antenna_information", "Antenna information", infotext= "Antenna description to be sent along with spots to pskreporter", converter=OptionalConverter(), ), ), Section( "WSPRnet settings", CheckboxInput( "wsprnet_enabled", "Enable sending spots to wsprnet.org", ), TextInput( "wsprnet_callsign", "wsprnet callsign", infotext= "This callsign will be used to send spots to wsprnet.org", ), ), ]