mirror of
https://github.com/cjcliffe/CubicSDR.git
synced 2025-08-07 08:02:27 -04:00
More sample rates, unify defaults
- also fix possible crash related to unlocking before queueing visual data.
This commit is contained in:
parent
721f775bdd
commit
6c016a7199
@ -201,20 +201,23 @@ AppFrame::AppFrame() :
|
|||||||
menuBar->Append(menu, wxT("&Color Scheme"));
|
menuBar->Append(menu, wxT("&Color Scheme"));
|
||||||
|
|
||||||
menu = new wxMenu;
|
menu = new wxMenu;
|
||||||
|
|
||||||
|
sampleRateMenuItems[wxID_BANDWIDTH_250K] = menu->AppendRadioItem(wxID_BANDWIDTH_250K, "250k");
|
||||||
sampleRateMenuItems[wxID_BANDWIDTH_1000M] = menu->AppendRadioItem(wxID_BANDWIDTH_1000M, "1.0M");
|
sampleRateMenuItems[wxID_BANDWIDTH_1000M] = menu->AppendRadioItem(wxID_BANDWIDTH_1000M, "1.0M");
|
||||||
sampleRateMenuItems[wxID_BANDWIDTH_1500M] = menu->AppendRadioItem(wxID_BANDWIDTH_1500M, "1.5M");
|
sampleRateMenuItems[wxID_BANDWIDTH_1500M] = menu->AppendRadioItem(wxID_BANDWIDTH_1024M, "1.024M");
|
||||||
|
sampleRateMenuItems[wxID_BANDWIDTH_1024M] = menu->AppendRadioItem(wxID_BANDWIDTH_1500M, "1.5M");
|
||||||
|
sampleRateMenuItems[wxID_BANDWIDTH_1800M] = menu->AppendRadioItem(wxID_BANDWIDTH_1800M, "1.8M");
|
||||||
|
sampleRateMenuItems[wxID_BANDWIDTH_1920M] = menu->AppendRadioItem(wxID_BANDWIDTH_1920M, "1.92M");
|
||||||
sampleRateMenuItems[wxID_BANDWIDTH_2000M] = menu->AppendRadioItem(wxID_BANDWIDTH_2000M, "2.0M");
|
sampleRateMenuItems[wxID_BANDWIDTH_2000M] = menu->AppendRadioItem(wxID_BANDWIDTH_2000M, "2.0M");
|
||||||
|
sampleRateMenuItems[wxID_BANDWIDTH_2048M] = menu->AppendRadioItem(wxID_BANDWIDTH_2048M, "2.048M");
|
||||||
sampleRateMenuItems[wxID_BANDWIDTH_2160M] = menu->AppendRadioItem(wxID_BANDWIDTH_2160M, "2.16M");
|
sampleRateMenuItems[wxID_BANDWIDTH_2160M] = menu->AppendRadioItem(wxID_BANDWIDTH_2160M, "2.16M");
|
||||||
sampleRateMenuItems[wxID_BANDWIDTH_2500M] = menu->AppendRadioItem(wxID_BANDWIDTH_2500M, "2.5M");
|
sampleRateMenuItems[wxID_BANDWIDTH_2400M] = menu->AppendRadioItem(wxID_BANDWIDTH_2400M, "2.4M");
|
||||||
|
sampleRateMenuItems[wxID_BANDWIDTH_2560M] = menu->AppendRadioItem(wxID_BANDWIDTH_2560M, "2.56M");
|
||||||
sampleRateMenuItems[wxID_BANDWIDTH_2880M] = menu->AppendRadioItem(wxID_BANDWIDTH_2880M, "2.88M");
|
sampleRateMenuItems[wxID_BANDWIDTH_2880M] = menu->AppendRadioItem(wxID_BANDWIDTH_2880M, "2.88M");
|
||||||
|
// sampleRateMenuItems[wxID_BANDWIDTH_3000M] = menu->AppendRadioItem(wxID_BANDWIDTH_3000M, "3.0M");
|
||||||
sampleRateMenuItems[wxID_BANDWIDTH_3200M] = menu->AppendRadioItem(wxID_BANDWIDTH_3200M, "3.2M");
|
sampleRateMenuItems[wxID_BANDWIDTH_3200M] = menu->AppendRadioItem(wxID_BANDWIDTH_3200M, "3.2M");
|
||||||
|
|
||||||
#ifdef __APPLE
|
sampleRateMenuItems[wxID_BANDWIDTH_2400M]->Check(true);
|
||||||
sampleRateMenuItems[wxID_BANDWIDTH_2000M]->Check(true);
|
|
||||||
#else
|
|
||||||
sampleRateMenuItems[wxID_BANDWIDTH_2500M]->Check(true);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
menuBar->Append(menu, wxT("&Input Bandwidth"));
|
menuBar->Append(menu, wxT("&Input Bandwidth"));
|
||||||
|
|
||||||
@ -399,27 +402,48 @@ void AppFrame::OnMenu(wxCommandEvent& event) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
switch (event.GetId()) {
|
switch (event.GetId()) {
|
||||||
case wxID_BANDWIDTH_1000M:
|
case wxID_BANDWIDTH_250K:
|
||||||
wxGetApp().setSampleRate(1000000);
|
wxGetApp().setSampleRate(250000);
|
||||||
break;
|
break;
|
||||||
case wxID_BANDWIDTH_1500M:
|
case wxID_BANDWIDTH_1000M:
|
||||||
wxGetApp().setSampleRate(1500000);
|
wxGetApp().setSampleRate(1000000);
|
||||||
break;
|
break;
|
||||||
case wxID_BANDWIDTH_2000M:
|
case wxID_BANDWIDTH_1024M:
|
||||||
wxGetApp().setSampleRate(2000000);
|
wxGetApp().setSampleRate(1024000);
|
||||||
break;
|
break;
|
||||||
case wxID_BANDWIDTH_2160M:
|
case wxID_BANDWIDTH_1500M:
|
||||||
wxGetApp().setSampleRate(2160000);
|
wxGetApp().setSampleRate(1500000);
|
||||||
break;
|
break;
|
||||||
case wxID_BANDWIDTH_2500M:
|
case wxID_BANDWIDTH_1800M:
|
||||||
wxGetApp().setSampleRate(2500000);
|
wxGetApp().setSampleRate(1800000);
|
||||||
break;
|
break;
|
||||||
case wxID_BANDWIDTH_2880M:
|
case wxID_BANDWIDTH_1920M:
|
||||||
wxGetApp().setSampleRate(2880000);
|
wxGetApp().setSampleRate(1920000);
|
||||||
break;
|
break;
|
||||||
case wxID_BANDWIDTH_3200M:
|
case wxID_BANDWIDTH_2000M:
|
||||||
wxGetApp().setSampleRate(3200000);
|
wxGetApp().setSampleRate(2000000);
|
||||||
break;
|
break;
|
||||||
|
case wxID_BANDWIDTH_2048M:
|
||||||
|
wxGetApp().setSampleRate(2048000);
|
||||||
|
break;
|
||||||
|
case wxID_BANDWIDTH_2160M:
|
||||||
|
wxGetApp().setSampleRate(2160000);
|
||||||
|
break;
|
||||||
|
case wxID_BANDWIDTH_2400M:
|
||||||
|
wxGetApp().setSampleRate(2400000);
|
||||||
|
break;
|
||||||
|
case wxID_BANDWIDTH_2560M:
|
||||||
|
wxGetApp().setSampleRate(2560000);
|
||||||
|
break;
|
||||||
|
case wxID_BANDWIDTH_2880M:
|
||||||
|
wxGetApp().setSampleRate(2880000);
|
||||||
|
break;
|
||||||
|
// case wxID_BANDWIDTH_3000M:
|
||||||
|
// wxGetApp().setSampleRate(3000000);
|
||||||
|
// break;
|
||||||
|
case wxID_BANDWIDTH_3200M:
|
||||||
|
wxGetApp().setSampleRate(3200000);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<SDRDeviceInfo *> *devs = wxGetApp().getDevices();
|
std::vector<SDRDeviceInfo *> *devs = wxGetApp().getDevices();
|
||||||
|
@ -29,13 +29,20 @@
|
|||||||
#define wxID_THEME_HD 2105
|
#define wxID_THEME_HD 2105
|
||||||
#define wxID_THEME_RADAR 2106
|
#define wxID_THEME_RADAR 2106
|
||||||
|
|
||||||
#define wxID_BANDWIDTH_1000M 2152
|
#define wxID_BANDWIDTH_250K 2150
|
||||||
|
#define wxID_BANDWIDTH_1000M 2151
|
||||||
|
#define wxID_BANDWIDTH_1024M 2152
|
||||||
#define wxID_BANDWIDTH_1500M 2153
|
#define wxID_BANDWIDTH_1500M 2153
|
||||||
#define wxID_BANDWIDTH_2000M 2154
|
#define wxID_BANDWIDTH_1800M 2154
|
||||||
#define wxID_BANDWIDTH_2160M 2155
|
#define wxID_BANDWIDTH_1920M 2155
|
||||||
#define wxID_BANDWIDTH_2500M 2156
|
#define wxID_BANDWIDTH_2000M 2156
|
||||||
#define wxID_BANDWIDTH_2880M 2157
|
#define wxID_BANDWIDTH_2048M 2157
|
||||||
#define wxID_BANDWIDTH_3200M 2158
|
#define wxID_BANDWIDTH_2160M 2158
|
||||||
|
#define wxID_BANDWIDTH_2400M 2159
|
||||||
|
#define wxID_BANDWIDTH_2560M 2160
|
||||||
|
#define wxID_BANDWIDTH_2880M 2161
|
||||||
|
//#define wxID_BANDWIDTH_3000M 2162
|
||||||
|
#define wxID_BANDWIDTH_3200M 2163
|
||||||
|
|
||||||
#define wxID_DEVICE_ID 3500
|
#define wxID_DEVICE_ID 3500
|
||||||
|
|
||||||
|
@ -25,20 +25,9 @@ const char filePathSeparator =
|
|||||||
'/';
|
'/';
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef __APPLE__
|
|
||||||
#define BUF_SIZE (16384*6)
|
#define BUF_SIZE (16384*6)
|
||||||
#define DEFAULT_SAMPLE_RATE 2000000
|
|
||||||
#endif
|
|
||||||
#ifdef __linux__
|
|
||||||
#define BUF_SIZE (16384*6)
|
|
||||||
#define DEFAULT_SAMPLE_RATE 2000000
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef BUF_SIZE
|
|
||||||
#define BUF_SIZE (16384*5)
|
|
||||||
#define DEFAULT_SAMPLE_RATE 2500000
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
#define DEFAULT_SAMPLE_RATE 2400000
|
||||||
#define DEFAULT_FFT_SIZE 2048
|
#define DEFAULT_FFT_SIZE 2048
|
||||||
|
|
||||||
#define DEFAULT_FREQ 100000000
|
#define DEFAULT_FREQ 100000000
|
||||||
|
@ -375,9 +375,9 @@ void DemodulatorThread::threadMain() {
|
|||||||
// std::cout << "Signal: " << agc_crcf_get_signal_level(agc) << " -- " << agc_crcf_get_rssi(agc) << "dB " << std::endl;
|
// std::cout << "Signal: " << agc_crcf_get_signal_level(agc) << " -- " << agc_crcf_get_rssi(agc) << "dB " << std::endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
ati_vis->busy_update.unlock();
|
|
||||||
|
|
||||||
audioVisOutputQueue->push(ati_vis);
|
audioVisOutputQueue->push(ati_vis);
|
||||||
|
|
||||||
|
ati_vis->busy_update.unlock();
|
||||||
}
|
}
|
||||||
if (!threadQueueControl->empty()) {
|
if (!threadQueueControl->empty()) {
|
||||||
int newDemodType = DEMOD_TYPE_NULL;
|
int newDemodType = DEMOD_TYPE_NULL;
|
||||||
|
@ -149,9 +149,9 @@ void SDRPostThread::threadMain() {
|
|||||||
visualDataOut->sampleRate = data_in->sampleRate;
|
visualDataOut->sampleRate = data_in->sampleRate;
|
||||||
visualDataOut->data.assign(dataOut.begin(), dataOut.begin() + num_vis_samples);
|
visualDataOut->data.assign(dataOut.begin(), dataOut.begin() + num_vis_samples);
|
||||||
|
|
||||||
visualDataOut->busy_rw.unlock();
|
|
||||||
|
|
||||||
iqVisualQueue.load()->push(visualDataOut);
|
iqVisualQueue.load()->push(visualDataOut);
|
||||||
|
|
||||||
|
visualDataOut->busy_rw.unlock();
|
||||||
}
|
}
|
||||||
|
|
||||||
busy_demod.lock();
|
busy_demod.lock();
|
||||||
|
@ -141,6 +141,7 @@ void SDRThread::threadMain() {
|
|||||||
long long frequency = DEFAULT_FREQ;
|
long long frequency = DEFAULT_FREQ;
|
||||||
int ppm = wxGetApp().getConfig()->getDevice(devs[deviceId]->getDeviceId())->getPPM();
|
int ppm = wxGetApp().getConfig()->getDevice(devs[deviceId]->getDeviceId())->getPPM();
|
||||||
int direct_sampling_mode = 0;
|
int direct_sampling_mode = 0;
|
||||||
|
int buf_size = BUF_SIZE;
|
||||||
|
|
||||||
rtlsdr_open(&dev, deviceId);
|
rtlsdr_open(&dev, deviceId);
|
||||||
rtlsdr_set_sample_rate(dev, sampleRate);
|
rtlsdr_set_sample_rate(dev, sampleRate);
|
||||||
@ -199,6 +200,13 @@ void SDRThread::threadMain() {
|
|||||||
case SDRThreadCommand::SDR_THREAD_CMD_SET_SAMPLERATE:
|
case SDRThreadCommand::SDR_THREAD_CMD_SET_SAMPLERATE:
|
||||||
rate_changed = true;
|
rate_changed = true;
|
||||||
new_rate = command.llong_value;
|
new_rate = command.llong_value;
|
||||||
|
if (new_rate <= 250000) {
|
||||||
|
buf_size = BUF_SIZE/4;
|
||||||
|
} else if (new_rate < 1500000) {
|
||||||
|
buf_size = BUF_SIZE/2;
|
||||||
|
} else {
|
||||||
|
buf_size = BUF_SIZE;
|
||||||
|
}
|
||||||
std::cout << "Set sample rate: " << new_rate << std::endl;
|
std::cout << "Set sample rate: " << new_rate << std::endl;
|
||||||
break;
|
break;
|
||||||
case SDRThreadCommand::SDR_THREAD_CMD_SET_DEVICE:
|
case SDRThreadCommand::SDR_THREAD_CMD_SET_DEVICE:
|
||||||
@ -237,8 +245,9 @@ void SDRThread::threadMain() {
|
|||||||
offset = new_offset;
|
offset = new_offset;
|
||||||
}
|
}
|
||||||
if (rate_changed) {
|
if (rate_changed) {
|
||||||
sampleRate = new_rate;
|
|
||||||
rtlsdr_set_sample_rate(dev, new_rate);
|
rtlsdr_set_sample_rate(dev, new_rate);
|
||||||
|
sampleRate = rtlsdr_get_sample_rate(dev);
|
||||||
|
rtlsdr_reset_buffer(dev);
|
||||||
}
|
}
|
||||||
if (freq_changed) {
|
if (freq_changed) {
|
||||||
frequency = new_freq;
|
frequency = new_freq;
|
||||||
@ -253,7 +262,7 @@ void SDRThread::threadMain() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
rtlsdr_read_sync(dev, buf, BUF_SIZE, &n_read);
|
rtlsdr_read_sync(dev, buf, buf_size, &n_read);
|
||||||
|
|
||||||
SDRThreadIQData *dataOut = NULL;
|
SDRThreadIQData *dataOut = NULL;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user