Standalone support for the ThermalGrizzly WireView Pro II without depending on the external wireview_reporter exporter: - wireview.py: serial protocol (STX/ETX + 16-bit CRC16-CCITT) with vendor-data product identification, config version, UID, build string, screen layout, and temperature/power/current sensor reads; hwmon fallback with per-channel index resolution; udev-based detection (vendor 0x2560 / product 0x0101) with fallback port probing; serial read timeout and watchdog reconnect - server.py: startup detection (root only), 1 Hz poller gated on subscribed clients, WS 'wireview' channel, GET /api/wireview, rejected-product memoization, stale-read race guard - frontend: WireView tab (visible when a device is detected) with live temperature/power/current cards, sparkline history, and device info; nullable temp channels - tests: 76 tests covering parser, CRC, fault classification, hwmon resolution, JSON safety, and the serial transport against a pty-based fake device Verified live: tab appears with the device connected, disappears when unplugged, reconnects on re-plug, no serial traffic when idle.
31 lines
958 B
Makefile
31 lines
958 B
Makefile
# NVCurve — developer convenience targets.
|
|
#
|
|
# End users don't need make: run ./install.sh (see README "Installation").
|
|
|
|
UV ?= uv
|
|
NPM ?= npm
|
|
|
|
.PHONY: help frontend frontend-dev install dev test clean
|
|
|
|
help: ## Show available targets
|
|
@grep -E '^[a-zA-Z_-]+:.*?## ' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf " \033[36m%-15s\033[0m %s\n", $$1, $$2}'
|
|
|
|
frontend: ## Build the React frontend into frontend/dist
|
|
cd frontend && $(NPM) ci && $(NPM) run build
|
|
|
|
frontend-dev: ## Run the Vite dev server (hot reload)
|
|
cd frontend && $(NPM) run dev
|
|
|
|
install: ## Install nvcurve as a uv tool (builds frontend if missing/stale)
|
|
$(UV) tool install --force .
|
|
|
|
dev: ## Create/refresh the dev environment (uv sync)
|
|
$(UV) sync
|
|
|
|
test: ## Run the test suite
|
|
$(UV) run python tests/test_security.py
|
|
$(UV) run python tests/test_rm_power.py
|
|
$(UV) run python tests/test_wireview.py
|
|
|
|
clean: ## Remove build artifacts
|
|
rm -rf frontend/dist frontend/node_modules
|