Add GoPro client notes to AGENTS.md: Xbox mapping, QR view, sidecar IDs
This commit is contained in:
29
AGENTS.md
29
AGENTS.md
@@ -233,6 +233,35 @@ setInterval(() => {
|
||||
4. If no beacon is received for ~30–60 s, mark the device offline.
|
||||
- The IP in the beacon is what the listener should use for all subsequent HTTP API calls.
|
||||
|
||||
## GoPro Client (`clients/gopro-scicam/`)
|
||||
|
||||
Flask-based USB controller for GoPro HERO12. Serves web UI on port 5000, captures download to local `captures/` with JSON sidecars.
|
||||
|
||||
### Xbox Controller Mapping (Browser Gamepad API)
|
||||
|
||||
Tested with "Microsoft X-Box 360 pad" on Linux (`/dev/input/js0`).
|
||||
**Note:** Standard mapping (`gp.mapping === 'standard'`) button indices differ from X-input labels:
|
||||
|
||||
| Button Index | Physical Label | Action |
|
||||
|--------------|----------------|--------|
|
||||
| 0 | A | Capture photo |
|
||||
| 1 | B | Toggle QR display overlay |
|
||||
| 2 | X | Capture photo |
|
||||
| 3 | Y | **Next Box** (regenerate `item_id`) |
|
||||
|
||||
### QR View (`--qrview`)
|
||||
|
||||
- Spawns a borderless Tkinter window on DP-1 (`1920x1080+0+0`)
|
||||
- Displays the current `item_id` as a maximized QR code
|
||||
- Polls for UUID changes every 500ms and redraws with green flash
|
||||
- Left-click or `N` key = regenerate box ID
|
||||
- Right-click or `Q`/`Escape` = close window
|
||||
|
||||
### Sidecar ID Model
|
||||
|
||||
- `item_id`: single point of truth — the QR visible in the photo (either detected from image or current box ID fallback)
|
||||
- `capture_id`: unique UUID generated per individual photo/video
|
||||
|
||||
## Future Roadmap (do not break)
|
||||
|
||||
- **Database sync** is planned. It must be non-destructive to images/sidecars.
|
||||
|
||||
Reference in New Issue
Block a user