blueye-protocol


Nameblueye-protocol JSON
Version 2.6.0 PyPI version JSON
download
home_pagehttps://www.blueyerobotics.com
SummaryPython protocol definition for the Blueye drones
upload_time2024-11-04 12:06:35
maintainerNone
docs_urlNone
authorSindre Hansen
requires_python<4.0,>=3.9
licenseLGPL-3.0
keywords blueye robotics protocol
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # blueye.protocol
[![Tests](https://github.com/BluEye-Robotics/blueye.protocol/workflows/Tests/badge.svg)](https://github.com/BluEye-Robotics/blueye.protocol/actions)

**Deprecation notice**

Blunux 3.0 introduces a new protocol based on [Protobuf](https://developers.google.com/protocol-buffers/) messages passed over a [ZeroMQ](https://zeromq.org/) 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](https://blueyerobotics.com).

The protocol itself is defined in another repository, [ProtocolDefinitions](https://github.com/BluEye-Robotics/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`](https://github.com/BluEye-Robotics/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
```shell
pip install blueye.protocol
```

## Development

### Dependency/Package management
We use Poetry for dependency/package management, see the [Poetry docs](https://python-poetry.org/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)

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

``` shell
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
``` shell
invoke generate-setup-py
```

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

and then run the follwing line before the invoke command:
``` shell
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.**

            

Raw data

            {
    "_id": null,
    "home_page": "https://www.blueyerobotics.com",
    "name": "blueye-protocol",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.9",
    "maintainer_email": null,
    "keywords": "Blueye, Robotics, Protocol",
    "author": "Sindre Hansen",
    "author_email": "sindre.hansen@blueye.no",
    "download_url": "https://files.pythonhosted.org/packages/b7/81/dd6d4474431a7c038ea2a5d8d5ea5eb29d2571f6801a262296c167b94a56/blueye_protocol-2.6.0.tar.gz",
    "platform": null,
    "description": "# blueye.protocol\n[![Tests](https://github.com/BluEye-Robotics/blueye.protocol/workflows/Tests/badge.svg)](https://github.com/BluEye-Robotics/blueye.protocol/actions)\n\n**Deprecation notice**\n\nBlunux 3.0 introduces a new protocol based on [Protobuf](https://developers.google.com/protocol-buffers/) messages passed over a [ZeroMQ](https://zeromq.org/) layer. Starting with Blunux 3.1 the old TCP/UDP based protocol will no longer be supported/compatible.\n\n\n## About\nThis repository contains a python library that defines how to communicate with the underwater drones made by [Blueye Robotics](https://blueyerobotics.com).\n\nThe protocol itself is defined in another repository, [ProtocolDefinitions](https://github.com/BluEye-Robotics/ProtocolDefinitions), as is stored as a submodule in this repository. The python code in this repository is (mostly) generated from those definitions.\n\nThe `blueye.protocol` package's primary use case is in the [`blueye.sdk`](https://github.com/BluEye-Robotics/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.\n\nThis package requires Python 3.8 or newer.\n\n## Installation\n```shell\npip install blueye.protocol\n```\n\n## Development\n\n### Dependency/Package management\nWe use Poetry for dependency/package management, see the [Poetry docs](https://python-poetry.org/docs/) for installation instructions.\n\n\n### Code generators\n**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:\n\n`invoke generate-udp`\n\n`invoke generate-tcp`\n\n`invoke generate-proto`\n\n\n### Tests\nThe tests are located in the `tests` folder, and written using the `pytest` library.\n\nThe tests can be run using invoke (to ensure that the protocol files are updated)\n\n``` shell\ninvoke test\n```\nor directly using pytest (if you don't want to generate the definitions)\n\n``` shell\npytest\n```\n\n### `setup.py`\nSince bitbake doesn't have support for pyproject.toml files yet, we need to include a\n`setup.py` file to specify the dependencies needed. There's an invoke task for\ngenerating the file that can be run with\n``` shell\ninvoke generate-setup-py\n```\n\nIf you are running MacOS, you need to install gnu-tar\n``` shell\nbrew install gnu-tar\n```\n\nand then run the follwing line before the invoke command:\n``` shell\nPATH=\"/opt/homebrew/opt/gnu-tar/libexec/gnubin:$PATH\"\n```\n\n**Be sure to run this script and commit the `setup.py` file when the dependencies have\nchanged.**\n",
    "bugtrack_url": null,
    "license": "LGPL-3.0",
    "summary": "Python protocol definition for the Blueye drones",
    "version": "2.6.0",
    "project_urls": {
        "Homepage": "https://www.blueyerobotics.com",
        "Repository": "https://github.com/blueye-robotics/blueye.protocol"
    },
    "split_keywords": [
        "blueye",
        " robotics",
        " protocol"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "77175d45ee3121ee8226a0ff6a147ef0fc66ad47984df1206f9d1f4039d1779a",
                "md5": "bac7dbeb4917fdd13274da871ad9b816",
                "sha256": "baa1b7f7584142bc92b95f58c38bd8e159c8b3c4ea0e143256ad5ebbc1a81eec"
            },
            "downloads": -1,
            "filename": "blueye_protocol-2.6.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "bac7dbeb4917fdd13274da871ad9b816",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.9",
            "size": 57509,
            "upload_time": "2024-11-04T12:06:34",
            "upload_time_iso_8601": "2024-11-04T12:06:34.135762Z",
            "url": "https://files.pythonhosted.org/packages/77/17/5d45ee3121ee8226a0ff6a147ef0fc66ad47984df1206f9d1f4039d1779a/blueye_protocol-2.6.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b781dd6d4474431a7c038ea2a5d8d5ea5eb29d2571f6801a262296c167b94a56",
                "md5": "3ab095f7bc3072402ecfd3bcd1770542",
                "sha256": "a53f4f635973c3eae3bea507d01998e345d4b7b6e0906ec4042eed8787a1fa93"
            },
            "downloads": -1,
            "filename": "blueye_protocol-2.6.0.tar.gz",
            "has_sig": false,
            "md5_digest": "3ab095f7bc3072402ecfd3bcd1770542",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.9",
            "size": 50556,
            "upload_time": "2024-11-04T12:06:35",
            "upload_time_iso_8601": "2024-11-04T12:06:35.394291Z",
            "url": "https://files.pythonhosted.org/packages/b7/81/dd6d4474431a7c038ea2a5d8d5ea5eb29d2571f6801a262296c167b94a56/blueye_protocol-2.6.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-11-04 12:06:35",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "blueye-robotics",
    "github_project": "blueye.protocol",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "blueye-protocol"
}
        
Elapsed time: 1.01705s