aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xpySim-prog.py2
-rwxr-xr-xpySim-read.py2
-rw-r--r--pySim/utils.py40
3 files changed, 26 insertions, 18 deletions
diff --git a/pySim-prog.py b/pySim-prog.py
index cf503d0..fbf2b73 100755
--- a/pySim-prog.py
+++ b/pySim-prog.py
@@ -720,6 +720,8 @@ if __name__ == '__main__':
# Init card reader driver
sl = init_reader(opts)
+ if sl is None:
+ exit(1)
# Create command layer
scc = SimCardCommands(transport=sl)
diff --git a/pySim-read.py b/pySim-read.py
index f901260..7906685 100755
--- a/pySim-read.py
+++ b/pySim-read.py
@@ -82,6 +82,8 @@ if __name__ == '__main__':
# Init card reader driver
sl = init_reader(opts)
+ if sl is None:
+ exit(1)
# Create command layer
scc = SimCardCommands(transport=sl)
diff --git a/pySim/utils.py b/pySim/utils.py
index c150184..67bfa74 100644
--- a/pySim/utils.py
+++ b/pySim/utils.py
@@ -607,24 +607,28 @@ def init_reader(opts):
"""
Init card reader driver
"""
- if opts.pcsc_dev is not None:
- print("Using PC/SC reader interface")
- from pySim.transport.pcsc import PcscSimLink
- sl = PcscSimLink(opts.pcsc_dev)
- elif opts.osmocon_sock is not None:
- print("Using Calypso-based (OsmocomBB) reader interface")
- from pySim.transport.calypso import CalypsoSimLink
- sl = CalypsoSimLink(sock_path=opts.osmocon_sock)
- elif opts.modem_dev is not None:
- print("Using modem for Generic SIM Access (3GPP TS 27.007)")
- from pySim.transport.modem_atcmd import ModemATCommandLink
- sl = ModemATCommandLink(device=opts.modem_dev, baudrate=opts.modem_baud)
- else: # Serial reader is default
- print("Using serial reader interface")
- from pySim.transport.serial import SerialSimLink
- sl = SerialSimLink(device=opts.device, baudrate=opts.baudrate)
-
- return sl
+ try:
+ if opts.pcsc_dev is not None:
+ print("Using PC/SC reader interface")
+ from pySim.transport.pcsc import PcscSimLink
+ sl = PcscSimLink(opts.pcsc_dev)
+ elif opts.osmocon_sock is not None:
+ print("Using Calypso-based (OsmocomBB) reader interface")
+ from pySim.transport.calypso import CalypsoSimLink
+ sl = CalypsoSimLink(sock_path=opts.osmocon_sock)
+ elif opts.modem_dev is not None:
+ print("Using modem for Generic SIM Access (3GPP TS 27.007)")
+ from pySim.transport.modem_atcmd import ModemATCommandLink
+ sl = ModemATCommandLink(device=opts.modem_dev, baudrate=opts.modem_baud)
+ else: # Serial reader is default
+ print("Using serial reader interface")
+ from pySim.transport.serial import SerialSimLink
+ sl = SerialSimLink(device=opts.device, baudrate=opts.baudrate)
+ return sl
+ except Exception as e:
+ print("Card reader initialization failed with exception:\n" + str(e))
+ return None
+
def enc_ePDGSelection(hexstr, mcc, mnc, epdg_priority='0001', epdg_fqdn_format='00'):
"""