RigOtaOptions

Ready-to-run robot software for hobby robotics.

In the namespace banter_bench. Declared in src/tools/banter-bench/RigOta.hpp.

Detailed description

`banter-bench rig-ota`: send one packet over the air through BanterLab's NODE path and report whether it decoded.

§C9 K-5. Why this exists at all: the codec bake-off cannot verify K-3. It drives its own raw QAudioSource/QAudioSink loopback and never touches `BanterNodeWidget`, so a green bake-off says nothing about whether the lab's audio still works after the DAG migration. BanterLab had no headless OTA path, which is exactly why the widget could ship with a hardcoded 44100 and no channel extract without anyone noticing.

It needs the physical rig, which is why it was five environment variables and a `QSKIP` inside `testBanter` — a suite CI builds and runs, in which it asserted nothing on every machine that lacked an AudioBox (no-environment-variables rows T2, T3). A program that needs hardware is a tool, and a tool says what it needs and exits.

Before running: set the mic gain, and find the card number first — it follows USB enumeration and has moved between sessions.

grep VSL /proc/asound/cards amixer -cN cset numid=11 255 ; amixer -cN cset numid=12 255

In this section