diff --git a/README.md b/README.md index 4b95d8b..6220b85 100644 --- a/README.md +++ b/README.md @@ -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 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 -compatibility with that project) are decoded as `RESET ASSERTED/DE-ASSERTED` -and `VCC ON/OFF` timeline markers, and a reset-assert or power-removal +compatibility with that project) are decoded as `RESET ASSERTED` / +`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 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 diff --git a/README_RUS.md b/README_RUS.md index 4db8dd3..585b4b5 100644 --- a/README_RUS.md +++ b/README_RUS.md @@ -140,8 +140,9 @@ GSMTAP-листенер также принимает декодер **sigrok-is на UDP 4729. Его стандартные подтипы PPS-запроса/ответа (`0x02`/`0x03`) декодируются как PPS, а пользовательские подтипы для событий линий RST/VCC (`0x10`/`0x11`, добавлены для совместимости с тем проектом) — как временные -маркеры `RESET ASSERTED/DE-ASSERTED` и `VCC ON/OFF`; сброс или пропадание -питания корректно сбрасывает отслеживание выбранного файла. Когда событие +маркеры `RESET ASSERTED` / `RST de-asserted — ATR follows` и `VCC ON/OFF`; +сброс или пропадание питания корректно сбрасывает отслеживание выбранного +файла. Когда событие RST несёт измеренную частоту CLK (декодер v1.9.0+, опциональное расширение полезной нагрузки), следующий ATR получает частоту CLK, скорость передачи данных и ETU, вычисленные из его TA1 Fi/Di diff --git a/simtrace2_pysniff/server/decode.py b/simtrace2_pysniff/server/decode.py index 213c1a5..54d8e9f 100644 --- a/simtrace2_pysniff/server/decode.py +++ b/simtrace2_pysniff/server/decode.py @@ -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. ``event`` is the canonical value; ``label`` is the human-facing - summary (e.g. RST de-asserted → "ATR STARTS", VCC applied → - "VCC ON (power-up)"). + summary (e.g. RST de-asserted → "RST de-asserted — ATR follows", + VCC applied → "VCC ON (power-up)"). """ result = {'type': kind} if raw_data and len(raw_data) >= 2: @@ -4039,7 +4039,7 @@ def decode_line_event(raw_data, kind): result['label'] = 'RESET ASSERTED' else: result['event'] = 'reset de-asserted' - result['label'] = 'ATR STARTS' + result['label'] = 'RST de-asserted — ATR follows' else: if direction: result['event'] = 'power applied' diff --git a/tests/test_decode.py b/tests/test_decode.py index 33606aa..fd430c4 100644 --- a/tests/test_decode.py +++ b/tests/test_decode.py @@ -2405,7 +2405,7 @@ class TestLineEvents(unittest.TestCase): def test_rst_deasserted(self): r = self._dec('rst', '000100') 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') 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.2, 'vcc', bytes.fromhex('010100'), 0) 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)') def test_sniff_routing(self):