summaryrefslogtreecommitdiff
path: root/source/codes/Codes.mc
Commit message (Collapse)AuthorAgeFilesLines
* fix(codes): bound every 2D encoding step under the watchdog; draw large ↵cirakg9 days1-36/+243
| | | | | | | | | | | | | | | | | | | | | | | | | | | | codes from runs M6's step sizes were estimates, only exercised with small codes. With the largest inputs the app accepts, every 2D encoder tripped the watchdog on the Forerunner 255S (and the biggest steps were far over the 768 KB watches' limit), so a large code added from the phone would have stopped the app during settings processing at every start. - QR: resumable segmentation, Reed-Solomon, interleaving, function patterns and final mask; mask scoring on rows and columns packed 16 modules per word (same penalties, checked against the per-module rules). - Reed-Solomon: resumable field tables and generator, encoder shifting with native slice. - Data Matrix, Aztec, PDF417: resumable encodation, stuffing, compaction, placement and build; Data Matrix's grid as a byte array (90 KB -> 35 KB); PDF417 refuses text that can't fit the screen before compacting. - Cache format 2 with 16-bit sizes (wide PDF417 was cached wrong); packing in steps; codes drawn as runs, and from a bitmap painted in steps when a frame can't draw all runs. - The job runner does two steps per tick on 768 KB watches; gen_products --check verifies each product's watchdogCount fits that. - CodeView renews full brightness (AMOLED) or the backlight (MIP) for up to a minute from its single ticker; a tap restarts the minute. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat(codes): add an Aztec encoder (compact and full range) as a resumable jobcirakg9 days1-0/+3
| | | | | | | | Upper/Lower/Digit modes with Binary Shift, bit stuffing, Reed-Solomon over GF(2^6..2^12) in steps, geometry ported from aztec_code_generator; symbols match it for single-class text. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat(codes): add Data Matrix (ECC 200, 10x10-144x144) and PDF417 encoders as ↵cirakg10 days1-17/+101
| | | | | | | | | | | | jobs Data Matrix: ASCII with digit pairs, Base256 or Upper Shift for UTF-8, interleaved Reed-Solomon in steps, utah placement; matches ppf.datamatrix. PDF417: pdf417gen's compaction, automatic or fixed EC level, columns fitted to the screen, pattern tables as generated JSON resources; matches pdf417gen. 2D matrices gain a row height and 8-at-a-time packing. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat(codes): add a QR Code encoder (versions 1-40, levels L-H) as a ↵cirakg10 days1-0/+54
| | | | | | | | | | | resumable job Optimal numeric/alphanumeric/byte segmentation, Reed-Solomon over GF(256), all eight masks scored like segno, steps sized for the 120,000-bytecode watchdog; block tables generated from segno; a generic Matrix type with a compact form for caching. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
* feat(codes): add EAN/UPC, Code 128, Code 39, ITF and Codabar encoderscirakg10 days1-0/+149
Check digits added, verified, fixed or off; canonical UPC-E zero suppression; Code 128 sets B and C with zxing's switching rules; module rows match zxing-cpp (Code 128 by length, the tie-breaking differs). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>