laforge has uploaded this change for review.

View Change

pySim-shell: Add 'switch_channel' command

We've already had the 'open_channel' and 'close_channel' commands,
which were sent to (and acknowledged by) the card. However,
those commands didn't affect the pySim-shell state, i.e. all
communication would still happen through the default channel '0'.

With this patch we introduce a 'switch_channel' command, using which
the user can determine which of the (previously opened) logical channels
shall be used by pySim-shell.

Change-Id: Ia76eb45c4925882ae6866e50b64d9610bd4d546d
Closes: OS#6230
---
M docs/shell.rst
M pySim-shell.py
2 files changed, 37 insertions(+), 0 deletions(-)

git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/48/34848/1
diff --git a/docs/shell.rst b/docs/shell.rst
index 73b988a..2c3d84d 100644
--- a/docs/shell.rst
+++ b/docs/shell.rst
@@ -199,6 +199,12 @@
:module: pySim-shell
:func: Iso7816Commands.close_chan_parser

+switch_channel
+~~~~~~~~~~~~~~
+.. argparse::
+ :module: pySim-shell
+ :func: Iso7816Commands.switch_chan_parser
+

TS 102 221 commands
-------------------
diff --git a/pySim-shell.py b/pySim-shell.py
index 8a1ad01..2f97389 100755
--- a/pySim-shell.py
+++ b/pySim-shell.py
@@ -963,6 +963,18 @@
# this is executed only in successful case, as unsuccessful raises exception
self._cmd.rs.del_lchan(opts.chan_nr)

+ switch_chan_parser = argparse.ArgumentParser()
+ switch_chan_parser.add_argument(
+ 'chan_nr', type=int, default=0, help='Channel Number')
+
+ @cmd2.with_argparser(switch_chan_parser)
+ def do_switch_channel(self, opts):
+ """Switch currently active logical channel."""
+ self._cmd.lchan._select_pre(self._cmd)
+ self._cmd.lchan = self._cmd.rs.lchan[opts.chan_nr]
+ self._cmd.lchan._select_post(self._cmd)
+ self._cmd.update_prompt()
+
def do_status(self, opts):
"""Perform the STATUS command."""
fcp_dec = self._cmd.lchan.status()

To view, visit change 34848. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: pysim
Gerrit-Branch: master
Gerrit-Change-Id: Ia76eb45c4925882ae6866e50b64d9610bd4d546d
Gerrit-Change-Number: 34848
Gerrit-PatchSet: 1
Gerrit-Owner: laforge <laforge@osmocom.org>
Gerrit-MessageType: newchange