diff options
author | Matthias P. Braendli <matthias.braendli@mpb.li> | 2015-07-17 11:26:11 +0200 |
---|---|---|
committer | Matthias P. Braendli <matthias.braendli@mpb.li> | 2015-07-17 11:26:11 +0200 |
commit | 21d3841b7c51e9b6cfb9ff3973a55d9b2856d09f (patch) | |
tree | 4d40d50041277215403ab3f204e214930d051a1b /edi | |
parent | cd417c06e24a6e0eb4a694ac83f40ef5b763ed82 (diff) | |
download | mmbtools-aux-21d3841b7c51e9b6cfb9ff3973a55d9b2856d09f.tar.gz mmbtools-aux-21d3841b7c51e9b6cfb9ff3973a55d9b2856d09f.tar.bz2 mmbtools-aux-21d3841b7c51e9b6cfb9ff3973a55d9b2856d09f.zip |
edidebug improvements
Diffstat (limited to 'edi')
-rwxr-xr-x | edi/edidebug.py | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/edi/edidebug.py b/edi/edidebug.py index ab61ab7..24b0348 100755 --- a/edi/edidebug.py +++ b/edi/edidebug.py @@ -89,6 +89,8 @@ def decode(stream): success = True else: p.pr("AF decode fail") + else: + p.pr("sync unknown {}".format(sync)) return success @@ -190,7 +192,10 @@ class Defragmenter(): received_fragments = [f for f in self.fragments if f is not None] p.pr("Fragments: {} (need {})".format(len(received_fragments), self.fcount)) if len(received_fragments) >= self.fcount: - return self.cb(received_fragments) + p.inc() + r = self.cb(received_fragments) + p.dec() + return r # The RS decoder should be able to handle partial lists # of fragments. The AF decoder cannot @@ -202,8 +207,9 @@ class Defragmenter(): def get_rs_decoder(chunk_size, zeropad): p.pr("Build RS decoder for chunk size={}, zero pad={}".format(chunk_size, zeropad)) def decode_rs(fragments): + fragment_lengths = ", ".join(["{}:{}".format(i, len(f)) for i,f in enumerate(fragments)]) p.pr("RS decode {} fragments of length {}".format( - len(fragments), len(fragments[0]))) + len(fragments), fragment_lengths)) #for f in fragments: # p.hexpr(" ZE FRAGMENT", f); @@ -218,7 +224,6 @@ def get_rs_decoder(chunk_size, zeropad): #p.hexpr(" ZE RS BLOCK", "".join(rs_block)) num_chunks = len(rs_block) / chunk_size - p.pr("{} chunks".format(num_chunks)) data_size = chunk_size + 48 @@ -230,6 +235,9 @@ def get_rs_decoder(chunk_size, zeropad): rs_block[i*data_size + chunk_size:(i+1)*data_size]) for i in range(num_chunks)] + chunk_lengths = ", ".join(["{}:{}+{}".format(i, len(c[0]), len(c[1])) for i,c in enumerate(rs_chunks)]) + p.pr("{} chunks of length {}".format(num_chunks, chunk_lengths)) + #for c in rs_chunks: # p.hexpr(" ZE CHUNK DATA", c[0]); # p.hexpr(" ZE CHUNK PROT", c[1]); @@ -247,6 +255,7 @@ def get_rs_decoder(chunk_size, zeropad): recalc_protection = rs_codec.encode(bchunk)[-48:] if protection != recalc_protection: p.pr(" PROTECTION ERROR") + p.hexpr(" data", chunk) p.hexpr(" orig", protection) p.hexpr(" calc", recalc_protection) protection_ok = False @@ -356,7 +365,7 @@ def decode_tag(tagpacket): elif item['name'].startswith("est"): decode_estn(item) else: - p.pr("Tag item '{}' ({})".format(item['name'], item['length'])) + p.hexpr("Tag item '{}'".format(item['name']), item['value']) p.dec() return True |