Esempio n. 1
0
 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"),
     ]
Esempio n. 2
0
 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"),
     ]
Esempio n. 3
0
 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,
         ),
     ]
Esempio n. 4
0
 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",
         ),
     ]
Esempio n. 5
0
 def getSections(self):
     return [
         Section(
             "Background decoding",
             CheckboxInput(
                 "services_enabled",
                 "Enable background decoding services",
             ),
             ServicesCheckboxInput("services_decoders", "Enabled services"),
         ),
     ]
Esempio n. 6
0
 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",
         ),
     ]
Esempio n. 7
0
 def getInputs(self) -> List[Input]:
     return super().getInputs() + [
         RemoteInput(),
         DropdownInput("protocol", "Protocol", ProtocolOptions),
         CheckboxInput("long", "Use 32-bit sample size (LONG)"),
     ]
Esempio n. 8
0
 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"),
         ),
     ]
Esempio n. 9
0
 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"),
         ),
     ]
Esempio n. 10
0
 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",
             ),
         ),
     ]