mirror of https://github.com/mfkiwl/krakensdr_pr
211 lines
7.8 KiB
Python
211 lines
7.8 KiB
Python
import dash_html_components as html
|
|
import dash_bootstrap_components as dbc
|
|
|
|
dsp_config_tooltips = html.Div([
|
|
# Antenna arrangement selection
|
|
dbc.Tooltip([
|
|
html.P("ULA - Uniform Linear Array"),
|
|
html.P("Antenna elements placed on a line with having equal distances between each other"),
|
|
html.P("UCA - Uniform Circular Array"),
|
|
html.P("Antenna elements are placed on circle equaly distributed on 360°")],
|
|
target="label_ant_arrangement",
|
|
placement="bottom",
|
|
className="tooltip"
|
|
),
|
|
# Antenna Spacing
|
|
# dbc.Tooltip([
|
|
# html.P("When ULA is selected: Spacing between antenna elements"),
|
|
# html.P("When UCA is selected: Radius of the circle on which the elements are placed")],
|
|
# target="label_ant_spacing",
|
|
# placement="bottom",
|
|
# className="tooltip"
|
|
# ),
|
|
# Enable F-B averaging
|
|
dbc.Tooltip([
|
|
html.P("Forward-backward averegaing improves the performance of DoA estimation in multipath environment"),
|
|
html.P("(Available only for ULA antenna systems)")],
|
|
target="label_en_fb_avg",
|
|
placement="bottom",
|
|
className="tooltip"
|
|
),
|
|
])
|
|
|
|
daq_ini_config_tooltips = html.Div([
|
|
# DAQ buffer size
|
|
dbc.Tooltip([
|
|
html.P("Buffer size of the realtek driver")],
|
|
target="label_daq_buffer_size",
|
|
placement="bottom",
|
|
className="tooltip"
|
|
),
|
|
# Sampling frequency
|
|
dbc.Tooltip([
|
|
html.P("Raw - ADC sampling frequency of the realtek chip")],
|
|
target="label_sample_rate",
|
|
placement="bottom",
|
|
className="tooltip"
|
|
),
|
|
# Enable noise source control
|
|
dbc.Tooltip([
|
|
html.P("Enables the utilization of the built-in noise source for calibration")],
|
|
target="label_en_noise_source_ctr",
|
|
placement="bottom",
|
|
className="tooltip"
|
|
),
|
|
# Enable squelch mode
|
|
dbc.Tooltip([
|
|
html.P("Enable DAQ-side squelch to capture burst like signals - NOTE DISABLED IN THIS VERSION, THIS VERSION USES DSP SIDE SQUELCH ONLY")],
|
|
target="label_en_squelch",
|
|
placement="bottom",
|
|
className="tooltip"
|
|
),
|
|
# Squelch threshold
|
|
dbc.Tooltip([
|
|
html.P("Amplitude threshold used for the squelch feature."),
|
|
html.P("Should take values on range: 0...1"),
|
|
html.P("When set to zero the squelch is bypassed")],
|
|
target="label_squelch_init_threshold",
|
|
placement="bottom",
|
|
className="tooltip"
|
|
),
|
|
# CPI size
|
|
dbc.Tooltip([
|
|
html.P("Length of the Coherent Processing Interval (CPI) after decimation")],
|
|
target="label_cpi_size",
|
|
placement="bottom",
|
|
className="tooltip"
|
|
),
|
|
# Decimation raito
|
|
dbc.Tooltip([
|
|
html.P("Decimation factor")],
|
|
target="label_decimation_ratio",
|
|
placement="bottom",
|
|
className="tooltip"
|
|
),
|
|
# FIR relative bandwidth
|
|
dbc.Tooltip([
|
|
html.P("Anti-aliasing filter bandwith after decimation"),
|
|
html.P("Should take values on range: (0, 1]"),
|
|
html.P("E.g.: ADC sampling frequency: 1 MHz (IQ!) , Decimation ratio: 2, FIR relative bandwith:0.25"),
|
|
html.P("Resulting passband bandwidth: 125 kHz ")],
|
|
target="label_fir_relative_bw",
|
|
placement="bottom",
|
|
className="tooltip"
|
|
),
|
|
# FIR tap size
|
|
dbc.Tooltip([
|
|
html.P("Anti-aliasing FIR filter tap size - Do not set too large, or CPU utilization will be 100%"),
|
|
html.P("Should be greater than the decimation ratio")],
|
|
target="label_fir_tap_size",
|
|
placement="bottom",
|
|
className="tooltip"
|
|
),
|
|
# FIR tap size
|
|
dbc.Tooltip([
|
|
html.P("Window function type for designing the anti-aliasing FIR filter"),
|
|
html.P("https://en.wikipedia.org/wiki/Window_function")],
|
|
target="label_fir_window",
|
|
placement="bottom",
|
|
className="tooltip"
|
|
),
|
|
# Enable filter reset
|
|
dbc.Tooltip([
|
|
html.P("If enabled, the memory of the anti-aliasing FIR filter is reseted at the begining of every new CPI")],
|
|
target="label_en_filter_reset",
|
|
placement="bottom",
|
|
className="tooltip"
|
|
),
|
|
# Correlation size
|
|
dbc.Tooltip([
|
|
html.P("Number of samples used for the calibration procedure (sample delay and IQ compensation)")],
|
|
target="label_correlation_size",
|
|
placement="bottom",
|
|
className="tooltip"
|
|
),
|
|
# Standard channel index
|
|
dbc.Tooltip([
|
|
html.P("The selected channel is used as a reference for the IQ compensation")],
|
|
target="label_std_ch_index",
|
|
placement="bottom",
|
|
className="tooltip"
|
|
),
|
|
# Enable IQ calibration
|
|
dbc.Tooltip([
|
|
html.P("Enables to compensate the amplitude and phase differences of the receiver channels")],
|
|
target="label_en_iq_calibration",
|
|
placement="bottom",
|
|
className="tooltip"
|
|
),
|
|
# Gain lock interval
|
|
dbc.Tooltip([
|
|
html.P("Minimum number of stable frames before terminating the gain tuning procedure")],
|
|
target="label_gain_lock_interval",
|
|
placement="bottom",
|
|
className="tooltip"
|
|
),
|
|
# Require track lock intervention
|
|
dbc.Tooltip([
|
|
html.P("When enabled the DAQ firmware waits for manual intervention during the calibraiton procedure"),
|
|
html.P("Should be used only for hardave version 1.0")],
|
|
target="label_require_track_lock",
|
|
placement="bottom",
|
|
className="tooltip"
|
|
),
|
|
# Amplitude calibraiton mode
|
|
dbc.Tooltip([
|
|
html.P("Amplitude difference compensation method applied as part of the IQ compensation"),
|
|
html.P("default: Amplitude differences are estimated by calculating the cross-correlations of the channels"),
|
|
html.P("disabled: Amplitude differences are not compensated"),
|
|
html.P("channel_power: Ampltiude compensation is set in a way to achieve equal channel powers")],
|
|
target="label_amplitude_calibration_mode",
|
|
placement="bottom",
|
|
className="tooltip"
|
|
),
|
|
dbc.Tooltip([
|
|
html.P("When periodic calibration track mode is selected the firmware regularly turn on the noise source for a short burst to\
|
|
check whether the IQ calibration is still valid or not. In case the calibrated state is lost, the firmware automatically\
|
|
initiates a reclaibration procedure")],
|
|
target="label_calibration_track_mode",
|
|
placement="bottom",
|
|
className="tooltip"
|
|
),
|
|
|
|
# Calibration frame interval
|
|
dbc.Tooltip([
|
|
html.P("Number of data frames between two consecutive calibration burst. Used when periodic calibration mode is selected")],
|
|
target="label_calibration_frame_interval",
|
|
placement="bottom",
|
|
className="tooltip"
|
|
),
|
|
# Calibration frame burst size
|
|
dbc.Tooltip([
|
|
html.P("Number of calibration frames generated in the periodic calibration mode")],
|
|
target="label_calibration_frame_burst_size",
|
|
placement="bottom",
|
|
className="tooltip"
|
|
),
|
|
# Amplitude tolerance
|
|
dbc.Tooltip([
|
|
html.P("Maximum allowed amplitude difference between the receiver channels")],
|
|
target="label_amplitude_tolerance",
|
|
placement="bottom",
|
|
className="tooltip"
|
|
),
|
|
# Phase tolerance
|
|
dbc.Tooltip([
|
|
html.P("Maximum allowed phase difference between the receiver channels")],
|
|
target="label_phase_tolerance",
|
|
placement="bottom",
|
|
className="tooltip"
|
|
),
|
|
# Maximum sync fails
|
|
dbc.Tooltip([
|
|
html.P("Maximum allowed consecutive IQ difference check failures before initiating a recalibration")],
|
|
target="label_max_sync_fails",
|
|
placement="bottom",
|
|
className="tooltip"
|
|
),
|
|
])
|
|
|
|
|