1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2024-11-25 09:18:54 -05:00

File source: added documentation. Bumped version

This commit is contained in:
f4exb 2018-10-09 23:15:59 +02:00
parent 4032d62b3d
commit ef1e9c2b25
11 changed files with 115 additions and 9 deletions

View File

@ -263,7 +263,7 @@ This is the `demoddsd` plugin. At present it can be used to decode the following
It is based on the [DSDcc](https://github.com/f4exb/dsdcc) C++ library which is a rewrite of the original [DSD](https://github.com/szechyjs/dsd) program. So you will need to have DSDcc installed in your system. Please follow instructions in [DSDcc readme](https://github.com/f4exb/dsdcc/blob/master/Readme.md) to build and install DSDcc. If you install it in a custom location say `/opt/install/dsdcc` you will need to add these defines to the cmake command: `-DLIBDSDCC_INCLUDE_DIR=/opt/install/dsdcc/include/dsdcc -DLIBDSDCC_LIBRARIES=/opt/install/dsdcc/lib/libdsdcc.so` It is based on the [DSDcc](https://github.com/f4exb/dsdcc) C++ library which is a rewrite of the original [DSD](https://github.com/szechyjs/dsd) program. So you will need to have DSDcc installed in your system. Please follow instructions in [DSDcc readme](https://github.com/f4exb/dsdcc/blob/master/Readme.md) to build and install DSDcc. If you install it in a custom location say `/opt/install/dsdcc` you will need to add these defines to the cmake command: `-DLIBDSDCC_INCLUDE_DIR=/opt/install/dsdcc/include/dsdcc -DLIBDSDCC_LIBRARIES=/opt/install/dsdcc/lib/libdsdcc.so`
If you have one or more serial devices interfacing the AMBE3000 chip in packet mode you can use them to decode AMBE voice frames. For that purpose you will need to compile with [SerialDV](https://github.com/f4exb/serialDV) support. Please refer to this project Readme.md to compile and install SerialDV. If you install it in a custom location say `/opt/install/serialdv` you will need to add these defines to the cmake command: `-DLIBSERIALDV_INCLUDE_DIR=/opt/install/serialdv/include/serialdv -DLIBSERIALDV_LIBRARY=/opt/install/serialdv/lib/libserialdv.so` Also your user must be a member of group `dialout` to be able to use the dongle. If you have one or more serial devices interfacing the AMBE3000 chip in packet mode you can use them to decode AMBE voice frames. For that purpose you will need to compile with [SerialDV](https://github.com/f4exb/serialDV) support. Please refer to this project Readme.md to compile and install SerialDV. If you install it in a custom location say `/opt/install/serialdv` you will need to add these defines to the cmake command: `-DLIBSERIALDV_INCLUDE_DIR=/opt/install/serialdv/include/serialdv -DLIBSERIALDV_LIBRARY=/opt/install/serialdv/lib/libserialdv.so` Also your user must be a member of group `dialout` (Ubuntu/Debian) or `uucp` (Arch) to be able to use the dongle.
Although such serial devices work with a serial interface at 400 kb in practice maybe for other reasons they are capable of handling only one conversation at a time. The software will allocate the device dynamically to a conversation with an inactivity timeout of 1 second so that conversations do not get interrupted constantly making the audio output too choppy. In practice you will have to have as many devices connected to your system as the number of conversations you would like to be handled in parallel. Although such serial devices work with a serial interface at 400 kb in practice maybe for other reasons they are capable of handling only one conversation at a time. The software will allocate the device dynamically to a conversation with an inactivity timeout of 1 second so that conversations do not get interrupted constantly making the audio output too choppy. In practice you will have to have as many devices connected to your system as the number of conversations you would like to be handled in parallel.

View File

@ -35,7 +35,7 @@ static int runQtApplication(int argc, char* argv[], qtwebapp::LoggerWithFile *lo
*/ */
QCoreApplication::setOrganizationName("f4exb"); QCoreApplication::setOrganizationName("f4exb");
QCoreApplication::setApplicationName("SDRangel"); QCoreApplication::setApplicationName("SDRangel");
QCoreApplication::setApplicationVersion("4.2.0"); QCoreApplication::setApplicationVersion("4.2.1");
#if 1 #if 1
qApp->setStyle(QStyleFactory::create("fusion")); qApp->setStyle(QStyleFactory::create("fusion"));

View File

@ -57,7 +57,7 @@ static int runQtApplication(int argc, char* argv[], qtwebapp::LoggerWithFile *lo
QCoreApplication::setOrganizationName("f4exb"); QCoreApplication::setOrganizationName("f4exb");
QCoreApplication::setApplicationName("SDRangelBench"); QCoreApplication::setApplicationName("SDRangelBench");
QCoreApplication::setApplicationVersion("4.2.0"); QCoreApplication::setApplicationVersion("4.2.1");
int catchSignals[] = {SIGQUIT, SIGINT, SIGTERM, SIGHUP}; int catchSignals[] = {SIGQUIT, SIGINT, SIGTERM, SIGHUP};
std::vector<int> vsig(catchSignals, catchSignals + sizeof(catchSignals) / sizeof(int)); std::vector<int> vsig(catchSignals, catchSignals + sizeof(catchSignals) / sizeof(int));

View File

@ -56,7 +56,7 @@ static int runQtApplication(int argc, char* argv[], qtwebapp::LoggerWithFile *lo
QCoreApplication::setOrganizationName("f4exb"); QCoreApplication::setOrganizationName("f4exb");
QCoreApplication::setApplicationName("SDRangelSrv"); QCoreApplication::setApplicationName("SDRangelSrv");
QCoreApplication::setApplicationVersion("4.2.0"); QCoreApplication::setApplicationVersion("4.2.1");
int catchSignals[] = {SIGQUIT, SIGINT, SIGTERM, SIGHUP}; int catchSignals[] = {SIGQUIT, SIGINT, SIGTERM, SIGHUP};
std::vector<int> vsig(catchSignals, catchSignals + sizeof(catchSignals) / sizeof(int)); std::vector<int> vsig(catchSignals, catchSignals + sizeof(catchSignals) / sizeof(int));

4
debian/changelog vendored
View File

@ -1,9 +1,9 @@
sdrangel (4.2.1-1) unstable; urgency=medium sdrangel (4.2.1-1) unstable; urgency=medium
* FileRecord improvement with robust header and some fixes. Fixes issue #206 * FileRecord improvement with robust header and some fixes. Fixes issue #206
* BladeRF2 MO Tx fix so that the two channels are used effectively * BladeRF2 MO Tx fix so that the two channels are used effectively. Fixes issue #225
-- Edouard Griffiths, F4EXB <f4exb06@gmail.com> Sun, 14 Oct 2018 21:14:18 +0200 -- Edouard Griffiths, F4EXB <f4exb06@gmail.com> Wed, 10 Oct 2018 21:14:18 +0200
sdrangel (4.2.0-1) unstable; urgency=medium sdrangel (4.2.0-1) unstable; urgency=medium

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

View File

@ -30,7 +30,7 @@
const PluginDescriptor BladeRF2OutputPlugin::m_pluginDescriptor = { const PluginDescriptor BladeRF2OutputPlugin::m_pluginDescriptor = {
QString("BladeRF2 Output"), QString("BladeRF2 Output"),
QString("4.2.0"), QString("4.2.1"),
QString("(c) Edouard Griffiths, F4EXB"), QString("(c) Edouard Griffiths, F4EXB"),
QString("https://github.com/f4exb/sdrangel"), QString("https://github.com/f4exb/sdrangel"),
true, true,

View File

@ -30,7 +30,7 @@
const PluginDescriptor Blderf2InputPlugin::m_pluginDescriptor = { const PluginDescriptor Blderf2InputPlugin::m_pluginDescriptor = {
QString("BladeRF2 Input"), QString("BladeRF2 Input"),
QString("4.2.0"), QString("4.2.1"),
QString("(c) Edouard Griffiths, F4EXB"), QString("(c) Edouard Griffiths, F4EXB"),
QString("https://github.com/f4exb/sdrangel"), QString("https://github.com/f4exb/sdrangel"),
true, true,

View File

@ -29,7 +29,7 @@
const PluginDescriptor FileSourcePlugin::m_pluginDescriptor = { const PluginDescriptor FileSourcePlugin::m_pluginDescriptor = {
QString("File source input"), QString("File source input"),
QString("3.14.5"), QString("4.2.1"),
QString("(c) Edouard Griffiths, F4EXB"), QString("(c) Edouard Griffiths, F4EXB"),
QString("https://github.com/f4exb/sdrangel"), QString("https://github.com/f4exb/sdrangel"),
true, true,

View File

@ -0,0 +1,106 @@
<h1>File source input plugin</h1>
<h2>Introduction</h2>
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:
<table>
<tr>
<th>Displ.</th>
<th>Bytes</th>
<th>Description</th>
</tr>
<tr>
<td>0</td>
<td>4</td>
<td>Sample rate in S/s</td>
</tr>
<tr>
<td>4</td>
<td>8</td>
<td>Center frequency in Hz</td>
</tr>
<tr>
<td>12</td>
<td>8</td>
<td>Unix epoch (timestamp) of start</td>
</tr>
<tr>
<td>20</td>
<td>4</td>
<td>Sample size (16 or 24 bits)</td>
</tr>
<tr>
<td>24</td>
<td>4</td>
<td>Filler with zeroes</td>
</tr>
<tr>
<td>28</td>
<td>4</td>
<td>CRC32 of the previous 28 bytes</td>
</tr>
</table>
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.
<h2>Interface</h2>
![FileSource input plugin GUI](../../../doc/img/FileSource_plugin.png)
<h3>1: Start/Stop</h3>
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.
<h3>2: Stream sample rate</h3>
Baseband I/Q sample rate in kS/s. This is the sample rate present in the header.
<h3>3: Frequency</h3>
This is the center frequency of reception in kHz when the record was taken and written in the header.
<h3>4: Open file</h3>
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.
<h3>5: File path</h3>
Absolute path of the file being read
<h3>6: File recorded sample rate</h3>
Sample rate of the record in kS/s as written in the header. The reading process is based on this sample rate.
<h3>7: Sample size</h3>
This is the sample size in bits as written in the header. The reading process is based on this sample size.
<h3>8: CRC indicator</h3>
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](../../../rescuesdriq/readme.md) for details.
<h3>9: Current timestamp</h3>
This is the timestamp of the current pointer in the file based on the start time, number of samples read and sample rate.
<h3>10: Loop</h3>
Use this button to read in a loop or read only once
<h3>11: Play/pause</h3>
This is the play/pause button
<h3>12: Relative timestamp and record length</h3>
Left is the relative timestamp of the current pointer from the start of the record. Right is the total record time.
<h3>13: Current pointer gauge</h3>
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.