← Home

Phase 01 proof of concept

Scanner diagnostics

Test camera and barcode support on a real phone. No inventory is changed.

Secure context NoCamera API UnavailableDisplay mode Browser tab
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

  1. TEST A — HOLDHold one barcode continuously for 5 seconds. Expected: 1 event.
  2. TEST B — SMALL MOVEMENTBriefly move the phone or part out of focus/frame, then return. Expected: still 1 event.
  3. TEST C — REAL REMOVALRemove the barcode clearly, then bring it back. Expected: +1 event.
  4. TEST D — 10 IDENTICAL PARTSPresent the same barcode as 10 separate deliberate presentations. Expected: 10 events.
  5. 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.