This repository contains a python library that defines how to communicate with the underwater drones made by Blueye Robotics.
The protocol itself is defined in another repository, ProtocolDefinitions, as is stored as a submodule in this repository. The python code in this repository is (mostly) generated from those definitions.
The blueye.protocol package's primary use case is in the blueye.sdk. The SDK implements the necessary "plumbing" to utilize the protocol defined here in blueye.protocol, and will make interacting with the Blueye drones much easier. If you wish to interact with the drones in your own project we recommend using the blueye.sdk package, not blueye.protocol directly.
This package requires Python 3.10 or newer.
pip install blueye.protocolWe use uv for dependency/package management, see the uv docs for installation instructions.
Important: This repository includes generated code. If the protocol definitions are changed the generated files need to be updated and committed. The generators are run with:
invoke generate-udp
invoke generate-tcp
invoke generate-proto
The tests are located in the tests folder, and written using the pytest library.
The tests can be run using invoke (to ensure that the protocol files are updated)
invoke testor directly using pytest (if you don't want to generate the definitions)
pytest