gnss-sdr / gnss-sdr

GNSS-SDR, an open-source software-defined GNSS receiver
https://gnss-sdr.org
GNU General Public License v3.0
1.58k stars 579 forks source link

SegFault by using 2 RF channels and Glonass L1/L2 #633

Open nifx opened 2 years ago

nifx commented 2 years ago

gnss_sdr_glonass_l1_l2.txt

Hi all,

first of all, thanks a lot for this amazing tool. I really enjoy using it. Currently, I do some tests with Glonass samples. It is my first multi-frequency configuration. It uses Glonass L1 / L2. Please find the configuration attached.

If I start gnss_sdr 0.0.17 (Docker) with the attached configuration, I get a segfault:

Initializing GNSS-SDR v0.0.17 ... Please wait. Logging will be written at . RF Channels: 2 Processing file ./IqStream, which contains 175383063552 samples (350766127104 bytes) GNSS signal recorded time to be processed: 158.69 [s] Segmentation fault (core dumped)

If I downstrip the configuration to separate L1 and L2 into separate configuration files, both are working. But if I use 2 RF channels, I cannot get it running.

Note: I minimized the number of channels in the attached configuration to get a feeling if I did something wrong here. I also tested with more channels without success.

From the logfiles, I cannot find anything suspicious. Only .INFO is generated, unfortunately without any error messages.

Thanks a lot for any ideas.

BR Nico

jwmelto commented 2 years ago

A File_Signal_Source does not provide two channels of output.

The most likely situation is that you have recorded G1 in one file and G2 in another. Simply specify two File_Signal_Sources as SignalSource0 and SignalSource1

(I should point out that the File_Signal_Source does not support the sampling_frequency attribute, so that does nothing (except perhaps serve as documentation).

You can also use the Multichannel_File_Signal_Source which is similar to two file sources (It allows you to specify any number of files/channels).

nifx commented 2 years ago

Thanks @jwmelto for your feedback. Indeed, I have a high-bandwidth sample file (~550MHz sample rate, complex samples) which contains L1 and L2. But nevertheless, I was able to define 2 signal sources pointing to the same file which is working better, thanks to your hint. Thus, I do not get a segmentation fault with this solution.

But what I don't understand now is the following:

Please find the configuration attached. gnss_sdr_glonass_l1_l2.txt

I played a lot of different combinations of:

I would expect to see tracking and NAV messages in the console output for Glonass L1 and L2. Do you have any insights why this does not seem to work?

nifx commented 2 years ago

I also tried SignalSource_ID vs. Signal_Source_ID The first one is described in the table at https://gnss-sdr.org/docs/sp-blocks/channels/ The last one is used in the example at the bottom of the page. But it makes no difference

nifx commented 2 years ago

I also tried it with Multichannel_File_Signal_Source also in combination with RF_channel_ID in channel assignments. Still no luck

nifx commented 2 years ago

Funny thing is that I get GPS L1 C/A + Glonass L2 C/A running. But when I replace GPS L1 C/A with Glonass L1 C/A, Glonass L2 C/A seems dead.