mirror of
https://github.com/AlexandreRouma/SDRPlusPlus.git
synced 2024-11-13 05:52:50 +01:00
More work on the bladerf
This commit is contained in:
parent
e1086e2d41
commit
b030c22c56
@ -24,44 +24,6 @@ SDRPP_MOD_INFO {
|
|||||||
/* Max instances */ 1
|
/* Max instances */ 1
|
||||||
};
|
};
|
||||||
|
|
||||||
const uint64_t sampleRates[] = {
|
|
||||||
520834,
|
|
||||||
1000000,
|
|
||||||
2000000,
|
|
||||||
4000000,
|
|
||||||
5000000,
|
|
||||||
8000000,
|
|
||||||
10000000,
|
|
||||||
15000000,
|
|
||||||
20000000,
|
|
||||||
25000000,
|
|
||||||
30000000,
|
|
||||||
35000000,
|
|
||||||
40000000,
|
|
||||||
45000000,
|
|
||||||
50000000,
|
|
||||||
55000000,
|
|
||||||
61440000
|
|
||||||
};
|
|
||||||
|
|
||||||
const char* sampleRatesTxt =
|
|
||||||
"520.834KHz\0"
|
|
||||||
"1MHz\0"
|
|
||||||
"2MHz\0"
|
|
||||||
"4MHz\0"
|
|
||||||
"5MHz\0"
|
|
||||||
"8MHz\0"
|
|
||||||
"10MHz\0"
|
|
||||||
"15MHz\0"
|
|
||||||
"20MHz\0"
|
|
||||||
"25MHz\0"
|
|
||||||
"30MHz\0"
|
|
||||||
"35MHz\0"
|
|
||||||
"40MHz\0"
|
|
||||||
"45MHz\0"
|
|
||||||
"50MHz\0"
|
|
||||||
"55MHz\0"
|
|
||||||
"61.44MHz\0";
|
|
||||||
|
|
||||||
ConfigManager config;
|
ConfigManager config;
|
||||||
|
|
||||||
@ -120,7 +82,7 @@ public:
|
|||||||
}
|
}
|
||||||
for (int i = 0; i < devCount; i++) {
|
for (int i = 0; i < devCount; i++) {
|
||||||
// Keep only the first 32 character of the serial number for display
|
// Keep only the first 32 character of the serial number for display
|
||||||
devListTxt += std::string(devInfoList[i].serial).substr(0, 32);
|
devListTxt += std::string(devInfoList[i].serial).substr(0, 16);
|
||||||
devListTxt += '\0';
|
devListTxt += '\0';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -142,10 +104,40 @@ public:
|
|||||||
bladerf_get_bandwidth_range(openDev, BLADERF_CHANNEL_RX(0), &bwRange);
|
bladerf_get_bandwidth_range(openDev, BLADERF_CHANNEL_RX(0), &bwRange);
|
||||||
bladerf_get_gain_range(openDev, BLADERF_CHANNEL_RX(0), &gainRange);
|
bladerf_get_gain_range(openDev, BLADERF_CHANNEL_RX(0), &gainRange);
|
||||||
|
|
||||||
srId = 1;
|
// Generate sampleRate and Bandwidth lists
|
||||||
sampleRate = sampleRates[1];
|
sampleRates.clear();
|
||||||
|
sampleRatesTxt = "";
|
||||||
|
sampleRates.push_back(srRange->min);
|
||||||
|
sampleRatesTxt += getBandwdithScaled(srRange->min);
|
||||||
|
sampleRatesTxt += '\0';
|
||||||
|
for (int i = 2000000; i < srRange->max; i += 2000000) {
|
||||||
|
sampleRates.push_back(i);
|
||||||
|
sampleRatesTxt += getBandwdithScaled(i);
|
||||||
|
sampleRatesTxt += '\0';
|
||||||
|
}
|
||||||
|
sampleRates.push_back(srRange->max);
|
||||||
|
sampleRatesTxt += getBandwdithScaled(srRange->max);
|
||||||
|
sampleRatesTxt += '\0';
|
||||||
|
|
||||||
// TODO: Gen sample rate list automatically by detecting which version is selected
|
// Generate bandwidth list
|
||||||
|
bandwidths.clear();
|
||||||
|
bandwidthsTxt = "";
|
||||||
|
bandwidths.push_back(bwRange->min);
|
||||||
|
bandwidthsTxt += getBandwdithScaled(bwRange->min);
|
||||||
|
bandwidthsTxt += '\0';
|
||||||
|
for (int i = 2000000; i < bwRange->max; i += 2000000) {
|
||||||
|
bandwidths.push_back(i);
|
||||||
|
bandwidthsTxt += getBandwdithScaled(i);
|
||||||
|
bandwidthsTxt += '\0';
|
||||||
|
}
|
||||||
|
bandwidths.push_back(bwRange->max);
|
||||||
|
bandwidthsTxt += getBandwdithScaled(bwRange->max);
|
||||||
|
bandwidthsTxt += '\0';
|
||||||
|
|
||||||
|
srId = 0;
|
||||||
|
sampleRate = sampleRates[0];
|
||||||
|
|
||||||
|
bwId = 0;
|
||||||
|
|
||||||
bladerf_close(openDev);
|
bladerf_close(openDev);
|
||||||
}
|
}
|
||||||
@ -200,7 +192,7 @@ private:
|
|||||||
// Setup device parameters
|
// Setup device parameters
|
||||||
bladerf_set_sample_rate(_this->openDev, BLADERF_CHANNEL_RX(0), _this->sampleRate, NULL);
|
bladerf_set_sample_rate(_this->openDev, BLADERF_CHANNEL_RX(0), _this->sampleRate, NULL);
|
||||||
bladerf_set_frequency(_this->openDev, BLADERF_CHANNEL_RX(0), _this->freq);
|
bladerf_set_frequency(_this->openDev, BLADERF_CHANNEL_RX(0), _this->freq);
|
||||||
bladerf_set_bandwidth(_this->openDev, BLADERF_CHANNEL_RX(0), 56000000, NULL);
|
bladerf_set_bandwidth(_this->openDev, BLADERF_CHANNEL_RX(0), _this->bandwidths[_this->bwId], NULL);
|
||||||
bladerf_set_gain_mode(_this->openDev, BLADERF_CHANNEL_RX(0), BLADERF_GAIN_MANUAL);
|
bladerf_set_gain_mode(_this->openDev, BLADERF_CHANNEL_RX(0), BLADERF_GAIN_MANUAL);
|
||||||
bladerf_set_gain(_this->openDev, BLADERF_CHANNEL_RX(0), _this->testGain);
|
bladerf_set_gain(_this->openDev, BLADERF_CHANNEL_RX(0), _this->testGain);
|
||||||
|
|
||||||
@ -261,8 +253,8 @@ private:
|
|||||||
// Save config
|
// Save config
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ImGui::Combo(CONCAT("##_balderf_sr_sel_", _this->name), &_this->srId, sampleRatesTxt)) {
|
if (ImGui::Combo(CONCAT("##_balderf_sr_sel_", _this->name), &_this->srId, _this->sampleRatesTxt.c_str())) {
|
||||||
_this->sampleRate = sampleRates[_this->srId];
|
_this->sampleRate = _this->sampleRates[_this->srId];
|
||||||
core::setInputSampleRate(_this->sampleRate);
|
core::setInputSampleRate(_this->sampleRate);
|
||||||
// Save config
|
// Save config
|
||||||
}
|
}
|
||||||
@ -280,6 +272,14 @@ private:
|
|||||||
|
|
||||||
if (_this->running) { style::endDisabled(); }
|
if (_this->running) { style::endDisabled(); }
|
||||||
|
|
||||||
|
ImGui::SetNextItemWidth(menuWidth);
|
||||||
|
if (ImGui::Combo(CONCAT("##_balderf_bw_sel_", _this->name), &_this->bwId, _this->bandwidthsTxt.c_str())) {
|
||||||
|
if (_this->running) {
|
||||||
|
bladerf_set_bandwidth(_this->openDev, BLADERF_CHANNEL_RX(0), _this->bandwidths[_this->bwId], NULL);
|
||||||
|
}
|
||||||
|
// Save config
|
||||||
|
}
|
||||||
|
|
||||||
// General config BS
|
// General config BS
|
||||||
if (ImGui::SliderInt("Test Gain", &_this->testGain, (_this->gainRange != NULL) ? _this->gainRange->min : 0, (_this->gainRange != NULL) ? _this->gainRange->max : 60)) {
|
if (ImGui::SliderInt("Test Gain", &_this->testGain, (_this->gainRange != NULL) ? _this->gainRange->min : 0, (_this->gainRange != NULL) ? _this->gainRange->max : 60)) {
|
||||||
if (_this->running) {
|
if (_this->running) {
|
||||||
@ -317,6 +317,7 @@ private:
|
|||||||
double freq;
|
double freq;
|
||||||
int devId = 0;
|
int devId = 0;
|
||||||
int srId = 0;
|
int srId = 0;
|
||||||
|
int bwId = 0;
|
||||||
int chanId = 0;
|
int chanId = 0;
|
||||||
|
|
||||||
int channelCount;
|
int channelCount;
|
||||||
@ -325,6 +326,11 @@ private:
|
|||||||
const bladerf_range* bwRange = NULL;
|
const bladerf_range* bwRange = NULL;
|
||||||
const bladerf_range* gainRange = NULL;
|
const bladerf_range* gainRange = NULL;
|
||||||
|
|
||||||
|
std::vector<uint64_t> sampleRates;
|
||||||
|
std::string sampleRatesTxt;
|
||||||
|
std::vector<uint64_t> bandwidths;
|
||||||
|
std::string bandwidthsTxt;
|
||||||
|
|
||||||
int bufferSize;
|
int bufferSize;
|
||||||
struct bladerf_stream* rxStream;
|
struct bladerf_stream* rxStream;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user