mirror of
https://github.com/cjcliffe/CubicSDR.git
synced 2025-02-03 09:44:26 -05:00
Merge pull request #94 from cjcliffe/input_rates
More input rates, offset loading fix
This commit is contained in:
commit
6fe145425c
@ -201,20 +201,23 @@ AppFrame::AppFrame() :
|
||||
menuBar->Append(menu, wxT("&Color Scheme"));
|
||||
|
||||
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_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_2048M] = menu->AppendRadioItem(wxID_BANDWIDTH_2048M, "2.048M");
|
||||
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_3000M] = menu->AppendRadioItem(wxID_BANDWIDTH_3000M, "3.0M");
|
||||
sampleRateMenuItems[wxID_BANDWIDTH_3200M] = menu->AppendRadioItem(wxID_BANDWIDTH_3200M, "3.2M");
|
||||
|
||||
#ifdef __APPLE
|
||||
sampleRateMenuItems[wxID_BANDWIDTH_2000M]->Check(true);
|
||||
#else
|
||||
sampleRateMenuItems[wxID_BANDWIDTH_2500M]->Check(true);
|
||||
#endif
|
||||
sampleRateMenuItems[wxID_BANDWIDTH_2400M]->Check(true);
|
||||
|
||||
menuBar->Append(menu, wxT("&Input Bandwidth"));
|
||||
|
||||
@ -399,27 +402,48 @@ void AppFrame::OnMenu(wxCommandEvent& event) {
|
||||
}
|
||||
|
||||
switch (event.GetId()) {
|
||||
case wxID_BANDWIDTH_1000M:
|
||||
wxGetApp().setSampleRate(1000000);
|
||||
break;
|
||||
case wxID_BANDWIDTH_1500M:
|
||||
wxGetApp().setSampleRate(1500000);
|
||||
break;
|
||||
case wxID_BANDWIDTH_2000M:
|
||||
wxGetApp().setSampleRate(2000000);
|
||||
break;
|
||||
case wxID_BANDWIDTH_2160M:
|
||||
wxGetApp().setSampleRate(2160000);
|
||||
break;
|
||||
case wxID_BANDWIDTH_2500M:
|
||||
wxGetApp().setSampleRate(2500000);
|
||||
break;
|
||||
case wxID_BANDWIDTH_2880M:
|
||||
wxGetApp().setSampleRate(2880000);
|
||||
break;
|
||||
case wxID_BANDWIDTH_3200M:
|
||||
wxGetApp().setSampleRate(3200000);
|
||||
break;
|
||||
case wxID_BANDWIDTH_250K:
|
||||
wxGetApp().setSampleRate(250000);
|
||||
break;
|
||||
case wxID_BANDWIDTH_1000M:
|
||||
wxGetApp().setSampleRate(1000000);
|
||||
break;
|
||||
case wxID_BANDWIDTH_1024M:
|
||||
wxGetApp().setSampleRate(1024000);
|
||||
break;
|
||||
case wxID_BANDWIDTH_1500M:
|
||||
wxGetApp().setSampleRate(1500000);
|
||||
break;
|
||||
case wxID_BANDWIDTH_1800M:
|
||||
wxGetApp().setSampleRate(1800000);
|
||||
break;
|
||||
case wxID_BANDWIDTH_1920M:
|
||||
wxGetApp().setSampleRate(1920000);
|
||||
break;
|
||||
case wxID_BANDWIDTH_2000M:
|
||||
wxGetApp().setSampleRate(2000000);
|
||||
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();
|
||||
|
@ -29,13 +29,20 @@
|
||||
#define wxID_THEME_HD 2105
|
||||
#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_2000M 2154
|
||||
#define wxID_BANDWIDTH_2160M 2155
|
||||
#define wxID_BANDWIDTH_2500M 2156
|
||||
#define wxID_BANDWIDTH_2880M 2157
|
||||
#define wxID_BANDWIDTH_3200M 2158
|
||||
#define wxID_BANDWIDTH_1800M 2154
|
||||
#define wxID_BANDWIDTH_1920M 2155
|
||||
#define wxID_BANDWIDTH_2000M 2156
|
||||
#define wxID_BANDWIDTH_2048M 2157
|
||||
#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
|
||||
|
||||
|
@ -25,20 +25,9 @@ const char filePathSeparator =
|
||||
'/';
|
||||
#endif
|
||||
|
||||
#ifdef __APPLE__
|
||||
#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_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;
|
||||
}
|
||||
|
||||
ati_vis->busy_update.unlock();
|
||||
|
||||
audioVisOutputQueue->push(ati_vis);
|
||||
|
||||
ati_vis->busy_update.unlock();
|
||||
}
|
||||
if (!threadQueueControl->empty()) {
|
||||
int newDemodType = DEMOD_TYPE_NULL;
|
||||
|
@ -149,9 +149,9 @@ void SDRPostThread::threadMain() {
|
||||
visualDataOut->sampleRate = data_in->sampleRate;
|
||||
visualDataOut->data.assign(dataOut.begin(), dataOut.begin() + num_vis_samples);
|
||||
|
||||
visualDataOut->busy_rw.unlock();
|
||||
|
||||
iqVisualQueue.load()->push(visualDataOut);
|
||||
|
||||
visualDataOut->busy_rw.unlock();
|
||||
}
|
||||
|
||||
busy_demod.lock();
|
||||
|
@ -141,6 +141,7 @@ void SDRThread::threadMain() {
|
||||
long long frequency = DEFAULT_FREQ;
|
||||
int ppm = wxGetApp().getConfig()->getDevice(devs[deviceId]->getDeviceId())->getPPM();
|
||||
int direct_sampling_mode = 0;
|
||||
int buf_size = BUF_SIZE;
|
||||
|
||||
rtlsdr_open(&dev, deviceId);
|
||||
rtlsdr_set_sample_rate(dev, sampleRate);
|
||||
@ -199,6 +200,13 @@ void SDRThread::threadMain() {
|
||||
case SDRThreadCommand::SDR_THREAD_CMD_SET_SAMPLERATE:
|
||||
rate_changed = true;
|
||||
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;
|
||||
break;
|
||||
case SDRThreadCommand::SDR_THREAD_CMD_SET_DEVICE:
|
||||
@ -231,14 +239,17 @@ void SDRThread::threadMain() {
|
||||
rtlsdr_set_direct_sampling(dev, direct_sampling_mode);
|
||||
rtlsdr_reset_buffer(dev);
|
||||
}
|
||||
if (offset_changed && !freq_changed) {
|
||||
freq_changed = true;
|
||||
new_freq = frequency;
|
||||
if (offset_changed) {
|
||||
if (!freq_changed) {
|
||||
new_freq = frequency;
|
||||
freq_changed = true;
|
||||
}
|
||||
offset = new_offset;
|
||||
}
|
||||
if (rate_changed) {
|
||||
sampleRate = new_rate;
|
||||
rtlsdr_set_sample_rate(dev, new_rate);
|
||||
rtlsdr_reset_buffer(dev);
|
||||
sampleRate = rtlsdr_get_sample_rate(dev);
|
||||
}
|
||||
if (freq_changed) {
|
||||
frequency = new_freq;
|
||||
@ -253,7 +264,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;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user