airspy USB bitpacking

pull/6/head
Michal Fratczak 2018-12-04 22:32:09 +01:00
rodzic fd4caeb9a0
commit c0fe342a40
4 zmienionych plików z 37 dodań i 0 usunięć

Wyświetl plik

@ -349,6 +349,20 @@ bool IQSource_SoapySDR::setOption(const std::string& option, const void* p_data)
}
return true;
}
else if(option == "usb_pack_double")
{
double value = *reinterpret_cast<double*>(p_data_nonconst);
if(p_device_)
{
if(b_verbose)
cout<<"Set "<<option<<" = "<<setprecision(12)<<value<<endl;
if(value)
p_device_->writeSetting("bitpack", "true");
else
p_device_->writeSetting("bitpack", "false");
}
return true;
}
else
{
cout<<"IQSource_SoapySDR::setOption error. Unknown option: "<<option<<endl;
@ -423,6 +437,19 @@ bool IQSource_SoapySDR::getOption(const std::string& option, void* p_data)
}
return false;
}
else if(option == "usb_pack_double")
{
if(p_device_)
{
double biastee_val =
p_device_->readSetting("bitpack") == string("true");
*reinterpret_cast<double*>(p_data) = biastee_val;
if(b_verbose)
cout<<"getOption "<<option<<" "<<biastee_val<<endl;
return true;
}
return false;
}
else
{
cout<<"IQSource_SoapySDR::getOption error. Unknown option: "<<option<<endl;

Wyświetl plik

@ -85,6 +85,7 @@ public:
bool live_print_ = true;
bool afc_ = false;
double ppm_ = 0;
bool usb_pack_ = false; // airspy usb bitpack
std::string sentence_cmd_ = "";
std::string habitat_payload_ = "";
@ -110,6 +111,7 @@ public:
oFile<<"rtty = "<<GLOBALS::get().rtty_ascii_bits_<<endl;
oFile<<"rtty = "<<GLOBALS::get().rtty_ascii_stops_<<endl;
oFile<<"afc = "<<GLOBALS::get().afc_<<endl;
oFile<<"usb_pack = "<<GLOBALS::get().usb_pack_<<endl;
oFile<<"sentence_cmd = "<<GLOBALS::get().sentence_cmd_<<endl;
oFile<<"payload = "<<GLOBALS::get().habitat_payload_<<endl;
}
@ -140,6 +142,7 @@ public:
cout<<"\trtty_ascii_bits: "<<GLOBALS::get().rtty_ascii_bits_<<endl;
cout<<"\trtty_ascii_stops: "<<GLOBALS::get().rtty_ascii_stops_<<endl;
cout<<"\tbiast: "<<GLOBALS::get().biast_<<endl;
cout<<"\tusb_pack: "<<GLOBALS::get().usb_pack_<<endl;
}

Wyświetl plik

@ -146,6 +146,8 @@ bool SetupDevice(SoapySDR::Kwargs& o_device)
double biastee = GLOBALS::get().biast_;
GLOBALS::get().p_iq_source_->setOption("biastee_double", &biastee);
GLOBALS::get().p_iq_source_->setOption("sampling_rate_double", &GLOBALS::get().sampling_rate_);
double usb_pack = GLOBALS::get().usb_pack_;
GLOBALS::get().p_iq_source_->setOption("usb_pack_double", &usb_pack);
// this works only if device is running. not yet here
// GLOBALS::get().p_iq_source_->setOption("ppm_double", &GLOBALS::get().ppm_);

Wyświetl plik

@ -93,6 +93,7 @@ void prog_opts(int ac, char* av[])
("biast", po::value<bool>(), "biasT, values: 0, 1")
("bias_t", po::value<bool>(), "biasT, values: 0, 1")
("afc", po::value<bool>(), "Auto Frequency Correction, values: 0, 1")
("usb_pack", po::value<bool>(), "AirSpy USB bit packing")
("sentence_cmd", po::value<string>(), "Call external command with sentence as parameter")
@ -204,6 +205,10 @@ void prog_opts(int ac, char* av[])
{
GLOBALS::get().afc_ = vm["afc"].as<bool>();
}
if (vm.count("usb_pack"))
{
GLOBALS::get().usb_pack_ = vm["usb_pack"].as<bool>();
}
if (vm.count("rtty"))
{
vector<float> rtty_tokens = vm["rtty"].as< vector<float> >();