dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/34854?usp=email )
Change subject: transport: move argument parser setup into concrete classes ...................................................................... transport: move argument parser setup into concrete classes The argument parser is set up globally for all LinkBase objects in __init__.py. Since we tend to have only platform independed code in __init__.py, we should move the argument parser setup into the specific LinkBase classes. Related: OS#6210 Change-Id: I22c32aa81ca0588e3314c3ff4546f6e5092c11df --- M pySim/transport/__init__.py M pySim/transport/calypso.py M pySim/transport/modem_atcmd.py M pySim/transport/pcsc.py M pySim/transport/serial.py 5 files changed, 56 insertions(+), 20 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/54/34854/1 diff --git a/pySim/transport/__init__.py b/pySim/transport/__init__.py index 5f48657..6cccf8c 100644 --- a/pySim/transport/__init__.py +++ b/pySim/transport/__init__.py @@ -267,27 +267,17 @@ return (rsp, sw) -def argparse_add_reader_args(arg_parser): +def argparse_add_reader_args(arg_parser: argparse.ArgumentParser): """Add all reader related arguments to the given argparse.Argumentparser instance.""" - serial_group = arg_parser.add_argument_group('Serial Reader') - serial_group.add_argument('-d', '--device', metavar='DEV', default='/dev/ttyUSB0', - help='Serial Device for SIM access') - serial_group.add_argument('-b', '--baud', dest='baudrate', type=int, metavar='BAUD', default=9600, - help='Baud rate used for SIM access') + from pySim.transport.serial import SerialSimLink + from pySim.transport.pcsc import PcscSimLink + from pySim.transport.modem_atcmd import ModemATCommandLink + from pySim.transport.calypso import CalypsoSimLink - pcsc_group = arg_parser.add_argument_group('PC/SC Reader') - pcsc_group.add_argument('-p', '--pcsc-device', type=int, dest='pcsc_dev', metavar='PCSC', default=None, - help='PC/SC reader number to use for SIM access') - - modem_group = arg_parser.add_argument_group('AT Command Modem Reader') - modem_group.add_argument('--modem-device', dest='modem_dev', metavar='DEV', default=None, - help='Serial port of modem for Generic SIM Access (3GPP TS 27.007)') - modem_group.add_argument('--modem-baud', type=int, metavar='BAUD', default=115200, - help='Baud rate used for modem port') - - osmobb_group = arg_parser.add_argument_group('OsmocomBB Reader') - osmobb_group.add_argument('--osmocon', dest='osmocon_sock', metavar='PATH', default=None, - help='Socket path for Calypso (e.g. Motorola C1XX) based reader (via OsmocomBB)') + SerialSimLink.argparse_add_reader_args(arg_parser) + PcscSimLink.argparse_add_reader_args(arg_parser) + ModemATCommandLink.argparse_add_reader_args(arg_parser) + CalypsoSimLink.argparse_add_reader_args(arg_parser) return arg_parser diff --git a/pySim/transport/calypso.py b/pySim/transport/calypso.py index 3fd9992..ea97b69 100644 --- a/pySim/transport/calypso.py +++ b/pySim/transport/calypso.py @@ -20,7 +20,7 @@ import struct import socket import os - +import argparse from typing import Optional from pySim.transport import LinkBase @@ -164,3 +164,9 @@ def __str__(self) -> str: return "osmocon:%s" % (self._sock_path) + + @staticmethod + def argparse_add_reader_args(arg_parser: argparse.ArgumentParser): + osmobb_group = arg_parser.add_argument_group('OsmocomBB Reader') + osmobb_group.add_argument('--osmocon', dest='osmocon_sock', metavar='PATH', default=None, + help='Socket path for Calypso (e.g. Motorola C1XX) based reader (via OsmocomBB)') diff --git a/pySim/transport/modem_atcmd.py b/pySim/transport/modem_atcmd.py index 1b741b0..fee09c8 100644 --- a/pySim/transport/modem_atcmd.py +++ b/pySim/transport/modem_atcmd.py @@ -20,6 +20,7 @@ import serial import time import re +import argparse from typing import Optional from pySim.utils import Hexstr, ResTuple @@ -173,3 +174,11 @@ def __str__(self) -> str: return "modem:%s" % self._device + + @staticmethod + def argparse_add_reader_args(arg_parser: argparse.ArgumentParser): + modem_group = arg_parser.add_argument_group('AT Command Modem Reader') + modem_group.add_argument('--modem-device', dest='modem_dev', metavar='DEV', default=None, + help='Serial port of modem for Generic SIM Access (3GPP TS 27.007)') + modem_group.add_argument('--modem-baud', type=int, metavar='BAUD', default=115200, + help='Baud rate used for modem port') diff --git a/pySim/transport/pcsc.py b/pySim/transport/pcsc.py index 3f3d06c..fbe7c0f 100644 --- a/pySim/transport/pcsc.py +++ b/pySim/transport/pcsc.py @@ -17,6 +17,7 @@ # along with this program. If not, see <http://www.gnu.org/licenses/>. # +import argparse from typing import Optional from smartcard.CardConnection import CardConnection @@ -96,3 +97,9 @@ def __str__(self) -> str: return "PCSC:%u[%s]" % (self._reader_number, self._reader) + + @staticmethod + def argparse_add_reader_args(arg_parser: argparse.ArgumentParser): + pcsc_group = arg_parser.add_argument_group('PC/SC Reader') + pcsc_group.add_argument('-p', '--pcsc-device', type=int, dest='pcsc_dev', metavar='PCSC', default=None, + help='PC/SC reader number to use for SIM access') diff --git a/pySim/transport/serial.py b/pySim/transport/serial.py index 269ec9c..867317c 100644 --- a/pySim/transport/serial.py +++ b/pySim/transport/serial.py @@ -19,6 +19,7 @@ import serial import time import os.path +import argparse from typing import Optional from pySim.exceptions import NoCardError, ProtocolError @@ -240,3 +241,11 @@ def __str__(self) -> str: return "serial:%s" % (self._sl.name) + + @staticmethod + def argparse_add_reader_args(arg_parser: argparse.ArgumentParser): + serial_group = arg_parser.add_argument_group('Serial Reader') + serial_group.add_argument('-d', '--device', metavar='DEV', default='/dev/ttyUSB0', + help='Serial Device for SIM access') + serial_group.add_argument('-b', '--baud', dest='baudrate', type=int, metavar='BAUD', default=9600, + help='Baud rate used for SIM access') -- To view, visit https://gerrit.osmocom.org/c/pysim/+/34854?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: I22c32aa81ca0588e3314c3ff4546f6e5092c11df Gerrit-Change-Number: 34854 Gerrit-PatchSet: 1 Gerrit-Owner: dexter <pma...@sysmocom.de> Gerrit-MessageType: newchange