Metadata-Version: 2.4
Name: tsugite
Version: 0.0.1
Summary: System-oriented dashboards for DroneCAN & Cyphal (YAML-powered)
Author-email: Dmitry Ponomarev <ponomarevda96@gmail.com>
License: MIT
Project-URL: Homepage, https://github.com/PonomarevDA/tsugite
Project-URL: Issues, https://github.com/PonomarevDA/tsugite/issues
Keywords: uav,drone,dronecan,cyphal,dashboard,telemetry,yaml
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Typing :: Typed
Requires-Python: >=3.9
Description-Content-Type: text/markdown
Requires-Dist: pyyaml>=6.0.3
Provides-Extra: desktop-dronecan
Requires-Dist: PySide6>=6.10.0; extra == "desktop-dronecan"
Requires-Dist: folium>=0.20.0; extra == "desktop-dronecan"
Requires-Dist: pyserial>=3.5.0; extra == "desktop-dronecan"
Requires-Dist: pydronecan; extra == "desktop-dronecan"
Requires-Dist: setuptools==80.9.0; extra == "desktop-dronecan"
Requires-Dist: pyqtgraph>=0.13.7; extra == "desktop-dronecan"
Provides-Extra: all
Requires-Dist: PySide6>=6.10.0; extra == "all"
Requires-Dist: folium>=0.20.0; extra == "all"
Requires-Dist: pyserial>=3.5.0; extra == "all"
Requires-Dist: pydronecan; extra == "all"
Requires-Dist: setuptools==80.9.0; extra == "all"
Requires-Dist: pyqtgraph>=0.13.7; extra == "all"
Requires-Dist: pylint>=4.0.2; extra == "all"

# [![](https://badge.fury.io/py/tsugite.svg)](https://pypi.org/project/tsugite/) Tsugite

A system-oriented dashboard for Cyphal (CAN + UDP) & DroneCAN (from YAML) that renders live panels from a YAML manifest—so you watch the system, not just the bus.

## Why this exists

Most tools are **bus-oriented** (frames/subjects). Field work needs **system-oriented** views:
- “Is my **VTOL** healthy? Which **nodes** are missing? Are **critical topics** alive?”
- “Can the **phone** in my pocket show a health dashboard over Wi-Fi?”

Tsugite answers with:
- A **YAML system manifest** that defines your expected nodes, roles, and topics.
- A **backend** that speaks Cyphal & DroneCAN.
- One or more **frontends** (desktop PySide6, and maybe something else in future) that render system health.

## Usage

```bash
pip install .[all]

tsugite --help
```

## MVP scope (what we build first)

- ✅ **Transports**: SocketCAN/slcan (Linux/Win/macOS where possible), UDP (Cyphal).
- ✅ **Protocols**: Cyphal, DroneCAN.
- ✅ **System manifest** (YAML): expected nodes, panels, widgets, topics.
- ✅ **Node list** with heartbeat/health/uptime/firmware/5v/vin/temperature/bootloader.
- ✅ **Safe mode**: read-only; guardrails for publishing/param writes (disabled in MVP by default).
- ✅ **Paramters editor**: read-only; guardrails for publishing/param writes (disabled in MVP by default).
- ✅ **Specification checker**.
