From 25910f3a7a7fb28c4a58367b6e56dd2468b60933 Mon Sep 17 00:00:00 2001 From: cirakg Date: Tue, 20 Oct 2026 12:16:59 +0200 Subject: docs: record M6 (all 12 symbologies) results; bump to 0.6.0 Co-Authored-By: Claude Opus 5.5 --- docs/PERFORMANCE.md | 13 ++++++++++++- docs/TESTING.md | 11 +++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/PERFORMANCE.md b/docs/PERFORMANCE.md index 9c9a31a..0fbb2f0 100644 --- a/docs/PERFORMANCE.md +++ b/docs/PERFORMANCE.md @@ -28,7 +28,7 @@ The targets are in [README section 18](../README.md#18-performance-budgets). Thi ### M6, 2026-10-20 (barcodes, in 0.6.0) - **Linear codes** encode in milliseconds while the screen opens; nothing is cached. -- **QR is encoded as a job** in steps sized for the Forerunner 255S's watchdog: at most 2,500 modules to place, 500 to score as rows, 1,000 as columns, or one Reed-Solomon block. Simulator compute time and steps: +- **2D codes are encoded as jobs.** QR works in steps sized for the Forerunner 255S's watchdog: at most 2,500 modules to place, 500 to score as rows, 1,000 as columns, or one Reed-Solomon block. Simulator compute time and steps: | QR | Compute | Steps | At 50 ms per step on a watch | | --- | --- | --- | --- | @@ -36,6 +36,17 @@ The targets are in [README section 18](../README.md#18-performance-budgets). Thi | Version 10 (57 x 57) | 312 ms | 105 | at least 5.3 s | | Version 26 (121 x 121) | 1.4 s | 407 | at least 20 s | +- **First-time encoding in the simulated watches** (the UI flow's demo cards, `make screenshots` prints these times): + + | Code | Size | Time | + | --- | --- | --- | + | QR (version 6) | 41 x 41 | 2.8 s | + | Data Matrix | 18 x 18 | 0.2 s | + | PDF417 | 86 x 29 rows (round watches), 103 x 15 (rectangular) | 0.35 to 0.55 s | + | Aztec (compact) | 23 x 23 | 0.15 s | + + These times are mostly the 50 ms pauses between steps. QR is the slow one, because of its eight mask evaluations. + Version 10 is over README 18's 3 s target. Most of the time is the pauses between steps, and mask scoring (eight masks, every module) is most of the steps. The cache makes every later opening instant. M8 can cut the steps, for example by scoring masks on packed rows. The demo card (version 6) encodes in 2.8 s in the simulated watches (`make screenshots` prints it). ### M5, 2026-10-20 (version 0.5.0, import) diff --git a/docs/TESTING.md b/docs/TESTING.md index cf9bee0..d8302af 100644 --- a/docs/TESTING.md +++ b/docs/TESTING.md @@ -26,6 +26,16 @@ Test devices (`TEST_DEVICES`): Forerunner 255S (weakest: 218 px round MIP, butto ## Results +### M6d, 2026-10-20 (Aztec; M6 complete, version 0.6.0) + +Monkey C unit tests: 120 per device. + +1. **Reference comparison.** 24 Aztec symbols are identical to aztec_code_generator: compact (15 x 15 up) and full range, including sizes with reference grids, and error correction of 10, 23, 36 and 50 %. The payloads are of one character class each, for which both encoders produce the same bits; README 12.4 explains why mixed content can't be compared exactly. +2. **Decoding.** 8 Aztec codes are decoded with zxing-cpp: mixed case with digits and punctuation (Binary Shift and mode latches), UTF-8, a URL, and a long payload. +3. **Screenshots.** The UI flow opens an Aztec card after the PDF417 card, and its screenshot decodes on all seven watches. + +With that, all 12 symbologies of README 12.1 pass checks 1 to 3. The UI flow shows 16 screens per watch (15 on touch-only watches), five of them barcodes that must decode. + ### M6c, 2026-10-20 (Data Matrix and PDF417, in 0.6.0) Monkey C unit tests: 117 per device. @@ -186,3 +196,4 @@ Things the simulator can't verify, done by you on the Forerunner 70. The checkli - [ ] M6a: with "Debug: demo entries", open "Gym card" (an EAN-13). Scan it with your phone's camera, or a shop scanner if you can, indoors and outdoors. Tell me whether it reads. - [ ] M6b: open "Member QR" (a demo entry) and scan it with your phone's camera. The first opening encodes it; note roughly how long that takes. The second opening should be instant (cache). - [ ] M6c: scan the "Parcel" (Data Matrix) and "Ticket" (PDF417) demo cards with a phone app that reads them, for example the zxing-based "Barcode Scanner". +- [ ] M6d: scan the "Rail pass" (Aztec) demo card with a phone app that reads Aztec. -- cgit v1.2.3