Skip to content

Printer status & capability awareness (health, caching, capability detection) #38

Description

@szrudi

What

Make the app aware of live printer state and capabilities, rather than treating every connected printer as an opaque "print here" target. This is the runtime-query counterpart to the persistence work in #20 — different code path (querying the printer / labelle library at runtime vs. saving user choices to the state file).

Scope

Backend (runtime query):

  • Printer status / health checks — online/offline, and tape level where the device exposes it
  • Printer-list caching to reduce repeated USB scans (scans are slow; cache + invalidate on change)
  • Printer capability detection — supported tape sizes and colors per printer

Frontend (surfaces that depend on the above):

  • Printer status indicators in the UI (online/offline, "powering up" state)
  • Display detected tape type / color / width per printer
  • Constrain the tape-size / color selectors to what the selected printer actually supports

Why

  • Capability detection is the prerequisite for the nicer printer UI: you can't display or constrain to supported tape widths/colors until you can query them.
  • USB scans are slow on the Pi; caching the printer list cuts latency on every page load.
  • Status indicators make the kiosk/appliance use case far less confusing when a printer is offline or initializing.

Relationship to other issues

Notes

Source: distilled from the "Future Improvements → Printer status" bullets in docs/ARCHITECTURE.md. The idle-timeout USB auto-power-off from that same doc section is already implemented (power_save.py / usb_power.py) and is not part of this issue.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions