feat(rawcli): complete the 15693 request-flags byte in iso15_frame
The header builder previously set only high-rate, inventory+1slot, addressed and option — F15_PROTO_EXT and F15_SELECT were even defined but unused, so several valid request-flag bits could not be expressed. Complete it: sub-carrier (0x01), protocol- extension (0x08), Select (0x10), 16-slot inventory (Nb_slots=0), and the inventory AFI flag (0x10) with its AFI byte inserted before the params. Bits 5-6 are now branched correctly by mode (Select/Address for non-inventory, AFI/Nb_slots for inventory), per ISO 15693-3 §7.3.1. iso15_flags_decode decodes every bit in both modes, and the byte-0 flag landmarks gain select (0x12) and inventory+AFI (0x36). Existing frames are unchanged (verified by the preserved 0x02/0x22/0x42/0x26 tests); adds coverage for every newly-settable bit. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -44,7 +44,9 @@ rendered dropdown on a real terminal is the only thing left unautomated.
|
||||
## After MFC — 15693 vicinity chips: ICODE SLIX ✅, ICODE SLIX2 ✅, NTAG5 (next)
|
||||
|
||||
1. **15693 header builder** ✅ — `iso15_frame()` (flags + command + NXP mfg 0x04), shared by all
|
||||
15693 catalogs.
|
||||
15693 catalogs. The **full request-flags byte** is settable: sub-carrier (0x01), data-rate,
|
||||
inventory, protocol-ext (0x08), and the mode-dependent bits 5-6 (Select/Address vs AFI byte +
|
||||
Nb_slots 1/16), plus option. `iso15_flags_decode` decodes every bit for the byte-0 hint.
|
||||
2. **Per-chip identify** — `identify.name_iso15` distinguishes SLIX vs SLIX2 (READ_SIGNATURE 0xBD
|
||||
probe). **NTAG5 and ICODE DNA still fall through to "ICODE SLIX"** (they share `E0 04`); NTAG5
|
||||
needs a finer probe (IC-reference / GET_SYSTEM_INFO) before its catalog can be routed.
|
||||
|
||||
Reference in New Issue
Block a user