fixL s3_analyzer noise clean up.
-_extract_a4_inner_frames(payload) — splits the A4 container payload into inner sub-frames using the ACK DLE STX delimiter pattern, returning (sub, page_key, data) tuples -_diff_a4_payloads(payload_a, payload_b) — matches inner frames by (sub, page_key), diffs data byte-by-byte (with existing noise masking), and reports added/removed inner frames as synthetic entries
This commit is contained in:
@@ -825,12 +825,21 @@ class AnalyzerPanel(tk.Frame):
|
||||
w.tag_bind(link_tag, "<Leave>", lambda e: w.configure(cursor=""))
|
||||
w.configure(state="disabled")
|
||||
for bd in fd.diffs:
|
||||
b = f"{bd.before:02x}" if bd.before >= 0 else "--"
|
||||
a = f"{bd.after:02x}" if bd.after >= 0 else "--"
|
||||
self._tw(w, f" [{bd.payload_offset:3d}] 0x{bd.payload_offset:04X}: ", "dim")
|
||||
self._tw(w, f"{b} -> {a}", "changed")
|
||||
if bd.field_name: self._tw(w, f" [{bd.field_name}]", "known")
|
||||
self._tn(w)
|
||||
def _fmt(v: int) -> str:
|
||||
if v == -2: return "ADD"
|
||||
if v == -1: return "--"
|
||||
return f"{v:02x}"
|
||||
b, a = _fmt(bd.before), _fmt(bd.after)
|
||||
# A4 inner-frame add/remove: field_name carries the full description
|
||||
if bd.field_name and (bd.before == -2 or bd.after == -2 or bd.before == -1 or bd.after == -1) and bd.field_name.startswith("[A4"):
|
||||
self._tw(w, f" {b} -> {a} ", "changed")
|
||||
self._tw(w, bd.field_name, "known")
|
||||
self._tn(w)
|
||||
else:
|
||||
self._tw(w, f" [{bd.payload_offset:3d}] 0x{bd.payload_offset:04X}: ", "dim")
|
||||
self._tw(w, f"{b} -> {a}", "changed")
|
||||
if bd.field_name: self._tw(w, f" [{bd.field_name}]", "known")
|
||||
self._tn(w)
|
||||
|
||||
report = render_session_report(sess, diffs, idx - 1 if idx > 0 else None)
|
||||
self._tc(self.report_text)
|
||||
|
||||
Reference in New Issue
Block a user