kopia lustrzana https://github.com/AlexandreRouma/SDRPlusPlus
Porównaj commity
7 Commity
fdfb1dbf5e
...
632a4eebab
Autor | SHA1 | Data |
---|---|---|
AlexandreRouma | 632a4eebab | |
AlexandreRouma | e118598f57 | |
AlexandreRouma | a2d49b2f87 | |
AlexandreRouma | 38abfc715e | |
AlexandreRouma | 07eebd7018 | |
AlexandreRouma | d12021fc2f | |
AlexandreRouma | db1682a2ac |
|
@ -119,7 +119,7 @@ jobs:
|
|||
|
||||
- name: Prepare CMake
|
||||
working-directory: ${{runner.workspace}}/build
|
||||
run: cmake -DCMAKE_OSX_DEPLOYMENT_TARGET=10.15 $GITHUB_WORKSPACE -DOPT_BUILD_PLUTOSDR_SOURCE=ON -DOPT_BUILD_SOAPY_SOURCE=OFF -DOPT_BUILD_BLADERF_SOURCE=ON -DOPT_BUILD_SDRPLAY_SOURCE=ON -DOPT_BUILD_LIMESDR_SOURCE=ON -DOPT_BUILD_AUDIO_SINK=OFF -DOPT_BUILD_PORTAUDIO_SINK=ON -DOPT_BUILD_NEW_PORTAUDIO_SINK=ON -DOPT_BUILD_M17_DECODER=ON -DOPT_BUILD_PERSEUS_SOURCE=ON -DOPT_BUILD_AUDIO_SOURCE=OFF -DUSE_BUNDLE_DEFAULTS=ON -DCMAKE_BUILD_TYPE=Release
|
||||
run: cmake -DCMAKE_OSX_DEPLOYMENT_TARGET=10.15 $GITHUB_WORKSPACE -DOPT_BUILD_PLUTOSDR_SOURCE=ON -DOPT_BUILD_BLADERF_SOURCE=ON -DOPT_BUILD_SDRPLAY_SOURCE=ON -DOPT_BUILD_LIMESDR_SOURCE=ON -DOPT_BUILD_AUDIO_SINK=OFF -DOPT_BUILD_PORTAUDIO_SINK=ON -DOPT_BUILD_NEW_PORTAUDIO_SINK=ON -DOPT_BUILD_M17_DECODER=ON -DOPT_BUILD_PERSEUS_SOURCE=ON -DOPT_BUILD_AUDIO_SOURCE=OFF -DUSE_BUNDLE_DEFAULTS=ON -DCMAKE_BUILD_TYPE=Release
|
||||
|
||||
- name: Build
|
||||
working-directory: ${{runner.workspace}}/build
|
||||
|
@ -170,7 +170,7 @@ jobs:
|
|||
|
||||
- name: Prepare CMake
|
||||
working-directory: ${{runner.workspace}}/build
|
||||
run: cmake -DCMAKE_OSX_DEPLOYMENT_TARGET=10.15 $GITHUB_WORKSPACE -DOPT_BUILD_PLUTOSDR_SOURCE=ON -DOPT_BUILD_SOAPY_SOURCE=OFF -DOPT_BUILD_BLADERF_SOURCE=ON -DOPT_BUILD_SDRPLAY_SOURCE=ON -DOPT_BUILD_LIMESDR_SOURCE=ON -DOPT_BUILD_AUDIO_SINK=OFF -DOPT_BUILD_PORTAUDIO_SINK=ON -DOPT_BUILD_NEW_PORTAUDIO_SINK=ON -DOPT_BUILD_M17_DECODER=OFF -DOPT_BUILD_PERSEUS_SOURCE=OFF -DOPT_BUILD_AUDIO_SOURCE=OFF -DUSE_BUNDLE_DEFAULTS=ON -DCMAKE_BUILD_TYPE=Release
|
||||
run: cmake -DCMAKE_OSX_DEPLOYMENT_TARGET=10.15 $GITHUB_WORKSPACE -DOPT_BUILD_PLUTOSDR_SOURCE=ON -DOPT_BUILD_BLADERF_SOURCE=ON -DOPT_BUILD_SDRPLAY_SOURCE=ON -DOPT_BUILD_LIMESDR_SOURCE=ON -DOPT_BUILD_AUDIO_SINK=OFF -DOPT_BUILD_PORTAUDIO_SINK=ON -DOPT_BUILD_NEW_PORTAUDIO_SINK=ON -DOPT_BUILD_M17_DECODER=OFF -DOPT_BUILD_PERSEUS_SOURCE=OFF -DOPT_BUILD_AUDIO_SOURCE=OFF -DUSE_BUNDLE_DEFAULTS=ON -DCMAKE_BUILD_TYPE=Release
|
||||
|
||||
- name: Build
|
||||
working-directory: ${{runner.workspace}}/build
|
||||
|
|
|
@ -25,7 +25,7 @@ option(OPT_BUILD_RTL_SDR_SOURCE "Build RTL-SDR Source Module (Dependencies: libr
|
|||
option(OPT_BUILD_RTL_TCP_SOURCE "Build RTL-TCP Source Module (no dependencies required)" ON)
|
||||
option(OPT_BUILD_SDRPP_SERVER_SOURCE "Build SDR++ Server Source Module (no dependencies required)" ON)
|
||||
option(OPT_BUILD_SDRPLAY_SOURCE "Build SDRplay Source Module (Dependencies: libsdrplay)" OFF)
|
||||
option(OPT_BUILD_SOAPY_SOURCE "Build SoapySDR Source Module (Dependencies: soapysdr)" ON)
|
||||
option(OPT_BUILD_SOAPY_SOURCE "Build SoapySDR Source Module (Dependencies: soapysdr)" OFF)
|
||||
option(OPT_BUILD_SPECTRAN_SOURCE "Build Spectran Source Module (Dependencies: Aaronia RTSA Suite)" OFF)
|
||||
option(OPT_BUILD_SPECTRAN_HTTP_SOURCE "Build Spectran HTTP Source Module (no dependencies required)" ON)
|
||||
option(OPT_BUILD_SPYSERVER_SOURCE "Build SpyServer Source Module (no dependencies required)" ON)
|
||||
|
|
|
@ -193,8 +193,6 @@ int sdrpp_main(int argc, char* argv[]) {
|
|||
defConfig["moduleInstances"]["SDRplay Source"]["enabled"] = true;
|
||||
defConfig["moduleInstances"]["SDR++ Server Source"]["module"] = "sdrpp_server_source";
|
||||
defConfig["moduleInstances"]["SDR++ Server Source"]["enabled"] = true;
|
||||
defConfig["moduleInstances"]["SoapySDR Source"]["module"] = "soapy_source";
|
||||
defConfig["moduleInstances"]["SoapySDR Source"]["enabled"] = true;
|
||||
defConfig["moduleInstances"]["SpyServer Source"]["module"] = "spyserver_source";
|
||||
defConfig["moduleInstances"]["SpyServer Source"]["enabled"] = true;
|
||||
|
||||
|
|
|
@ -433,6 +433,9 @@ void MainWindow::draw() {
|
|||
showCredits = false;
|
||||
}
|
||||
|
||||
// Reset waterfall lock
|
||||
lockWaterfallControls = showCredits;
|
||||
|
||||
// Handle menu resize
|
||||
ImVec2 winSize = ImGui::GetWindowSize();
|
||||
ImVec2 mousePos = ImGui::GetMousePos();
|
||||
|
@ -467,7 +470,6 @@ void MainWindow::draw() {
|
|||
displaymenu::checkKeybinds();
|
||||
|
||||
// Left Column
|
||||
lockWaterfallControls = false;
|
||||
if (showMenu) {
|
||||
ImGui::Columns(3, "WindowColumns", false);
|
||||
ImGui::SetColumnWidth(0, menuWidth);
|
||||
|
|
|
@ -717,18 +717,23 @@ namespace ImGui {
|
|||
void WaterFall::onResize() {
|
||||
std::lock_guard<std::recursive_mutex> lck(latestFFTMtx);
|
||||
std::lock_guard<std::mutex> lck2(smoothingBufMtx);
|
||||
// return if widget is too small
|
||||
if (widgetSize.x < 100 || widgetSize.y < 100) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Check if the size is valid. This is because some settings might be changed before being first displayed.
|
||||
if (widgetSize.x < 1.0f || widgetSize.y < 1.0f) { return; }
|
||||
|
||||
// Set a minimim size
|
||||
widgetSize.x = std::max<float>(widgetSize.x, 100.0f*style::uiScale);
|
||||
widgetSize.y = std::max<float>(widgetSize.y, 100.0f*style::uiScale);
|
||||
|
||||
// Save last height
|
||||
int lastWaterfallHeight = waterfallHeight;
|
||||
|
||||
// Compute sizes
|
||||
if (waterfallVisible) {
|
||||
FFTAreaHeight = std::min<int>(FFTAreaHeight, widgetSize.y - (50.0f * style::uiScale));
|
||||
newFFTAreaHeight = FFTAreaHeight;
|
||||
fftHeight = FFTAreaHeight - (50.0f * style::uiScale);
|
||||
waterfallHeight = widgetSize.y - fftHeight - (50.0f * style::uiScale) - 2;
|
||||
waterfallHeight = std::max<int>(1, widgetSize.y - fftHeight - (50.0f * style::uiScale) - 2);
|
||||
}
|
||||
else {
|
||||
fftHeight = widgetSize.y - (50.0f * style::uiScale);
|
||||
|
|
|
@ -4,7 +4,7 @@ cd /root
|
|||
|
||||
# Install dependencies and tools
|
||||
apt update
|
||||
apt install -y build-essential cmake git libfftw3-dev libglfw3-dev libvolk2-dev libzstd-dev libsoapysdr-dev libairspyhf-dev libairspy-dev \
|
||||
apt install -y build-essential cmake git libfftw3-dev libglfw3-dev libvolk2-dev libzstd-dev libairspyhf-dev libairspy-dev \
|
||||
libiio-dev libad9361-dev librtaudio-dev libhackrf-dev librtlsdr-dev libbladerf-dev liblimesuite-dev p7zip-full wget portaudio19-dev \
|
||||
libcodec2-dev autoconf libtool xxd
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@ cd /root
|
|||
|
||||
# Install dependencies and tools
|
||||
apt update
|
||||
apt install -y build-essential cmake git libfftw3-dev libglfw3-dev libvolk2-dev libzstd-dev libsoapysdr-dev libairspyhf-dev libairspy-dev \
|
||||
apt install -y build-essential cmake git libfftw3-dev libglfw3-dev libvolk2-dev libzstd-dev libairspyhf-dev libairspy-dev \
|
||||
libiio-dev libad9361-dev librtaudio-dev libhackrf-dev librtlsdr-dev libbladerf-dev liblimesuite-dev p7zip-full wget portaudio19-dev \
|
||||
libcodec2-dev autoconf libtool xxd
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@ cd /root
|
|||
|
||||
# Install dependencies and tools
|
||||
apt update
|
||||
apt install -y build-essential cmake git libfftw3-dev libglfw3-dev libvolk1-dev libzstd-dev libsoapysdr-dev libairspyhf-dev libairspy-dev \
|
||||
apt install -y build-essential cmake git libfftw3-dev libglfw3-dev libvolk1-dev libzstd-dev libairspyhf-dev libairspy-dev \
|
||||
libiio-dev libad9361-dev librtaudio-dev libhackrf-dev librtlsdr-dev libbladerf-dev liblimesuite-dev p7zip-full wget portaudio19-dev \
|
||||
libcodec2-dev autoconf libtool xxd
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@ cd /root
|
|||
|
||||
# Install dependencies and tools
|
||||
apt update
|
||||
apt install -y build-essential cmake git libfftw3-dev libglfw3-dev libvolk-dev libzstd-dev libsoapysdr-dev libairspyhf-dev libairspy-dev \
|
||||
apt install -y build-essential cmake git libfftw3-dev libglfw3-dev libvolk-dev libzstd-dev libairspyhf-dev libairspy-dev \
|
||||
libiio-dev libad9361-dev librtaudio-dev libhackrf-dev librtlsdr-dev libbladerf-dev liblimesuite-dev p7zip-full wget portaudio19-dev \
|
||||
libcodec2-dev autoconf libtool xxd
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@ echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://ap
|
|||
apt update
|
||||
|
||||
# Install dependencies and tools
|
||||
apt install -y build-essential cmake git libfftw3-dev libglfw3-dev libvolk1-dev libzstd-dev libsoapysdr-dev libairspy-dev \
|
||||
apt install -y build-essential cmake git libfftw3-dev libglfw3-dev libvolk1-dev libzstd-dev libairspy-dev \
|
||||
libiio-dev libad9361-dev librtaudio-dev libhackrf-dev librtlsdr-dev libbladerf-dev liblimesuite-dev p7zip-full wget portaudio19-dev \
|
||||
libcodec2-dev libudev-dev autoconf libtool xxd
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@ cd /root
|
|||
|
||||
# Install dependencies and tools
|
||||
apt update
|
||||
apt install -y build-essential cmake git libfftw3-dev libglfw3-dev libvolk2-dev libzstd-dev libsoapysdr-dev libairspyhf-dev libairspy-dev \
|
||||
apt install -y build-essential cmake git libfftw3-dev libglfw3-dev libvolk2-dev libzstd-dev libairspyhf-dev libairspy-dev \
|
||||
libiio-dev libad9361-dev librtaudio-dev libhackrf-dev librtlsdr-dev libbladerf-dev liblimesuite-dev p7zip-full wget portaudio19-dev \
|
||||
libcodec2-dev autoconf libtool xxd
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@ cd /root
|
|||
|
||||
# Install dependencies and tools
|
||||
apt update
|
||||
apt install -y build-essential cmake git libfftw3-dev libglfw3-dev libvolk2-dev libzstd-dev libsoapysdr-dev libairspyhf-dev libairspy-dev \
|
||||
apt install -y build-essential cmake git libfftw3-dev libglfw3-dev libvolk2-dev libzstd-dev libairspyhf-dev libairspy-dev \
|
||||
libiio-dev libad9361-dev librtaudio-dev libhackrf-dev librtlsdr-dev libbladerf-dev liblimesuite-dev p7zip-full wget portaudio19-dev \
|
||||
libcodec2-dev autoconf libtool xxd
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@ cd /root
|
|||
|
||||
# Install dependencies and tools
|
||||
apt update
|
||||
apt install -y build-essential cmake git libfftw3-dev libglfw3-dev libvolk-dev libzstd-dev libsoapysdr-dev libairspyhf-dev libairspy-dev \
|
||||
apt install -y build-essential cmake git libfftw3-dev libglfw3-dev libvolk-dev libzstd-dev libairspyhf-dev libairspy-dev \
|
||||
libiio-dev libad9361-dev librtaudio-dev libhackrf-dev librtlsdr-dev libbladerf-dev liblimesuite-dev p7zip-full wget portaudio19-dev \
|
||||
libcodec2-dev autoconf libtool xxd
|
||||
|
||||
|
|
|
@ -45,7 +45,6 @@ bundle_install_binary $BUNDLE $BUNDLE/Contents/Plugins $BUILD_DIR/source_modules
|
|||
bundle_install_binary $BUNDLE $BUNDLE/Contents/Plugins $BUILD_DIR/source_modules/rtl_tcp_source/rtl_tcp_source.dylib
|
||||
bundle_install_binary $BUNDLE $BUNDLE/Contents/Plugins $BUILD_DIR/source_modules/sdrplay_source/sdrplay_source.dylib
|
||||
bundle_install_binary $BUNDLE $BUNDLE/Contents/Plugins $BUILD_DIR/source_modules/sdrpp_server_source/sdrpp_server_source.dylib
|
||||
bundle_install_binary $BUNDLE $BUNDLE/Contents/Plugins $BUILD_DIR/source_modules/soapy_source/soapy_source.dylib
|
||||
bundle_install_binary $BUNDLE $BUNDLE/Contents/Plugins $BUILD_DIR/source_modules/spyserver_source/spyserver_source.dylib
|
||||
# bundle_install_binary $BUNDLE $BUNDLE/Contents/Plugins $BUILD_DIR/source_modules/usrp_source/usrp_source.dylib
|
||||
|
||||
|
|
|
@ -51,8 +51,6 @@ cp 'C:/Program Files/SDRplay/API/x64/sdrplay_api.dll' sdrpp_windows_x64/ -ErrorA
|
|||
|
||||
cp $build_dir/source_modules/sdrpp_server_source/Release/sdrpp_server_source.dll sdrpp_windows_x64/modules/
|
||||
|
||||
cp $build_dir/source_modules/soapy_source/Release/soapy_source.dll sdrpp_windows_x64/modules/
|
||||
|
||||
cp $build_dir/source_modules/spyserver_source/Release/spyserver_source.dll sdrpp_windows_x64/modules/
|
||||
|
||||
# cp $build_dir/source_modules/usrp_source/Release/usrp_source.dll sdrpp_windows_x64/modules/
|
||||
|
|
21
readme.md
21
readme.md
|
@ -44,7 +44,7 @@ Download the latest release from [the Releases page](https://github.com/Alexandr
|
|||
Then, run:
|
||||
|
||||
```sh
|
||||
sudo apt install libfftw3-dev libglfw3-dev libvolk2-dev libzstd-dev libsoapysdr-dev libairspyhf-dev libiio-dev libad9361-dev librtaudio-dev libhackrf-dev
|
||||
sudo apt install libfftw3-dev libglfw3-dev libvolk2-dev libzstd-dev libairspyhf-dev libiio-dev libad9361-dev librtaudio-dev libhackrf-dev
|
||||
sudo dpkg -i sdrpp_debian_amd64.deb
|
||||
```
|
||||
|
||||
|
@ -135,7 +135,6 @@ As mentioned previously you need to edit `root_dev/config.json` to add the modul
|
|||
"./build/radio/Release/radio.dll",
|
||||
"./build/recorder/Release/recorder.dll",
|
||||
"./build/rtl_tcp_source/Release/rtl_tcp_source.dll",
|
||||
"./build/soapy_source/Release/soapy_source.dll",
|
||||
"./build/audio_sink/Release/audio_sink.dll"
|
||||
]
|
||||
...
|
||||
|
@ -166,7 +165,6 @@ The modules built will be some of the following (Repeat the instructions above f
|
|||
* `build/recorder/Release/`
|
||||
* `build/rtl_tcp_source/Release/`
|
||||
* `build/spyserver_source/Release/`
|
||||
* `build/soapy_source/Release/`
|
||||
* `build/airspyhf_source/Release/`
|
||||
* `build/plutosdr_source/Release/`
|
||||
* `build/audio_sink/Release/`
|
||||
|
@ -176,13 +174,9 @@ The modules built will be some of the following (Repeat the instructions above f
|
|||
## Select which modules you wish to build
|
||||
|
||||
Depending on which module you want to build, you will need to install some additional dependencies.
|
||||
Here are listed every module that requires addition dependencies. If a module enabled by default and you do not wish to install a particular dependency (or can't, eg. the BladeRF module on Debian Buster),
|
||||
you can disable it using the module parameter listed in the table below
|
||||
Please refer to the module list table further down in this readme for the names, dependencies and build options of each module.
|
||||
|
||||
* soapy_source: SoapySDR + drivers for each SDRs (see SoapySDR docs)
|
||||
* airspyhf_source: libairspyhf
|
||||
* plutosdr_source: libiio, libad9361
|
||||
* audio_sink: librtaudio-dev
|
||||
The build options are then passed to the cmake command as such `cmake .. -DOPTION_NAME_HERE=ON -DANOTHER_OPTION_HERE=OFF` etc...
|
||||
|
||||
## Install dependencies
|
||||
|
||||
|
@ -231,7 +225,6 @@ Then, you will need to edit the `root_dev/config.json` file to point to the modu
|
|||
"./build/radio/radio.so",
|
||||
"./build/recorder/recorder.so",
|
||||
"./build/rtl_tcp_source/rtl_tcp_source.so",
|
||||
"./build/soapy_source/soapy_source.so",
|
||||
"./build/audio_sink/audio_sink.so"
|
||||
]
|
||||
...
|
||||
|
@ -343,9 +336,9 @@ Modules in beta are still included in releases for the most part but not enabled
|
|||
| rtl_tcp_source | Working | - | OPT_BUILD_RTL_TCP_SOURCE | ✅ | ✅ | ✅ |
|
||||
| sdrplay_source | Working | SDRplay API | OPT_BUILD_SDRPLAY_SOURCE | ⛔ | ✅ | ✅ |
|
||||
| sdrpp_server_source | Working | - | OPT_BUILD_SDRPP_SERVER_SOURCE | ✅ | ✅ | ✅ |
|
||||
| soapy_source | Working | soapysdr | OPT_BUILD_SOAPY_SOURCE | ✅ | ✅ | ✅ |
|
||||
| soapy_source | Deprecated | soapysdr | OPT_BUILD_SOAPY_SOURCE | ⛔ | ⛔ | ⛔ |
|
||||
| spectran_source | Unfinished | RTSA Suite | OPT_BUILD_SPECTRAN_SOURCE | ⛔ | ⛔ | ⛔ |
|
||||
| spectran_http_source | Unfinished | - | OPT_BUILD_SPECTRAN_HTTP_SOURCE | ✅ | ✅ | ⛔ |
|
||||
| spectran_http_source | Beta | - | OPT_BUILD_SPECTRAN_HTTP_SOURCE | ✅ | ✅ | ⛔ |
|
||||
| spyserver_source | Working | - | OPT_BUILD_SPYSERVER_SOURCE | ✅ | ✅ | ✅ |
|
||||
| usrp_source | Beta | libuhd | OPT_BUILD_USRP_SOURCE | ⛔ | ⛔ | ⛔ |
|
||||
|
||||
|
@ -366,7 +359,7 @@ Modules in beta are still included in releases for the most part but not enabled
|
|||
| atv_decoder | Unfinished | - | OPT_BUILD_ATV_DECODER | ⛔ | ⛔ | ⛔ |
|
||||
| falcon9_decoder | Unfinished | ffplay | OPT_BUILD_FALCON9_DECODER | ⛔ | ⛔ | ⛔ |
|
||||
| kgsstv_decoder | Unfinished | - | OPT_BUILD_KGSSTV_DECODER | ⛔ | ⛔ | ⛔ |
|
||||
| m17_decoder | Beta | - | OPT_BUILD_M17_DECODER | ⛔ | ✅ | ⛔ |
|
||||
| m17_decoder | Working | - | OPT_BUILD_M17_DECODER | ⛔ | ✅ | ⛔ |
|
||||
| meteor_demodulator | Working | - | OPT_BUILD_METEOR_DEMODULATOR | ✅ | ✅ | ⛔ |
|
||||
| pager_decoder | Unfinished | - | OPT_BUILD_PAGER_DECODER | ⛔ | ⛔ | ⛔ |
|
||||
| radio | Working | - | OPT_BUILD_RADIO | ✅ | ✅ | ✅ |
|
||||
|
@ -378,7 +371,7 @@ Modules in beta are still included in releases for the most part but not enabled
|
|||
|---------------------|------------|--------------|-----------------------------|:----------------:|:----------------:|:---------------------------:|
|
||||
| discord_integration | Working | - | OPT_BUILD_DISCORD_PRESENCE | ✅ | ✅ | ⛔ |
|
||||
| frequency_manager | Working | - | OPT_BUILD_FREQUENCY_MANAGER | ✅ | ✅ | ✅ |
|
||||
| iq_exporter | Beta | - | OPT_BUILD_IQ_EXPORTER | ✅ | ✅ | ⛔ |
|
||||
| iq_exporter | Working | - | OPT_BUILD_IQ_EXPORTER | ✅ | ✅ | ⛔ |
|
||||
| recorder | Working | - | OPT_BUILD_RECORDER | ✅ | ✅ | ✅ |
|
||||
| rigctl_client | Unfinished | - | OPT_BUILD_RIGCTL_CLIENT | ✅ | ✅ | ⛔ |
|
||||
| rigctl_server | Working | - | OPT_BUILD_RIGCTL_SERVER | ✅ | ✅ | ✅ |
|
||||
|
|
|
@ -42,8 +42,20 @@ namespace server {
|
|||
|
||||
// Ask for a UI
|
||||
int res = getUI();
|
||||
if (res == -1) { throw std::runtime_error("Timed out"); }
|
||||
else if (res == -2) { throw std::runtime_error("Server busy"); }
|
||||
if (res < 0) {
|
||||
// Close client
|
||||
close();
|
||||
|
||||
// Throw error
|
||||
switch (res) {
|
||||
case CONN_ERR_TIMEOUT:
|
||||
throw std::runtime_error("Timed out");
|
||||
case CONN_ERR_BUSY:
|
||||
throw std::runtime_error("Server busy");
|
||||
default:
|
||||
throw std::runtime_error("Unknown error");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Client::~Client() {
|
||||
|
@ -234,7 +246,7 @@ namespace server {
|
|||
else {
|
||||
if (!serverBusy) { flog::error("Timeout out after asking for UI"); };
|
||||
waiter->handled();
|
||||
return serverBusy ? -2 : -1;
|
||||
return serverBusy ? CONN_ERR_BUSY : CONN_ERR_TIMEOUT;
|
||||
}
|
||||
waiter->handled();
|
||||
return 0;
|
||||
|
|
|
@ -71,6 +71,11 @@ namespace server {
|
|||
std::mutex handledMtx;
|
||||
};
|
||||
|
||||
enum ConnectionError {
|
||||
CONN_ERR_TIMEOUT = -1,
|
||||
CONN_ERR_BUSY = -2
|
||||
};
|
||||
|
||||
class Client {
|
||||
public:
|
||||
Client(std::shared_ptr<net::Socket> sock, dsp::stream<dsp::complex_t>* out);
|
||||
|
|
|
@ -81,8 +81,15 @@ public:
|
|||
|
||||
private:
|
||||
void refresh() {
|
||||
devList = SoapySDR::Device::enumerate();
|
||||
txtDevList = "";
|
||||
try {
|
||||
devList = SoapySDR::Device::enumerate();
|
||||
}
|
||||
catch (const std::exception& e) {
|
||||
flog::error("Could not list devices: {}", e.what());
|
||||
return;
|
||||
}
|
||||
|
||||
int i = 0;
|
||||
for (auto& dev : devList) {
|
||||
txtDevList += dev["label"] != "" ? dev["label"] : dev["driver"];
|
||||
|
@ -153,7 +160,14 @@ private:
|
|||
return;
|
||||
}
|
||||
|
||||
SoapySDR::Device* dev = SoapySDR::Device::make(devArgs);
|
||||
SoapySDR::Device* dev = NULL;
|
||||
try {
|
||||
dev = SoapySDR::Device::make(devArgs);
|
||||
}
|
||||
catch (const std::exception& e) {
|
||||
flog::error("Could not open device: {}", e.what());
|
||||
return;
|
||||
}
|
||||
|
||||
antennaList = dev->listAntennas(SOAPY_SDR_RX, channelId);
|
||||
txtAntennaList = "";
|
||||
|
@ -307,7 +321,13 @@ private:
|
|||
return;
|
||||
}
|
||||
|
||||
_this->dev = SoapySDR::Device::make(_this->devArgs);
|
||||
try {
|
||||
_this->dev = SoapySDR::Device::make(_this->devArgs);
|
||||
}
|
||||
catch (const std::exception& e) {
|
||||
flog::error("Failed to open device: {}", e.what());
|
||||
return;
|
||||
}
|
||||
|
||||
_this->dev->setSampleRate(SOAPY_SDR_RX, _this->channelId, _this->sampleRate);
|
||||
|
||||
|
|
Ładowanie…
Reference in New Issue