Welcome to CVP Protobuf Server’s documentation!#

The CVP Proto Server is a versatile tool designed for seamless communication using Protocol Buffers (protobuf) for CVP messages. This server provides a Command-Response Commander via a Command Line Interface (CLI) and a Flask application for handling MQTT communication with CVP messages.

_images/sequence-diagram-dark.svg_images/sequence-diagram-light.svg

Installation#

To install the CVP Protobuf Server, download the protoserver-1.0.0-py3-none-any.whl file and run the following command:

pip install protoserver-1.0.0-py3-none-any.whl

Features#

  • CLI Command-Response Commander: A terminal interface for generating command messages and decoding command response messages effortlessly based on user input.

Usage:

commander

commander

  • Flask Application for MQTT Communication: The Flask application is designed to offer users a user-friendly web interface, incorporating Bootstrap for an enhanced visual experience and dynamic form generation. This allows users to easily handle MQTT communication with CVP messages. The integration of Socket.IO ensures real-time updates, providing immediate feedback. This combination of technologies creates a seamless and interactive environment, simplifying the process of generating, sending and receiving messages. Usage:

tmcvp-server-flask

The static depiction of Flask Application can be seen here

Scaling for Future Usage#

The server is designed with scalability in mind, anticipating future changes and updates to the CVP protocol. It is independent of specific command subtype payloads, providing flexibility for integration with new message types or additional fields introduced in future versions.

While the server code is designed to be independent of specific payload details, it is not agnostic to changes in message header if any occurs. I have assumed that the fields such as message_id, message_type, priority, packet_status, etc, are present in future protocol versions.

Indices and tables#