acebrianjuan / gnss-sdr-monitor

A graphical user interface to monitor the GNSS-SDR status in real time
GNU General Public License v3.0
85 stars 38 forks source link

Once gnss-sdr Position fix is established, gnss-sdr-monitor stops responding #20

Open ampledata opened 2 years ago

ampledata commented 2 years ago

Hi, First, thanks for this tool, I'm really looking forward to using it.

I'm able to stream data from gnss-sdr to gnss-sdr-monitor, but once a Position fix is established, the gnss-sdr-monitor windows stops responding. I can see sat data, etc in the window, but that no longer updates, and the alt/lat/lon fields are never filled. Only fix is to stop gnss-sdr, at which point gnss-sdr-monitor starts responding again. I've tried to change the buffer size from 50/500/1000 to no avail. I've also enabled throttling on gnss-sdr.

Steps to reproduce: 1) Configure gnss-sdr to stream into gnss-sdr-monitor (per the docs). 2) Start gnss-sdr-monitor 3) Start gnss-sdr

Expected result: 1) gnss-sdr-monitor should display sat data received from gnss-sdr. 2) gnss-sdr-monitor should display position fix data from gnss-sdr (once position fix is established).

Actual result: 1) gnss-sdr-monitor monitor displays sat data, but not position fix data. 2) gnss-sdr-monitor 'locks up' until gnss-sdr exits.

Here's my gnss-sdr-monitor config file:

[Main_Window]
pos=@Point(0 0)
size=@Size(1400 600)

[Preferences_Dialog]
buffer_size=1000
port_gnss_synchro=1111
port_monitor_pvt=1112

[TelecommandWidget]
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\x13\0\0\x3\xc4\0\0\x1\xad\0\0\0\0\0\0\0\x13\0\0\x3\xc4\0\0\x1\xad\0\0\0\0\0\0\0\0\a\x80\0\0\0\0\0\0\0\x13\0\0\x3\xc4\0\0\x1\xad)

[tableView]
column\1\width=100
column\10\width=100
column\11\width=376
column\2\width=100
column\3\width=100
column\4\width=100
column\5\width=100
column\6\width=100
column\7\width=100
column\8\width=100
column\9\width=100
column\size=11

And my gnss-sdr config (I cargo-culted most of this from the gnss-sdr website):

[GNSS-SDR]
GNSS-SDR.telecommand_enabled=true
GNSS-SDR.telecommand_tcp_port=3333

;######### GLOBAL OPTIONS ##################
GNSS-SDR.internal_fs_sps=2000000

;######### SIGNAL_SOURCE CONFIG ############
SignalSource.implementation=Osmosdr_Signal_Source
SignalSource.item_type=gr_complex
SignalSource.sampling_frequency=2000000
SignalSource.freq=1575420000
SignalSource.gain=40
SignalSource.rf_gain=40
SignalSource.if_gain=30
SignalSource.AGC_enabled=false
SignalSource.samples=0
SignalSource.repeat=false
;# Next line enables the internal HackRF One bias (3.3 VDC)
SignalSource.osmosdr_args=hackrf,bias=0
SignalSource.enable_throttle_control=true
SignalSource.dump=false
SignalSource.dump_filename=./signal_source.dat

;######### SIGNAL_CONDITIONER CONFIG ############
SignalConditioner.implementation=Signal_Conditioner

;######### DATA_TYPE_ADAPTER CONFIG ############
DataTypeAdapter.implementation=Pass_Through

;######### INPUT_FILTER CONFIG ############
InputFilter.implementation=Freq_Xlating_Fir_Filter
InputFilter.decimation_factor=1
InputFilter.input_item_type=gr_complex
InputFilter.output_item_type=gr_complex
InputFilter.taps_item_type=float
InputFilter.number_of_taps=5
InputFilter.number_of_bands=2
InputFilter.band1_begin=0.0
InputFilter.band1_end=0.85
InputFilter.band2_begin=0.9
InputFilter.band2_end=1.0
InputFilter.ampl1_begin=1.0
InputFilter.ampl1_end=1.0
InputFilter.ampl2_begin=0.0
InputFilter.ampl2_end=0.0
InputFilter.band1_error=1.0
InputFilter.band2_error=1.0
InputFilter.filter_type=bandpass
InputFilter.grid_density=16
InputFilter.dump=false
InputFilter.dump_filename=../data/input_filter.dat

;######### RESAMPLER CONFIG ############
Resampler.implementation=Pass_Through

;######### CHANNELS GLOBAL CONFIG ############
Channels_1C.count=8
Channels.in_acquisition=1

;######### ACQUISITION GLOBAL CONFIG ############
Acquisition_1C.implementation=GPS_L1_CA_PCPS_Acquisition
Acquisition_1C.item_type=gr_complex
Acquisition_1C.coherent_integration_time_ms=1
Acquisition_1C.pfa=0.01
Acquisition_1C.doppler_max=5000
Acquisition_1C.doppler_step=250
Acquisition_1C.max_dwells=1
Acquisition_1C.dump=false
Acquisition_1C.dump_filename=./acq_dump.dat

;######### TRACKING GLOBAL CONFIG ############
Tracking_1C.implementation=GPS_L1_CA_DLL_PLL_Tracking
Tracking_1C.item_type=gr_complex
Tracking_1C.extend_correlation_symbols=10
Tracking_1C.early_late_space_chips=0.5
Tracking_1C.early_late_space_narrow_chips=0.15
Tracking_1C.pll_bw_hz=40
Tracking_1C.dll_bw_hz=2.0
Tracking_1C.pll_bw_narrow_hz=5.0
Tracking_1C.dll_bw_narrow_hz=1.50
Tracking_1C.fll_bw_hz=10
Tracking_1C.enable_fll_pull_in=true
Tracking_1C.enable_fll_steady_state=false
Tracking_1C.dump=false
Tracking_1C.dump_filename=tracking_ch_

;######### TELEMETRY DECODER GPS CONFIG ############
TelemetryDecoder_1C.implementation=GPS_L1_CA_Telemetry_Decoder
TelemetryDecoder_1C.dump=false

;######### OBSERVABLES CONFIG ############
Observables.implementation=Hybrid_Observables
Observables.dump=false
Observables.dump_filename=./observables.dat

;######### PVT CONFIG ############
PVT.implementation=RTKLIB_PVT
PVT.positioning_mode=Single
PVT.output_rate_ms=100
PVT.display_rate_ms=500
PVT.iono_model=Broadcast
PVT.trop_model=Saastamoinen
PVT.flag_rtcm_server=true
PVT.flag_rtcm_tty_port=false
PVT.rtcm_dump_devname=/dev/pts/1
PVT.rtcm_tcp_port=2101
PVT.rtcm_MT1019_rate_ms=5000
PVT.rtcm_MT1077_rate_ms=1000
PVT.rinex_version=2

PVT.enable_monitor=true
PVT.enable_protobuf=true
PVT.monitor_client_addresses=127.0.0.1
PVT.monitor_udp_port=1112

Monitor.enable_monitor=true
Monitor.enable_protobuf=true
Monitor.decimation_factor=1
Monitor.client_addresses=127.0.0.1
Monitor.udp_port=1111
ampledata commented 2 years ago

Bumping the buffers up to 5000 fends off the 'freeze' problem for a little while, still happens eventually, still not showing lat/lon from fix however. Will report back if that changes.

vladisslav2011 commented 2 years ago

Hello. Your machine is not fast enough. Try setting Monitor.decimation_factor to 4 at least. And enable PVT clock correction PVT.enable_rx_clock_correction=true.