From edcd62435d0777ad798e44b4613eff8332030d14 Mon Sep 17 00:00:00 2001 From: Philipp Maier Date: Tue, 28 Jan 2025 15:27:44 +0100 Subject: [PATCH] pySim/transport: add abstract get_atr method to LinkBase The implementations that inheret from the LinkBase class are expected to implement a get_atr method. This method is mandatory, since it is one of the most basic functionalities of pySim to display an ATR. Also the ATR is sometimes needed to distinguish between different card models. The modem_atcmd and calypso implementation completely lack the get_atr method. Apparantly it is not possible to get an ATR in those environments, so lets add a dummy method there. Related: OS#6322 Change-Id: I4fc020ca45658af78e495a5c1b985213f83cbb50 --- pySim/transport/__init__.py | 5 +++++ pySim/transport/calypso.py | 3 +++ pySim/transport/modem_atcmd.py | 3 +++ 3 files changed, 11 insertions(+) diff --git a/pySim/transport/__init__.py b/pySim/transport/__init__.py index 8055306d..5b0ee076 100644 --- a/pySim/transport/__init__.py +++ b/pySim/transport/__init__.py @@ -119,6 +119,11 @@ class LinkBase(abc.ABC): """Connect to a card immediately """ + @abc.abstractmethod + def get_atr(self) -> Hexstr: + """Retrieve card ATR + """ + @abc.abstractmethod def disconnect(self): """Disconnect from card diff --git a/pySim/transport/calypso.py b/pySim/transport/calypso.py index fa3a9f29..f28e40c6 100644 --- a/pySim/transport/calypso.py +++ b/pySim/transport/calypso.py @@ -123,6 +123,9 @@ class CalypsoSimLink(LinkBaseTpdu): def connect(self): self.reset_card() + def get_atr(self) -> Hexstr: + return "3b00" # Dummy ATR + def disconnect(self): pass # Nothing to do really ... diff --git a/pySim/transport/modem_atcmd.py b/pySim/transport/modem_atcmd.py index e7614c0e..440ec779 100644 --- a/pySim/transport/modem_atcmd.py +++ b/pySim/transport/modem_atcmd.py @@ -139,6 +139,9 @@ class ModemATCommandLink(LinkBaseTpdu): def connect(self): pass # Nothing to do really ... + def get_atr(self) -> Hexstr: + return "3b00" # Dummy ATR + def disconnect(self): pass # Nothing to do really ...