filesystem: fix reset mechanism
Currently we call the reset_card and get_atr methods directly at the
transport layer via the private _scc and _tp object of the card. This is
a violation. Fix and use the reset methods that are already in the
SimCard object.
Change-Id: I0e9d2a62a42a7387e7ca69d2ae830782a61aed89
diff --git a/pySim/cards.py b/pySim/cards.py
index 4511271..8f5004e 100644
--- a/pySim/cards.py
+++ b/pySim/cards.py
@@ -60,7 +60,11 @@
self._aids = []
def reset(self):
- self._scc.reset_card()
+ rc = self._scc.reset_card()
+ if rc is 1:
+ return self._scc.get_atr()
+ else:
+ return None
def erase(self):
print("warning: erasing is not supported for specified card type!")
diff --git a/pySim/filesystem.py b/pySim/filesystem.py
index cc9176f..dcc2608 100644
--- a/pySim/filesystem.py
+++ b/pySim/filesystem.py
@@ -1068,8 +1068,7 @@
Args:
cmd_app : Command Application State (for unregistering old file commands)
"""
- self.card._scc._tp.reset_card()
- atr = i2h(self.card._scc._tp.get_atr())
+ atr = i2h(self.card.reset())
# select MF to reset internal state and to verify card really works
self.select('MF', cmd_app)
return atr