qr: every version, 1 to 40
PSOGM mode will put the kernel log on screen as QR codes, a page per symbol, and version 6 held 134 bytes. Version 40 at level L holds 2,953. What grew: blocks of two lengths and the interleave that steps around them, the alignment-pattern grid, the version-information blocks from version 7, the 16-bit character count from version 10. The per-version table is down to the two columns that are genuinely transcription (EC codewords per block, block count); total codewords come from the geometry. Checked against segno module for module at every version (exact-fill payloads), and 120 symbols across all 40 versions decode with zbar. OpenCV's detector cannot find symbols above about version 24 at all, segno's included, so qrcheck reports those as the detector's limit. The crash card stays a version-6 symbol (QR_CARD_BYTES), so a phone still reads it from across the desk. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01S1giNvrHTrPMPw7V6x1kQ4
This commit is contained in:
parent
5ea03c4cf5
commit
d8e8ae604f
5 changed files with 147 additions and 83 deletions
|
|
@ -326,7 +326,7 @@ text_at(int x, int y, const char *s, uint32 color)
|
|||
static int
|
||||
draw_qr_panel(int sw, int sh, int ch, char *reason, addr_t *pcs, int npcs)
|
||||
{
|
||||
char payload[QR_MAX_BYTES];
|
||||
char payload[QR_CARD_BYTES];
|
||||
int n = build_qr_payload(payload, sizeof(payload), reason, pcs, npcs);
|
||||
|
||||
if (n <= 0 || qr_encode(&panic_qr, (unsigned char *)payload, n) != 0)
|
||||
|
|
|
|||
Loading…
Reference in a new issue