Rename RST de-asserted label to 'RST de-asserted — ATR follows'

- More precise than 'ATR STARTS' (the ATR starts after the de-assert
  delay, not at the edge) while staying human-friendly; reads as a pair
  with 'RESET ASSERTED'
- Update tests and both READMEs (backend-only, no version bump)
This commit is contained in:
catarrh committed 2026-09-18 23:59:45 +03:00
1 parent a46667d93f
commit 39ee173a7d
4 files changed
+11 -9

No files matched your search

+3 -2
View File
@@ -132,8 +132,9 @@ The GSMTAP listener also accepts the **sigrok-iso7816-stream** decoder
passive SIM sniffer that emits the same GSMTAP-SIM format on UDP 4729. Its passive SIM sniffer that emits the same GSMTAP-SIM format on UDP 4729. Its
standard PPS request/response sub-types (`0x02`/`0x03`) are decoded as PPS, standard PPS request/response sub-types (`0x02`/`0x03`) are decoded as PPS,
and its custom sub-types for RST/VCC line events (`0x10`/`0x11`, added for and its custom sub-types for RST/VCC line events (`0x10`/`0x11`, added for
compatibility with that project) are decoded as `RESET ASSERTED/DE-ASSERTED` compatibility with that project) are decoded as `RESET ASSERTED` /
and `VCC ON/OFF` timeline markers, and a reset-assert or power-removal `RST de-asserted — ATR follows` and `VCC ON/OFF` timeline markers, and a
reset-assert or power-removal
correctly invalidates the file-selection tracking. When an RST event carries correctly invalidates the file-selection tracking. When an RST event carries
the measured CLK frequency (decoder v1.9.0+, optional payload extension), the the measured CLK frequency (decoder v1.9.0+, optional payload extension), the
following ATR is annotated with the CLK frequency, data rate and ETU derived following ATR is annotated with the CLK frequency, data rate and ETU derived
+3 -2
View File
@@ -140,8 +140,9 @@ GSMTAP-листенер также принимает декодер **sigrok-is
на UDP 4729. Его стандартные подтипы PPS-запроса/ответа (`0x02`/`0x03`) на UDP 4729. Его стандартные подтипы PPS-запроса/ответа (`0x02`/`0x03`)
декодируются как PPS, а пользовательские подтипы для событий линий RST/VCC декодируются как PPS, а пользовательские подтипы для событий линий RST/VCC
(`0x10`/`0x11`, добавлены для совместимости с тем проектом) — как временные (`0x10`/`0x11`, добавлены для совместимости с тем проектом) — как временные
маркеры `RESET ASSERTED/DE-ASSERTED` и `VCC ON/OFF`; сброс или пропадание маркеры `RESET ASSERTED` / `RST de-asserted — ATR follows` и `VCC ON/OFF`;
питания корректно сбрасывает отслеживание выбранного файла. Когда событие сброс или пропадание питания корректно сбрасывает отслеживание выбранного
файла. Когда событие
RST несёт измеренную частоту CLK (декодер v1.9.0+, опциональное расширение RST несёт измеренную частоту CLK (декодер v1.9.0+, опциональное расширение
полезной нагрузки), следующий ATR получает частоту CLK, скорость передачи полезной нагрузки), следующий ATR получает частоту CLK, скорость передачи
данных и ETU, вычисленные из его TA1 Fi/Di данных и ETU, вычисленные из его TA1 Fi/Di
+3 -3
View File
@@ -4027,8 +4027,8 @@ def decode_line_event(raw_data, kind):
(decoder v1.9.0+); bytes 3..6 are then a big-endian uint32 in Hz. (decoder v1.9.0+); bytes 3..6 are then a big-endian uint32 in Hz.
``event`` is the canonical value; ``label`` is the human-facing ``event`` is the canonical value; ``label`` is the human-facing
summary (e.g. RST de-asserted → "ATR STARTS", VCC applied → summary (e.g. RST de-asserted → "RST de-asserted — ATR follows",
"VCC ON (power-up)"). VCC applied → "VCC ON (power-up)").
""" """
result = {'type': kind} result = {'type': kind}
if raw_data and len(raw_data) >= 2: if raw_data and len(raw_data) >= 2:
@@ -4039,7 +4039,7 @@ def decode_line_event(raw_data, kind):
result['label'] = 'RESET ASSERTED' result['label'] = 'RESET ASSERTED'
else: else:
result['event'] = 'reset de-asserted' result['event'] = 'reset de-asserted'
result['label'] = 'ATR STARTS' result['label'] = 'RST de-asserted — ATR follows'
else: else:
if direction: if direction:
result['event'] = 'power applied' result['event'] = 'power applied'
+2 -2
View File
@@ -2405,7 +2405,7 @@ class TestLineEvents(unittest.TestCase):
def test_rst_deasserted(self): def test_rst_deasserted(self):
r = self._dec('rst', '000100') r = self._dec('rst', '000100')
self.assertEqual(r['event'], 'reset de-asserted') self.assertEqual(r['event'], 'reset de-asserted')
self.assertEqual(r['label'], 'ATR STARTS') self.assertEqual(r['label'], 'RST de-asserted — ATR follows')
self.assertEqual(r['level'], 'high') self.assertEqual(r['level'], 'high')
def test_vcc_on(self): def test_vcc_on(self):
@@ -2431,7 +2431,7 @@ class TestLineEvents(unittest.TestCase):
db.insert_message(sid, 0.1, 'rst', bytes.fromhex('000100'), 0) db.insert_message(sid, 0.1, 'rst', bytes.fromhex('000100'), 0)
db.insert_message(sid, 0.2, 'vcc', bytes.fromhex('010100'), 0) db.insert_message(sid, 0.2, 'vcc', bytes.fromhex('010100'), 0)
msgs = db.get_messages(sid) msgs = db.get_messages(sid)
self.assertEqual(msgs[0]['decoded']['label'], 'ATR STARTS') self.assertEqual(msgs[0]['decoded']['label'], 'RST de-asserted — ATR follows')
self.assertEqual(msgs[1]['decoded']['label'], 'VCC ON (power-up)') self.assertEqual(msgs[1]['decoded']['label'], 'VCC ON (power-up)')
def test_sniff_routing(self): def test_sniff_routing(self):