Metadata-Version: 2.2
Name: V3SProtoComm
Version: 1.0.0
Summary: Pacote para comunicação e controle de robôs via Protobuf
Home-page: https://github.com/Taurabots/V3SProtoComm
Author: Thassio
Author-email: thxssio@gmail.com
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: OS Independent
Requires-Python: >=3.6
Description-Content-Type: text/markdown
Requires-Dist: numpy
Requires-Dist: protobuf
Requires-Dist: six
Requires-Dist: toml
Requires-Dist: wrapt
Provides-Extra: dev
Requires-Dist: astroid; extra == "dev"
Requires-Dist: isort; extra == "dev"
Requires-Dist: lazy-object-proxy; extra == "dev"
Requires-Dist: mccabe; extra == "dev"
Requires-Dist: pylint; extra == "dev"
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: provides-extra
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

V3SProtoComm
============

V3SProtoComm is a library for communication and control of robots via Protobuf.
The library supports the following communications:

  - Receiving vision data in polling and multithread mode
  - Sending speed commands in polling and multithread mode
  - Receiving game data from the VSSReferee in polling mode
  - Sending replacement packages to the VSSReplacer in polling mode

[![Python package](https://github.com/TauraBots/V3SProtoComm/actions/workflows/python-package.yml/badge.svg)](https://github.com/TauraBots/V3SProtoComm/actions/workflows/python-package.yml)

Installation
------------

You can install the package directly from GitHub with pip:
```
    pip install git+https://github.com/TauraBots/V3SProtoComm.git
```
Or, if you have cloned the repository, install the dependencies from the requirements file:
```
    pip3 install -r requirements.txt
```
Usage
-----

To test the package, run the "gotoball.py" example:

    python3 gotoball.py

The example uses vision data to control a differential drive robot, directing it
towards the ball by rotating to align its orientation and moving forward until
it is close enough (i.e., when it "dominates" the ball).

Project Structure
-----------------
```
V3SProtoComm/
├── core
│   ├── comm
│   │   ├── controls.py
│   │   ├── __init__.py
│   │   ├── protocols
│   │   │   ├── command_pb2.py
│   │   │   ├── common_pb2.py
│   │   │   ├── __init__.py
│   │   │   ├── packet_pb2.py
│   │   │   ├── protobuf
│   │   │   │   ├── firasim
│   │   │   │   │   ├── command.proto
│   │   │   │   │   ├── common.proto
│   │   │   │   │   ├── packet.proto
│   │   │   │   │   ├── protobuf.sh
│   │   │   │   │   └── replacement.proto
│   │   │   │   ├── __init__.py
│   │   │   │   └── vssreferee
│   │   │   │       ├── protobuf.sh
│   │   │   │       ├── vssref_command.proto
│   │   │   │       ├── vssref_common.proto
│   │   │   │       └── vssref_placement.proto
│   │   ├── __init__.py
│   │   ├── receiver.py
│   │   ├── referee.py
│   │   ├── replacer.py
│   │   ├── thread_job.py
│   │   ├── transmitter.py
│   │   └── vision.py
├── gotoball.py
├── README.txt
├── requirements.txt
└── tests.py

```
> [!NOTE]
>  To ensure that the non-Python files (such as the .proto files in the protobuf directory)
>  are included in the package, a MANIFEST.in file is used with the following directive:

------------

      recursive-include core/comm/protocols/protobuf *

Contributing
------------

Contributions are welcome! Feel free to open issues or submit pull requests.

