A package to simplify the generation, serialization, and deserialization of COLAV Protobuf messages.
This project has been archived.
The maintainers of this project have marked this project as archived. No new releases are expected.
Project description
colav-protobuf-utils
This package simplifies the generation of COLAV Protobuf messages as defined in colav-protobuf, allowing you to work with structured data without needing in-depth knowledge of Protobuf. Simply provide the required data to the relevant functions, and they will return the corresponding Protobuf messages. Additionally, the package includes built-in serialization and deserialization functionality for seamless data handling.
Table of Contents
Installation
pip install colav-protobuf-utils
Structure
The source code in colav_protobuf_utils is organized into the following main directories:
- Tests: Contains tests that ensure the continued working state of this package as part of the CI/CD workflow.
- src/colav_protobuf_utils: Contains the package source code.
- protobuf_generator: Contains several Python functions for simplifying the generation of different colav_protobuf messages. Examples of usage for this package can be found in the Usage section.
- deserialization: Contains functions that provide abstract deserialization functionality and validation for different colav-protobuf messages.
- serialization: Contains functions that abstract Protobuf serialization functionality and validate the different colav-protobuf messages.
Usage
Once the package has been installed into your environment, usage is simple.
Imports
# Protobuf generation imports
from colav_protobuf_utils.protobuf_generator import (
gen_mission_request, # Mission Request
VesselType,
gen_mission_response, # Mission Response
MissionResponseTypeEnum,
gen_agent_update, # Agent Update
gen_obstacles_update, # Obstacles update
gen_static_obstacle,
StaticObstacleTypeEnum,
gen_dynamic_obstacle,
DynamicObstacleTypeEnum,
gen_controller_feedback, # Controller Feedback
CTRLStatus,
CTRLMode,
)
# Protobuf serialization import
from colav_protobuf_utils.serialization import serialize_protobuf
# Protobuf deserialization import
from colav_protobuf_utils.deserialization import deserialize_protobuf
from colav_protobuf_utils import ProtoType
Sample Mission Request Creation
mission_req_proto = gen_mission_request(
tag="sample_mission_tag",
timestamp="1677256958",
vessel_tag="sample_vessel",
vessel_type=VesselType.VESSEL.value,
vessel_max_acceleration=2.0,
vessel_max_deceleration=1.0,
vessel_max_velocity=30.0,
vessel_min_velocity=15.0,
vessel_max_yaw_rate=0.2,
vessel_loa=2.0,
vessel_beam=0.5,
vessel_safety_radius=5.0,
cartesian_init_position=(30002.0, 2312.0, 10.0),
cartesian_goal_position=(30402.0, 2000.0, 10.0),
goal_safety_radius=10
)
Sample Serialization
serialized_msg = serialize_protobuf(mission_req_proto)
Sample Deserialization
deserialized_msg = deserialize_protobuf(serialized_msg, proto_type=ProtoType.MISSION_REQUEST)
License
colav-protobuf-utils is distributed under the terms of the MIT license.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file colav_protobuf_utils-0.1.1.tar.gz.
File metadata
- Download URL: colav_protobuf_utils-0.1.1.tar.gz
- Upload date:
- Size: 15.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
df9610f0ce4b0bede5409404bd8314f25a72716ad539b84f90960f87a5831709
|
|
| MD5 |
b8030003964cacc8d6d09ba6757055fd
|
|
| BLAKE2b-256 |
750a83529386456c05b1427275ab60b861c1da898261ccca132d0319b795746b
|
File details
Details for the file colav_protobuf_utils-0.1.1-py3-none-any.whl.
File metadata
- Download URL: colav_protobuf_utils-0.1.1-py3-none-any.whl
- Upload date:
- Size: 13.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e1f81f6650dcce97f0da55a28397d957d393516207a6ba932f94f71603046d44
|
|
| MD5 |
a0e23068463603833fb4693ed366517b
|
|
| BLAKE2b-256 |
6c2727a997dfd015b32b9224634552a0107d5e5e9700ed6bf8df6aa375d8deba
|