Add ControlPort/Thrift support as an alternative transport to XML-RPC: New middleware: - ThriftMiddleware wrapping GNURadioControlPortClient New MCP tools: - connect_controlport, disconnect_controlport - get_knobs (with regex filtering), set_knobs (atomic) - get_knob_properties (units, min/max, description) - get_performance_counters (throughput, timing, buffers) - post_message (PMT injection to block ports) Docker support: - enable_controlport param in launch_flowgraph - ENABLE_CONTROLPORT env in entrypoint.sh - ControlPort config generation in ~/.gnuradio/config.conf Models: KnobModel, KnobPropertiesModel, PerfCounterModel, ThriftConnectionInfoModel, plus ContainerModel updates.
29 lines
600 B
Docker
29 lines
600 B
Docker
FROM librespace/gnuradio:latest
|
|
|
|
# Xvfb for headless QT rendering, ImageMagick for screenshots,
|
|
# Mesa for software OpenGL, x11vnc for optional visual debugging
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
xvfb \
|
|
x11vnc \
|
|
imagemagick \
|
|
mesa-utils \
|
|
libgl1-mesa-dri \
|
|
fonts-dejavu-core \
|
|
x11-utils \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
COPY entrypoint.sh /entrypoint.sh
|
|
RUN chmod +x /entrypoint.sh
|
|
|
|
WORKDIR /flowgraphs
|
|
|
|
ENV DISPLAY=:99
|
|
ENV XMLRPC_PORT=8080
|
|
ENV CONTROLPORT_PORT=9090
|
|
|
|
EXPOSE 8080
|
|
EXPOSE 5900
|
|
EXPOSE 9090
|
|
|
|
ENTRYPOINT ["/entrypoint.sh"]
|