Phase 01 proof of concept
Scanner diagnostics
Test camera and barcode support on a real phone. No inventory is changed.
Camera preview
Checking camera support…
Torch: Availability shown after camera startsLow light? Turn on torch for better scan reliability.
Scanner timing diagnostics
ZXing cannot report when photons first show a label in the frame. The first valid decoder result below is the earliest measurable detection; app latency measures from that callback to accepted-event emission.
- First valid decoder result
- —
- Last accepted event
- —
- App acquisition latency
- —
- Valid reads rejected
- 0
- Last rejected value
- —
- Rejection reason
- —
- Presence state
- ready
- Current latch
- None
- Consecutive misses
- 0
- Observed absence
- 0 ms
Feedback diagnostics
- Audio supported
- No
- AudioContext
- Not initialized
- Last beep
- Not attempted
- Last audio error
- None
- Vibration supported
- No
- Last vibration attempt
- Not attempted
- Feedback invocations
- 0
- Last feedback result
- Not attempted
Diagnostic events
0
events emitted
Latest read
No barcode read yet.
Recent emitted events
Emitted camera and manual events appear here.
Real-phone diagnostic tests
- TEST A — HOLDHold one barcode continuously for 5 seconds. Expected: 1 event.
- TEST B — SMALL MOVEMENTBriefly move the phone or part out of focus/frame, then return. Expected: still 1 event.
- TEST C — REAL REMOVALRemove the barcode clearly, then bring it back. Expected: +1 event.
- TEST D — 10 IDENTICAL PARTSPresent the same barcode as 10 separate deliberate presentations. Expected: 10 events.
- TEST E — DIFFERENT BARCODEPresent a different barcode immediately. Expected: a new event immediately.
Manual fallback
Use this when camera permission is denied or a label is unreadable.
Camera decoding uses @zxing/browser behind ScannerAdapter. A successful desktop test does not complete the real-device acceptance checklist.