feat(rawcli): INVENTORY_READ / FAST_INVENTORY_READ for the SLIX catalogs
Completes the ICODE SLIX/SLIX2 datasheet command set. These fuse an inventory round with a block read; unlike every other catalog command they need the inventory bit set in the request flags. Added an `inventory=` option to iso15_frame (sets inventory + single-slot, 0x26 with high rate) and both commands to _SLIX (inherited by _SLIX2), with the mask-less body mask_len 0 | first_block | count-1 (matching the tag model's _handle_inventory_read: first_block at data[4], num_blocks at data[5]+1). Verified live (completer names both, opcode 0xA0/0xA1 map back, entry round-trips) and unit-tested. Mask-based inventory (AFI/mask value) left as a future refinement. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -55,9 +55,10 @@ rendered dropdown on a real terminal is the only thing left unautomated.
|
||||
4. Autocomplete UX ✅ (hex + binary, command names + opcode-by-value; the byte-line completion bug
|
||||
is fixed).
|
||||
|
||||
**Completeness gap (both SLIX catalogs):** `INVENTORY_READ` (0xA0) / `FAST_INVENTORY_READ` (0xA1)
|
||||
are in the datasheet + the models but not yet in the catalogs — they carry an inventory request
|
||||
body (AFI/mask/block range), so they need a small dedicated builder, not a bare opcode.
|
||||
`INVENTORY_READ` (0xA0) / `FAST_INVENTORY_READ` (0xA1) ✅ — added to `_SLIX` (and inherited by
|
||||
`_SLIX2`) with the inventory flags (0x26) + mask-less body (`mask_len 0 | first_block | count-1`)
|
||||
via a new `inventory=` option on `iso15_frame`. Mask-based inventory (AFI/mask value) is a further
|
||||
refinement if ever needed.
|
||||
|
||||
**Hardware verify pending:** SLIX2 catalog was verified only against unit tests + a live-session
|
||||
drive (no SLIX2 tag on the reader). Confirm on a real SLIX2 when one is available.
|
||||
|
||||
Reference in New Issue
Block a user