sdrangel/plugins/samplesource/fileinput
Jon Beniston ee8b8ade88 Device GUIs: Constain window size via minimumSize/maximumSize, rather than handling resizeEvent. Add maximum button. Hide size buttons when window size is fixed 2022-11-09 15:53:44 +00:00
..
CMakeLists.txt Install debug symbols on Windows for debug builds 2022-02-06 12:56:58 +00:00
fileinput.cpp FileInput: Make settings assignments atomic. Part of #1329 2022-10-23 20:33:51 +02:00
fileinput.h FileInput: Make settings assignments atomic. Part of #1329 2022-10-23 20:33:51 +02:00
fileinputgui.cpp Device GUIs: Constain window size via minimumSize/maximumSize, rather than handling resizeEvent. Add maximum button. Hide size buttons when window size is fixed 2022-11-09 15:53:44 +00:00
fileinputgui.h Device GUIs: Constain window size via minimumSize/maximumSize, rather than handling resizeEvent. Add maximum button. Hide size buttons when window size is fixed 2022-11-09 15:53:44 +00:00
fileinputgui.ui Massive UI revamping (v7): fixed devices .ui files to correct display wwhen creating device. Part of #1209 2022-04-27 02:06:17 +02:00
fileinputplugin.cpp Updated versions and changelogs 2022-11-01 23:51:06 +01:00
fileinputplugin.h Avoid global QString init in plugins 2020-11-22 04:06:32 +01:00
fileinputsettings.cpp FileInput: Make settings assignments atomic. Part of #1329 2022-10-23 20:33:51 +02:00
fileinputsettings.h FileInput: Make settings assignments atomic. Part of #1329 2022-10-23 20:33:51 +02:00
fileinputwebapiadapter.cpp Fixed wrong structure being used in some sample source and sink plugins web API adapters. Fixes #842 2021-04-15 15:30:29 +02:00
fileinputwebapiadapter.h REST API: config: GET (11). Support of the rest of devices 2019-08-04 20:24:44 +02:00
fileinputworker.cpp removed asserts 2020-11-04 21:51:55 +01:00
fileinputworker.h File Input: refactored FileInputThread to FileInputWorker object moved to thread (contribution from Vort). Fixes #562 2020-07-11 06:45:16 +02:00
readme.md Massive UI revamping (v7): implemented device common settings from top bar and added documentation on device windows top and bottom bars 2022-04-17 01:31:50 +02:00

readme.md

File 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 plugin supports SDRangel's own .sdriq file format as well as signed 16-bit PCM, 2 channel .wav files (including support for optional auxi headers, containing centre frequency).

An .sdriq 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

The top and bottom bars of the device window are described here

File input plugin GUI

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 an extension of .sdriq or .wav. 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: Playback acceleration

Use this combo to select play back acceleration to values of 1 (no acceleration), 2, 5, 10, 20, 50, 100, 200, 500, 1k (1000) times. This is useful on long recordings used in conjunction with the spectrum "Max" averaging mode in order to see the waterfall over a long period. Thus the waterfall will be filled much faster.

☞ Note that this control is enabled only in paused mode.

⚠ The result when using channel plugins with acceleration is unpredictable. Use this tool to locate your signal of interest then play at normal speed to get proper demodulation or decoding.

13: 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.

14: 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.