Skip to main content

Python protocol definition for the Blueye drones

Project description

blueye.protocol

Tests

Deprecation notice

Blunux 3.0 introduces a new protocol based on Protobuf messages passed over a ZeroMQ layer. Starting with Blunux 3.1 the old TCP/UDP based protocol will no longer be supported/compatible.

About

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.8 or newer.

Installation

pip install blueye.protocol

Development

Dependency/Package management

We use Poetry for dependency/package management, see the Poetry docs for installation instructions.

Code generators

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

Tests

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 test

or directly using pytest (if you don't want to generate the definitions)

pytest

setup.py

Since bitbake doesn't have support for pyproject.toml files yet, we need to include a setup.py file to specify the dependencies needed. There's an invoke task for generating the file that can be run with

invoke generate-setup-py

If you are running MacOS, you need to install gnu-tar

brew install gnu-tar

and then run the follwing line before the invoke command:

PATH="/opt/homebrew/opt/gnu-tar/libexec/gnubin:$PATH"

Be sure to run this script and commit the setup.py file when the dependencies have changed.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

blueye_protocol-2.6.0.tar.gz (50.6 kB view details)

Uploaded Source

Built Distribution

blueye_protocol-2.6.0-py3-none-any.whl (57.5 kB view details)

Uploaded Python 3

File details

Details for the file blueye_protocol-2.6.0.tar.gz.

File metadata

  • Download URL: blueye_protocol-2.6.0.tar.gz
  • Upload date:
  • Size: 50.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.3.2 CPython/3.10.15 Linux/6.5.0-1025-azure

File hashes

Hashes for blueye_protocol-2.6.0.tar.gz
Algorithm Hash digest
SHA256 a53f4f635973c3eae3bea507d01998e345d4b7b6e0906ec4042eed8787a1fa93
MD5 3ab095f7bc3072402ecfd3bcd1770542
BLAKE2b-256 b781dd6d4474431a7c038ea2a5d8d5ea5eb29d2571f6801a262296c167b94a56

See more details on using hashes here.

File details

Details for the file blueye_protocol-2.6.0-py3-none-any.whl.

File metadata

  • Download URL: blueye_protocol-2.6.0-py3-none-any.whl
  • Upload date:
  • Size: 57.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.3.2 CPython/3.10.15 Linux/6.5.0-1025-azure

File hashes

Hashes for blueye_protocol-2.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 baa1b7f7584142bc92b95f58c38bd8e159c8b3c4ea0e143256ad5ebbc1a81eec
MD5 bac7dbeb4917fdd13274da871ad9b816
BLAKE2b-256 77175d45ee3121ee8226a0ff6a147ef0fc66ad47984df1206f9d1f4039d1779a

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page