blueye-protocol


Nameblueye-protocol JSON
Version 2.4.0 PyPI version JSON
download
home_pagehttps://www.blueyerobotics.com
SummaryPython protocol definition for the Blueye drones
upload_time2023-10-18 07:22:45
maintainer
docs_urlNone
authorSindre Hansen
requires_python>=3.9,<4.0
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": "",
    "docs_url": null,
    "requires_python": ">=3.9,<4.0",
    "maintainer_email": "",
    "keywords": "Blueye,Robotics,Protocol",
    "author": "Sindre Hansen",
    "author_email": "sindre.hansen@blueye.no",
    "download_url": "https://files.pythonhosted.org/packages/31/96/cda6e7b198f9a6f8071f7e977dcc34283c1cd5820ae3afe748df2dd9ca30/blueye_protocol-2.4.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.4.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": "f15b504c97c7bd29c14a44fcbf65372edd831a76d6474309213e9d294ad0d1e9",
                "md5": "97b1190bbd6f941aadd870e637d9862b",
                "sha256": "634db21a5591d522586bd96ee72f5586f0e198213f283ad8c6feb2e42fa693ec"
            },
            "downloads": -1,
            "filename": "blueye_protocol-2.4.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "97b1190bbd6f941aadd870e637d9862b",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9,<4.0",
            "size": 46007,
            "upload_time": "2023-10-18T07:22:44",
            "upload_time_iso_8601": "2023-10-18T07:22:44.043833Z",
            "url": "https://files.pythonhosted.org/packages/f1/5b/504c97c7bd29c14a44fcbf65372edd831a76d6474309213e9d294ad0d1e9/blueye_protocol-2.4.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3196cda6e7b198f9a6f8071f7e977dcc34283c1cd5820ae3afe748df2dd9ca30",
                "md5": "b106c49ae73ddc036a9c42082ef0e58f",
                "sha256": "23b1a56c3617fa183148bdd5612c798e1a0a3c901830c5b32deb46d40b8e36fa"
            },
            "downloads": -1,
            "filename": "blueye_protocol-2.4.0.tar.gz",
            "has_sig": false,
            "md5_digest": "b106c49ae73ddc036a9c42082ef0e58f",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9,<4.0",
            "size": 40115,
            "upload_time": "2023-10-18T07:22:45",
            "upload_time_iso_8601": "2023-10-18T07:22:45.829194Z",
            "url": "https://files.pythonhosted.org/packages/31/96/cda6e7b198f9a6f8071f7e977dcc34283c1cd5820ae3afe748df2dd9ca30/blueye_protocol-2.4.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-10-18 07:22:45",
    "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: 0.13242s