Menu option for frequency offset (up/down converters)

This commit is contained in:
Charles J. Cliffe
2015-01-06 00:57:57 -05:00
parent 726113e9ea
commit 1671e625e4
6 changed files with 40 additions and 4 deletions
+14 -2
View File
@@ -4,7 +4,7 @@
#include "CubicSDR.h"
SDRThread::SDRThread(SDRThreadCommandQueue* pQueue) :
commandQueue(pQueue), iqDataOutQueue(NULL), terminated(false) {
commandQueue(pQueue), iqDataOutQueue(NULL), terminated(false), offset(0) {
dev = NULL;
sampleRate = SRATE;
}
@@ -137,7 +137,9 @@ void SDRThread::threadMain() {
if (!cmdQueue->empty()) {
bool freq_changed = false;
bool offset_changed = false;
long long new_freq;
long long new_offset;
while (!cmdQueue->empty()) {
SDRThreadCommand command;
@@ -152,14 +154,24 @@ void SDRThread::threadMain() {
}
std::cout << "Set frequency: " << new_freq << std::endl;
break;
case SDRThreadCommand::SDR_THREAD_CMD_SET_OFFSET:
offset_changed = true;
new_offset = command.llong_value;
std::cout << "Set offset: " << new_offset << std::endl;
break;
default:
break;
}
}
if (offset_changed && !freq_changed) {
new_freq = frequency;
freq_changed = true;
offset = new_offset;
}
if (freq_changed) {
frequency = new_freq;
rtlsdr_set_center_freq(dev, frequency);
rtlsdr_set_center_freq(dev, frequency+offset);
}
}
+2 -1
View File
@@ -17,7 +17,7 @@
class SDRThreadCommand {
public:
enum SDRThreadCommandEnum {
SDR_THREAD_CMD_NULL, SDR_THREAD_CMD_TUNE
SDR_THREAD_CMD_NULL, SDR_THREAD_CMD_TUNE, SDR_THREAD_CMD_SET_OFFSET
};
SDRThreadCommand() :
@@ -76,6 +76,7 @@ public:
void terminate();
protected:
uint32_t sampleRate;
long long offset;
std::atomic<SDRThreadCommandQueue*> commandQueue;
std::atomic<SDRThreadIQDataQueue*> iqDataOutQueue;