OWTS radio protobuf (Nanopb)
This folder holds the aircraft → winch telemetry message
(owts_aircraft_telemetry.proto) and the generated Nanopb sources
(*.pb.c, *.pb.h).
Prerequisites
From the repository root, use the project virtualenv (see root
pyproject.toml):
nanopb— code generatorgrpcio-tools— optional; rootuvenv is enough ifprotocis found by the generator
Install / sync deps:
cd /path/to/OWTS
uv sync
Regenerate *.pb.c / *.pb.h
Run from the repository root (so paths stay consistent):
uv run nanopb_generator -D main/proto -I main/proto main/proto/owts_aircraft_telemetry.proto
-I main/proto— search path for.protoand.options(same basename, e.g.owts_aircraft_telemetry.options).-D main/proto— write outputs next to the.proto.
After changing, commit the updated owts_aircraft_telemetry.pb.c and
owts_aircraft_telemetry.pb.h so firmware builds without running the generator
on CI.
Verbose log (debug)
uv run nanopb_generator -v -D main/proto -I main/proto main/proto/owts_aircraft_telemetry.proto
When to regenerate
- Edited
owts_aircraft_telemetry.proto(fields, types, enums). - Edited
owts_aircraft_telemetry.options(Nanopb limits, e.g. stringmax_size). - Upgraded the
nanopbPython package — regenerate and checkpb.hforPB_PROTO_HEADER_VERSION/ size defines.
Encoded size
AircraftRadioDownlink_size in owts_aircraft_telemetry.pb.h is the maximum
encoded length of one RF downlink message (used to size the SX1262 payload buffer and
packet length).