Linux interface to Epson Discprinter PP-100II using USB
- Go 99.4%
- Shell 0.6%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
Three pieces, related:
1. twin/ package — runtime digital twin of the PP-100II loader plus a
pcap-driven static analyzer. twin/model.go tracks CoverOpen, per-
stacker presence, phase (Clean/Residue/Walking/Faulted), and a
NeedsWalk driver hint; events flow through Apply/DetectAndDispatch
so the model stays in sync with successive live-status reads and
the EPIPE-on-SET signal. twin/cmd/extract/ pulls SET requests and
GET responses from USBPcap captures (URB-layer, works on captures
without HID enumeration). twin/cmd/analyze/ matches each SET
against a typed Go family registry (18 families covering 100% of
373 SETs in 10 captures) and emits SUMMARY/COMMANDS/MOTIFS/
SEQUENCES/NEXT-INVESTIGATIONS as auto-generated markdown.
2. main.go — status TUI now uses the runtime twin. Cover-close
automatically fires the verified walk-trigger ('A' "001") so cached
stacker heights refresh without the user having to hand-run
`discproducer walk`. Version + build-time banner is shown at the
top of usage/status/TUI; populate with
`go build -ldflags "-X main.Version=$(git describe ...)
-X main.BuildTime=$(date -u +%Y-%m-%dT%H:%M:%SZ)"`.
3. DISCOVERY.md — Findings 43–46: S2 byte is a per-stacker missing
bitmap (verified across all 8 present/absent combinations); S5/S6
semantics tightened; walk-trigger isolated to bracketed 'A' "001"
(the historical 'A' "000" is a no-op). PROTOCOL.md (in twin/)
carries the cleaned-up structural reference grounded in this work,
including the §8.1 S0/S9 bit-decode derived by cross-capture
pairing of action SETs with their following status pushes.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
||
| twin | ||
| vm | ||
| .gitignore | ||
| 70-discproducer.rules | ||
| DISCOVERY.md | ||
| go.mod | ||
| IMAGE-RECON.md | ||
| main.go | ||