mirror of
https://github.com/30hours/blah2.git
synced 2024-11-18 12:33:58 +00:00
Removed UHD source build and used versioned binary instead
This commit is contained in:
parent
3714d8e347
commit
068ae901f1
2 changed files with 30 additions and 41 deletions
35
Dockerfile
35
Dockerfile
|
@ -3,13 +3,14 @@ LABEL maintainer="30hours <nathan@30hours.dev>"
|
||||||
|
|
||||||
WORKDIR /blah2
|
WORKDIR /blah2
|
||||||
ADD lib lib
|
ADD lib lib
|
||||||
RUN apt-get update \
|
RUN apt-get update && apt-get install -y software-properties-common \
|
||||||
&& apt-get install -y g++ make cmake git curl zip unzip doxygen graphviz \
|
&& apt-add-repository ppa:ettusresearch/uhd \
|
||||||
|
&& apt-get update \
|
||||||
|
&& DEBIAN_FRONTEND=noninteractive TZ=Etc/UTC apt-get install -y \
|
||||||
|
g++ make cmake git curl zip unzip doxygen graphviz \
|
||||||
libfftw3-dev pkg-config gfortran \
|
libfftw3-dev pkg-config gfortran \
|
||||||
# UHD api dependencies
|
libuhd-dev=4.6.0.0-0ubuntu1~jammy1 \
|
||||||
autoconf automake build-essential ccache cpufrequtils ethtool inetutils-tools \
|
uhd-host=4.6.0.0-0ubuntu1~jammy1 \
|
||||||
libboost-all-dev libncurses5 libncurses5-dev libusb-1.0-0 libusb-1.0-0-dev libusb-dev python3-dev \
|
|
||||||
python3-mako python3-numpy python3-requests python3-scipy python3-setuptools python3-ruamel.yaml \
|
|
||||||
&& apt-get autoremove -y \
|
&& apt-get autoremove -y \
|
||||||
&& apt-get clean -y \
|
&& apt-get clean -y \
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
@ -23,23 +24,15 @@ RUN cd /blah2/lib && vcpkg integrate install \
|
||||||
|
|
||||||
# install SDRplay API
|
# install SDRplay API
|
||||||
RUN chmod +x /blah2/lib/sdrplay-3.0.7/SDRplay_RSP_API-Linux-3.07.1.run \
|
RUN chmod +x /blah2/lib/sdrplay-3.0.7/SDRplay_RSP_API-Linux-3.07.1.run \
|
||||||
&& /blah2/lib/sdrplay-3.0.7/SDRplay_RSP_API-Linux-3.07.1.run --tar -xvf -C /blah2/lib/sdrplay-3.0.7 \
|
&& /blah2/lib/sdrplay-3.0.7/SDRplay_RSP_API-Linux-3.07.1.run --tar -xvf -C /blah2/lib/sdrplay-3.0.7 \
|
||||||
&& cp /blah2/lib/sdrplay-3.0.7/x86_64/libsdrplay_api.so.3.07 /usr/local/lib/libsdrplay_api.so \
|
&& cp /blah2/lib/sdrplay-3.0.7/x86_64/libsdrplay_api.so.3.07 /usr/local/lib/libsdrplay_api.so \
|
||||||
&& cp /blah2/lib/sdrplay-3.0.7/x86_64/libsdrplay_api.so.3.07 /usr/local/lib/libsdrplay_api.so.3.07 \
|
&& cp /blah2/lib/sdrplay-3.0.7/x86_64/libsdrplay_api.so.3.07 /usr/local/lib/libsdrplay_api.so.3.07 \
|
||||||
&& cp /blah2/lib/sdrplay-3.0.7/inc/* /usr/local/include \
|
&& cp /blah2/lib/sdrplay-3.0.7/inc/* /usr/local/include \
|
||||||
&& chmod 644 /usr/local/lib/libsdrplay_api.so /usr/local/lib/libsdrplay_api.so.3.07 \
|
&& chmod 644 /usr/local/lib/libsdrplay_api.so /usr/local/lib/libsdrplay_api.so.3.07 \
|
||||||
&& ldconfig
|
&& ldconfig
|
||||||
|
|
||||||
# install UHD API
|
# install UHD API
|
||||||
RUN git clone -b v4.6.0.0 --depth 1 https://github.com/EttusResearch/uhd /opt/uhd \
|
RUN uhd_images_downloader
|
||||||
&& mkdir -p /opt/uhd/host/build && cd /opt/uhd/host/build \
|
|
||||||
&& cmake -DCMAKE_INSTALL_PREFIX=/opt/uhd -DENABLE_PYTHON_API=OFF \
|
|
||||||
-DENABLE_EXAMPLES=OFF -DENABLE_TESTS=OFF -DENABLE_USRP1=OFF \
|
|
||||||
-DENABLE_USRP2=OFF -DENABLE_OCTOCLOCK=OFF \
|
|
||||||
-DENABLE_MANUAL=OFF -DENABLE_DOXYGEN=OFF -DENABLE_MAN_PAGES=OFF \
|
|
||||||
-DENABLE_DPDK=OFF ../ && make && make install && ldconfig
|
|
||||||
ENV LD_LIBRARY_PATH=/opt/uhd/lib:$LD_LIBRARY_PATH
|
|
||||||
RUN /opt/uhd/lib/uhd/utils/uhd_images_downloader.py
|
|
||||||
|
|
||||||
FROM blah2_env as blah2
|
FROM blah2_env as blah2
|
||||||
LABEL maintainer="30hours <nathan@30hours.dev>"
|
LABEL maintainer="30hours <nathan@30hours.dev>"
|
||||||
|
|
|
@ -9,6 +9,7 @@
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
#include <uhd/usrp/multi_usrp.hpp>
|
#include <uhd/usrp/multi_usrp.hpp>
|
||||||
#include <complex>
|
#include <complex>
|
||||||
|
@ -38,20 +39,20 @@ void Usrp::stop()
|
||||||
|
|
||||||
void Usrp::process(IqData *buffer1, IqData *buffer2)
|
void Usrp::process(IqData *buffer1, IqData *buffer2)
|
||||||
{
|
{
|
||||||
|
// tmp vars
|
||||||
|
std::string address = "localhost";
|
||||||
|
std::string subdev = "A:A A:B";
|
||||||
|
std::vector<std::string> antenna = {"RX2", "RX2"};
|
||||||
|
std::vector<double> gain = {20.0, 20.0};
|
||||||
|
|
||||||
// create a USRP object
|
// create a USRP object
|
||||||
uhd::usrp::multi_usrp::sptr usrp =
|
uhd::usrp::multi_usrp::sptr usrp =
|
||||||
uhd::usrp::multi_usrp::make("localhost");
|
uhd::usrp::multi_usrp::make(address);
|
||||||
|
|
||||||
usrp->set_rx_subdev_spec(uhd::usrp::subdev_spec_t("A:A A:B"), 0);
|
usrp->set_rx_subdev_spec(uhd::usrp::subdev_spec_t(subdev), 0);
|
||||||
//usrp->set_rx_subdev_spec(uhd::usrp::subdev_spec_t("A:B"), 1);
|
|
||||||
|
|
||||||
usrp->set_rx_antenna ("RX2", 0);
|
usrp->set_rx_antenna(antenna[0], 0);
|
||||||
usrp->set_rx_antenna ("RX2", 1);
|
usrp->set_rx_antenna(antenna[1], 1);
|
||||||
|
|
||||||
std::cout << "testy " << std::endl;
|
|
||||||
std::cout << usrp->get_rx_subdev_name(0) << std::endl;
|
|
||||||
std::cout << usrp->get_rx_antenna(0) << std::endl;
|
|
||||||
std::cout << usrp->get_rx_antenna(1) << std::endl;
|
|
||||||
|
|
||||||
// set sample rate across all channels
|
// set sample rate across all channels
|
||||||
usrp->set_rx_rate((double(fs)));
|
usrp->set_rx_rate((double(fs)));
|
||||||
|
@ -62,9 +63,8 @@ void Usrp::process(IqData *buffer1, IqData *buffer2)
|
||||||
usrp->set_rx_freq(centerFrequency, 1);
|
usrp->set_rx_freq(centerFrequency, 1);
|
||||||
|
|
||||||
// set the gain
|
// set the gain
|
||||||
double gain = 20.0; // Replace with your desired gain
|
usrp->set_rx_gain(gain[0], 0);
|
||||||
usrp->set_rx_gain(gain, 0);
|
usrp->set_rx_gain(gain[1], 1);
|
||||||
usrp->set_rx_gain(gain, 1);
|
|
||||||
|
|
||||||
// create a receive streamer
|
// create a receive streamer
|
||||||
uhd::stream_args_t streamArgs("fc32", "sc16");
|
uhd::stream_args_t streamArgs("fc32", "sc16");
|
||||||
|
@ -84,7 +84,6 @@ void Usrp::process(IqData *buffer1, IqData *buffer2)
|
||||||
// setup stream
|
// setup stream
|
||||||
uhd::rx_metadata_t metadata;
|
uhd::rx_metadata_t metadata;
|
||||||
uhd::stream_cmd_t streamCmd = uhd::stream_cmd_t::STREAM_MODE_START_CONTINUOUS;
|
uhd::stream_cmd_t streamCmd = uhd::stream_cmd_t::STREAM_MODE_START_CONTINUOUS;
|
||||||
//streamCmd.stream_now = rxStreamer->get_num_channels() == 1;
|
|
||||||
streamCmd.stream_now = false;
|
streamCmd.stream_now = false;
|
||||||
streamCmd.time_spec = usrp->get_time_now() + uhd::time_spec_t(0.05);
|
streamCmd.time_spec = usrp->get_time_now() + uhd::time_spec_t(0.05);
|
||||||
rxStreamer->issue_stream_cmd(streamCmd);
|
rxStreamer->issue_stream_cmd(streamCmd);
|
||||||
|
@ -92,25 +91,22 @@ void Usrp::process(IqData *buffer1, IqData *buffer2)
|
||||||
while(true)
|
while(true)
|
||||||
{
|
{
|
||||||
// Receive samples
|
// Receive samples
|
||||||
size_t numReceived1 = rxStreamer->recv(buff_ptrs, samps_per_buff, metadata);
|
size_t nReceived = rxStreamer->recv(buff_ptrs, samps_per_buff, metadata);
|
||||||
|
|
||||||
// Check for errors
|
// print errors
|
||||||
if (metadata.error_code != uhd::rx_metadata_t::ERROR_CODE_NONE) {
|
if (metadata.error_code != uhd::rx_metadata_t::ERROR_CODE_NONE) {
|
||||||
std::cerr << "Error during reception: " << metadata.strerror() << std::endl;
|
std::cerr << "Error during reception: " << metadata.strerror() << std::endl;
|
||||||
//return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
buffer1->lock();
|
buffer1->lock();
|
||||||
buffer2->lock();
|
buffer2->lock();
|
||||||
for (size_t i = 0; i < numReceived1; i++)
|
for (size_t i = 0; i < nReceived; i++)
|
||||||
{
|
{
|
||||||
buffer1->push_back({(double)buff_ptrs[0][i].real(), (double)buff_ptrs[0][i].imag()});
|
buffer1->push_back({(double)buff_ptrs[0][i].real(), (double)buff_ptrs[0][i].imag()});
|
||||||
buffer2->push_back({(double)buff_ptrs[1][i].real(), (double)buff_ptrs[1][i].imag()});
|
buffer2->push_back({(double)buff_ptrs[1][i].real(), (double)buff_ptrs[1][i].imag()});
|
||||||
}
|
}
|
||||||
buffer1->unlock();
|
buffer1->unlock();
|
||||||
buffer2->unlock();
|
buffer2->unlock();
|
||||||
|
|
||||||
sleep(0.1);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue