.. | ||
CMakeLists.txt | ||
filesource.pro | ||
filesourcegui.cpp | ||
filesourcegui.h | ||
filesourcegui.ui | ||
filesourceinput.cpp | ||
filesourceinput.h | ||
filesourceplugin.cpp | ||
filesourceplugin.h | ||
filesourcesettings.cpp | ||
filesourcesettings.h | ||
filesourcethread.cpp | ||
filesourcethread.h | ||
readme.md |
File source input plugin
Introduction
This plugin reads a file of I/Q samples that have been previously saved with the file record button of other sampling source devices. The file starts with a 32 byte header of all unsigned integer of various sizes containing meta data:
Displ. | Bytes | Description |
---|---|---|
0 | 4 | Sample rate in S/s |
4 | 8 | Center frequency in Hz |
12 | 8 | Unix epoch (timestamp) of start |
20 | 4 | Sample size (16 or 24 bits) |
24 | 4 | Filler with zeroes |
28 | 4 | CRC32 of the previous 28 bytes |
The header takes an integer number of 16 (4 bytes) or 24 (8 bytes) bits samples. To calculate CRC it is assumed that bytes are in little endian order.
Interface
1: Start/Stop
Device start / stop button.
- Blue triangle icon: ready to be started
- Green square icon: currently running and can be stopped
- Magenta (or pink) square icon: an error occurred. The file may not be found or this can be a header CRC error or the file is too small (less than the header length). You may stop and choose another file.
2: Stream sample rate
Baseband I/Q sample rate in kS/s. This is the sample rate present in the header.
3: Frequency
This is the center frequency of reception in kHz when the record was taken and written in the header.
4: Open file
Opens a file dialog to select the input file. It expects a default extension of .sdriq
. This button is disabled when the stream is running. You need to pause (button 11) to make it active and thus be able to select another file.
5: File path
Absolute path of the file being read
6: File recorded sample rate
Sample rate of the record in kS/s as written in the header. The reading process is based on this sample rate.
7: Sample size
This is the sample size in bits as written in the header. The reading process is based on this sample size.
8: CRC indicator
Indicates if the header block CRC check has succeeded (green) or failed (red) or undetermined yet (grey). If the header is corrupted you may try to reconstruct a valid header using the rescuesdriq
utility in the folder with the same name. See the readme for details.
9: Current timestamp
This is the timestamp of the current pointer in the file based on the start time, number of samples read and sample rate.
10: Loop
Use this button to read in a loop or read only once
11: Play/pause
This is the play/pause button
12: Relative timestamp and record length
Left is the relative timestamp of the current pointer from the start of the record. Right is the total record time.
13: Current pointer gauge
This represents the position of the current pointer position in the complete recording. It can be used it paused mode to position the current pointer by moving the slider.