mirror of
https://github.com/30hours/blah2.git
synced 2024-11-08 12:25:42 +00:00
Update HackRf.cpp
gainLna and gainVga not populated so insert static values for now. this needs fixing (I presume in blah2.cpp?) fixed the device check, previously it only triggered if 1 device was connected, but not 0 devices. other fixes for using pointers instead of deferenced pointers, etc.
This commit is contained in:
parent
ea3011afd1
commit
660618716c
1 changed files with 27 additions and 22 deletions
|
@ -56,25 +56,11 @@ void HackRf::start()
|
||||||
check_status(status, "Failed to initialise HackRF");
|
check_status(status, "Failed to initialise HackRF");
|
||||||
hackrf_device_list_t *list;
|
hackrf_device_list_t *list;
|
||||||
list = hackrf_device_list();
|
list = hackrf_device_list();
|
||||||
if (list->devicecount < 2)
|
if (!list || list->devicecount < 2)
|
||||||
{
|
{
|
||||||
check_status(-1, "Failed to find 2 HackRF devices.");
|
check_status(-1, "Failed to find 2 HackRF devices.");
|
||||||
}
|
}
|
||||||
|
|
||||||
// reference config
|
|
||||||
status = hackrf_open_by_serial(serial[0].c_str(), &dev[0]);
|
|
||||||
check_status(status, "Failed to open device.");
|
|
||||||
status = hackrf_set_freq(dev[0], fc);
|
|
||||||
check_status(status, "Failed to set frequency.");
|
|
||||||
status = hackrf_set_sample_rate(dev[0], fs);
|
|
||||||
check_status(status, "Failed to set sample rate.");
|
|
||||||
status = hackrf_set_amp_enable(dev[0], ampEnable[0] ? 1 : 0);
|
|
||||||
check_status(status, "Failed to set AMP status.");
|
|
||||||
status = hackrf_set_lna_gain(dev[0], gainLna[0]);
|
|
||||||
check_status(status, "Failed to set LNA gain.");
|
|
||||||
status = hackrf_set_vga_gain(dev[0], gainVga[0]);
|
|
||||||
check_status(status, "Failed to set VGA gain.");
|
|
||||||
|
|
||||||
// surveillance config
|
// surveillance config
|
||||||
status = hackrf_open_by_serial(serial[1].c_str(), &dev[1]);
|
status = hackrf_open_by_serial(serial[1].c_str(), &dev[1]);
|
||||||
check_status(status, "Failed to open device.");
|
check_status(status, "Failed to open device.");
|
||||||
|
@ -84,12 +70,31 @@ void HackRf::start()
|
||||||
check_status(status, "Failed to set sample rate.");
|
check_status(status, "Failed to set sample rate.");
|
||||||
status = hackrf_set_amp_enable(dev[1], ampEnable[1] ? 1 : 0);
|
status = hackrf_set_amp_enable(dev[1], ampEnable[1] ? 1 : 0);
|
||||||
check_status(status, "Failed to set AMP status.");
|
check_status(status, "Failed to set AMP status.");
|
||||||
status = hackrf_set_lna_gain(dev[1], gainLna[1]);
|
//status = hackrf_set_lna_gain(dev[1], gainLna[1]); //needs fixing + 3 others below.. var isn't populated
|
||||||
|
status = hackrf_set_lna_gain(dev[1], 32);
|
||||||
check_status(status, "Failed to set LNA gain.");
|
check_status(status, "Failed to set LNA gain.");
|
||||||
status = hackrf_set_vga_gain(dev[1], gainVga[1]);
|
//status = hackrf_set_vga_gain(dev[1], gainVga[1]);
|
||||||
|
status = hackrf_set_vga_gain(dev[1], 30);
|
||||||
check_status(status, "Failed to set VGA gain.");
|
check_status(status, "Failed to set VGA gain.");
|
||||||
status = hackrf_set_hw_sync_mode(dev[1], 1);
|
status = hackrf_set_hw_sync_mode(dev[1], 1);
|
||||||
check_status(status, "Failed to enable hardware synchronising.");
|
check_status(status, "Failed to enable hardware synchronising.");
|
||||||
|
|
||||||
|
// reference config
|
||||||
|
status = hackrf_open_by_serial(serial[0].c_str(), &dev[0]);
|
||||||
|
check_status(status, "Failed to open device.");
|
||||||
|
status = hackrf_set_freq(dev[0], fc);
|
||||||
|
check_status(status, "Failed to set frequency.");
|
||||||
|
status = hackrf_set_sample_rate(dev[0], fs);
|
||||||
|
check_status(status, "Failed to set sample rate.");
|
||||||
|
status = hackrf_set_amp_enable(dev[0], ampEnable[0] ? 1 : 0);
|
||||||
|
check_status(status, "Failed to set AMP status.");
|
||||||
|
//status = hackrf_set_lna_gain(dev[0], gainLna[0]);
|
||||||
|
status = hackrf_set_lna_gain(dev[0], 32);
|
||||||
|
check_status(status, "Failed to set LNA gain.");
|
||||||
|
//status = hackrf_set_vga_gain(dev[0], gainVga[0]);
|
||||||
|
status = hackrf_set_vga_gain(dev[0], 30);
|
||||||
|
check_status(status, "Failed to set VGA gain.");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void HackRf::stop()
|
void HackRf::stop()
|
||||||
|
@ -104,9 +109,9 @@ void HackRf::stop()
|
||||||
void HackRf::process(IqData *buffer1, IqData *buffer2)
|
void HackRf::process(IqData *buffer1, IqData *buffer2)
|
||||||
{
|
{
|
||||||
int status;
|
int status;
|
||||||
status = hackrf_start_rx(dev[1], &rx_callback, buffer2);
|
status = hackrf_start_rx(dev[1], rx_callback, buffer2);
|
||||||
check_status(status, "Failed to start RX streaming.");
|
check_status(status, "Failed to start RX streaming.");
|
||||||
status = hackrf_start_rx(dev[0], &rx_callback, buffer1);
|
status = hackrf_start_rx(dev[0], rx_callback, buffer1);
|
||||||
check_status(status, "Failed to start RX streaming.");
|
check_status(status, "Failed to start RX streaming.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -116,14 +121,14 @@ int HackRf::rx_callback(hackrf_transfer* transfer)
|
||||||
int8_t* buffer_hackrf = (int8_t*) transfer->buffer;
|
int8_t* buffer_hackrf = (int8_t*) transfer->buffer;
|
||||||
|
|
||||||
buffer_blah2->lock();
|
buffer_blah2->lock();
|
||||||
|
|
||||||
for (size_t i = 0; i < transfer->valid_length; i+2)
|
for (size_t i = 0; i < transfer->buffer_length; i=i+2)
|
||||||
{
|
{
|
||||||
double iqi = static_cast<double>(buffer_hackrf[i]);
|
double iqi = static_cast<double>(buffer_hackrf[i]);
|
||||||
double iqq = static_cast<double>(buffer_hackrf[i+1]);
|
double iqq = static_cast<double>(buffer_hackrf[i+1]);
|
||||||
buffer_blah2->push_back({iqi, iqq});
|
buffer_blah2->push_back({iqi, iqq});
|
||||||
}
|
}
|
||||||
|
|
||||||
buffer_blah2->unlock();
|
buffer_blah2->unlock();
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Reference in a new issue