From 415557361737586b6d45e74ffa62ec0dd8830164 Mon Sep 17 00:00:00 2001 From: Philipp Maier Date: Thu, 25 Feb 2021 16:52:08 +0100 Subject: [PATCH] filesystem: allow dumping multiple records of a file At the moment we can only request pySim-shell to dump a specific record of a file. However, it may be useful to dump multiple records of a record oriented file at once. Change-Id: Id62db2cba4e3dfb6a7b3e6be8b892c16d11a8e3e Related: OS#4963 --- pySim/filesystem.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/pySim/filesystem.py b/pySim/filesystem.py index 73401d61..664c7229 100644 --- a/pySim/filesystem.py +++ b/pySim/filesystem.py @@ -378,11 +378,18 @@ class LinFixedEF(CardEF): read_rec_parser = argparse.ArgumentParser() read_rec_parser.add_argument('record_nr', type=int, help='Number of record to be read') + read_rec_parser.add_argument('--count', type=int, default=1, help='Number of records to be read, beginning at record_nr') @cmd2.with_argparser(read_rec_parser) def do_read_record(self, opts): - """Read a record from a record-oriented EF""" - (data, sw) = self._cmd.rs.read_record(opts.record_nr) - self._cmd.poutput(data) + """Read one or multiple records from a record-oriented EF""" + for r in range(opts.count): + recnr = opts.record_nr + r + (data, sw) = self._cmd.rs.read_record(recnr) + if (len(data) > 0): + recstr = str(data) + else: + recstr = "(empty)" + self._cmd.poutput("%03d %s" % (recnr, recstr)) read_rec_dec_parser = argparse.ArgumentParser() read_rec_dec_parser.add_argument('record_nr', type=int, help='Number of record to be read')