mirror of
https://gitea.osmocom.org/sim-card/pysim.git
synced 2026-03-27 15:58:34 +03:00
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
This commit is contained in:
@@ -267,27 +267,17 @@ class LinkBase(abc.ABC):
|
|||||||
return (rsp, sw)
|
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."""
|
"""Add all reader related arguments to the given argparse.Argumentparser instance."""
|
||||||
serial_group = arg_parser.add_argument_group('Serial Reader')
|
from pySim.transport.serial import SerialSimLink
|
||||||
serial_group.add_argument('-d', '--device', metavar='DEV', default='/dev/ttyUSB0',
|
from pySim.transport.pcsc import PcscSimLink
|
||||||
help='Serial Device for SIM access')
|
from pySim.transport.modem_atcmd import ModemATCommandLink
|
||||||
serial_group.add_argument('-b', '--baud', dest='baudrate', type=int, metavar='BAUD', default=9600,
|
from pySim.transport.calypso import CalypsoSimLink
|
||||||
help='Baud rate used for SIM access')
|
|
||||||
|
|
||||||
pcsc_group = arg_parser.add_argument_group('PC/SC Reader')
|
SerialSimLink.argparse_add_reader_args(arg_parser)
|
||||||
pcsc_group.add_argument('-p', '--pcsc-device', type=int, dest='pcsc_dev', metavar='PCSC', default=None,
|
PcscSimLink.argparse_add_reader_args(arg_parser)
|
||||||
help='PC/SC reader number to use for SIM access')
|
ModemATCommandLink.argparse_add_reader_args(arg_parser)
|
||||||
|
CalypsoSimLink.argparse_add_reader_args(arg_parser)
|
||||||
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)')
|
|
||||||
|
|
||||||
return arg_parser
|
return arg_parser
|
||||||
|
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ import select
|
|||||||
import struct
|
import struct
|
||||||
import socket
|
import socket
|
||||||
import os
|
import os
|
||||||
|
import argparse
|
||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
|
||||||
from pySim.transport import LinkBase
|
from pySim.transport import LinkBase
|
||||||
@@ -164,3 +164,9 @@ class CalypsoSimLink(LinkBase):
|
|||||||
|
|
||||||
def __str__(self) -> str:
|
def __str__(self) -> str:
|
||||||
return "osmocon:%s" % (self._sock_path)
|
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)')
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ import logging as log
|
|||||||
import serial
|
import serial
|
||||||
import time
|
import time
|
||||||
import re
|
import re
|
||||||
|
import argparse
|
||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
|
||||||
from pySim.utils import Hexstr, ResTuple
|
from pySim.utils import Hexstr, ResTuple
|
||||||
@@ -173,3 +174,11 @@ class ModemATCommandLink(LinkBase):
|
|||||||
|
|
||||||
def __str__(self) -> str:
|
def __str__(self) -> str:
|
||||||
return "modem:%s" % self._device
|
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')
|
||||||
|
|||||||
@@ -17,6 +17,7 @@
|
|||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
|
||||||
|
import argparse
|
||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
|
||||||
from smartcard.CardConnection import CardConnection
|
from smartcard.CardConnection import CardConnection
|
||||||
@@ -96,3 +97,9 @@ class PcscSimLink(LinkBase):
|
|||||||
|
|
||||||
def __str__(self) -> str:
|
def __str__(self) -> str:
|
||||||
return "PCSC:%u[%s]" % (self._reader_number, self._reader)
|
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')
|
||||||
|
|||||||
@@ -19,6 +19,7 @@
|
|||||||
import serial
|
import serial
|
||||||
import time
|
import time
|
||||||
import os.path
|
import os.path
|
||||||
|
import argparse
|
||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
|
||||||
from pySim.exceptions import NoCardError, ProtocolError
|
from pySim.exceptions import NoCardError, ProtocolError
|
||||||
@@ -240,3 +241,11 @@ class SerialSimLink(LinkBase):
|
|||||||
|
|
||||||
def __str__(self) -> str:
|
def __str__(self) -> str:
|
||||||
return "serial:%s" % (self._sl.name)
|
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')
|
||||||
|
|||||||
Reference in New Issue
Block a user