LoRa receiver flowgraph built programmatically via gr-mcp: - osmosdr_source → low_pass_filter → lora_rx → message_debug - XML-RPC server for runtime variable control (samp_rate, center_freq) with introspection enabled - Qt frequency sink for spectrum visualization Docker infrastructure: - gnuradio-lora: gr-lora_sdr OOT module from EPFL (chirp spread spectrum) - gnuradio-lora-runtime: combined runtime with Xvfb + gr-lora_sdr - Compose file, entrypoint, and launch script for LoRa receiver Also includes: - lora_scanner.py: multi-SF LoRa scanner example - lora_infrastructure_test.py: hardware-free pipeline validation (signal_source → throttle → null_sink + xmlrpc variable control) - Integration tests for LoRa scanner flowgraph construction End-to-end pipeline validated: launch_flowgraph → connect_to_container → list_variables → get/set_variable all working through Docker + XML-RPC.
23 lines
763 B
Docker
23 lines
763 B
Docker
FROM gnuradio-runtime:latest
|
|
|
|
# Build gr-lora_sdr (EPFL chirp spread spectrum OOT module)
|
|
# https://github.com/tapparelj/gr-lora_sdr
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
build-essential cmake git \
|
|
libvolk2-dev libboost-all-dev pybind11-dev \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
WORKDIR /build
|
|
RUN git clone --depth 1 --branch master \
|
|
https://github.com/tapparelj/gr-lora_sdr.git && \
|
|
cd gr-lora_sdr && mkdir build && cd build && \
|
|
cmake -DCMAKE_INSTALL_PREFIX=/usr .. && \
|
|
make -j$(nproc) && make install && \
|
|
ldconfig && \
|
|
rm -rf /build
|
|
|
|
WORKDIR /flowgraphs
|
|
|
|
# Bridge Python site-packages path (cmake installs to versioned path)
|
|
ENV PYTHONPATH="/usr/lib/python3.11/site-packages:${PYTHONPATH}"
|