feat: rewrite SniffSession with live streaming and REPL auto-load
Replace lightweight async SniffSession with persistent synchronous session using raw pyserial (mirroring SimSession pattern). Background reader thread decodes and prints trace frames live as they arrive. API: session = SniffSession.open() session.start_15693() # live streaming (default) session.start_15693(live=False) # legacy batch mode session.stop() # or button press to pause/resume session.entries # all captured frames session.clear() .pythonstartup.py auto-creates session in sniff mode.
This commit is contained in:
@@ -95,6 +95,22 @@ for module_name, attr_name in imports:
|
||||
if loaded:
|
||||
print(f"[pm3py:{_MODE}] Loaded: {', '.join(loaded.keys())}")
|
||||
|
||||
if _MODE == "core":
|
||||
try:
|
||||
pm3 = Proxmark3.sync()
|
||||
print()
|
||||
print("Synchronous connection established")
|
||||
print()
|
||||
except Exception as e:
|
||||
print(f" (Proxmark3 connection failed: {e})")
|
||||
|
||||
if _MODE == "sniff":
|
||||
try:
|
||||
session = SniffSession.open()
|
||||
print("Sniff session ready -- session.start_15693()")
|
||||
except Exception as e:
|
||||
print(f" (Sniff session failed: {e})")
|
||||
|
||||
if failed:
|
||||
print(f"\n[pm3py:{_MODE}] Failed:")
|
||||
for name, (mod, err) in failed.items():
|
||||
|
||||
Reference in New Issue
Block a user