Decode the Items Next Action Indicator (TS 102 223 §8.24)

- tag '18' (TS 101 220: "18 only"): one byte per item, §9.4 coding;
  '00' and reserved values mean "no next action" (decoded to None)
- items[] now carry a per-item next_action; a list whose length differs
  from the item count is preserved raw (spec requires X = item count)
- detail view renders "Item 0xNN: text → COMMAND"; the APDU-list summary
  is unchanged — next actions are detail-only, as requested
- tests: 3 real SET UP MENU samples (local sessions 47/53/57) + a
  length-mismatch tolerance case
- v2.1.2; SW cache simtrace-analyser-v57
This commit is contained in:
catarrh committed 2026-09-24 20:16:31 +03:00
1 parent d4a378695c
commit a50a93a238
7 files changed
+67 -6

No files matched your search

+3 -2
View File
@@ -1284,7 +1284,8 @@ function cmdRows(cmd) {
if (cmd.icon_id !== undefined) rows.push(['Icon', cmd.icon_id ? 'record #' + cmd.icon_id : 'none']);
if (cmd.items) {
for (const it of cmd.items) {
rows.push(['Item ' + (it.id !== undefined ? '0x' + hx(it.id, 2) : '?'), it.text]);
const next = it.next_action ? ' \u2192 ' + it.next_action : '';
rows.push(['Item ' + (it.id !== undefined ? '0x' + hx(it.id, 2) : '?'), it.text + next]);
}
}
if (cmd.duration) rows.push(['Duration', cmd.duration.value + ' ' + cmd.duration.unit]);
@@ -2706,7 +2707,7 @@ function onFilterChange() {
}
// ──────────────────── Versioning ────────────────────
const PWA_VERSION = '2.1.1';
const PWA_VERSION = '2.1.2';
const MIN_SERVER_VERSION = '1.0.0';
function parseVersion(v) {