Files
radar_frontend/web_viewer/test_shm.py
2025-11-18 12:26:48 +03:00

75 lines
2.2 KiB
Python
Executable File

#!/usr/bin/env python3
"""
Test script to check shared memory connection and read frames
"""
from shared_memory_reader import SharedMemoryFrameReader
import time
def main():
print("=" * 50)
print("Shared Memory Frame Buffer Test")
print("=" * 50)
print()
try:
print("1. Connecting to shared memory...")
reader = SharedMemoryFrameReader()
print(" ✓ Connected successfully!")
print()
print("2. Reading frames for 10 seconds...")
print(" (Press Ctrl+C to stop early)")
print()
start_time = time.time()
frame_count = 0
last_frame_num = -1
while time.time() - start_time < 10:
result = reader.read_frame()
if result:
header, jpeg_data = result
if header.frame_number != last_frame_num:
frame_count += 1
last_frame_num = header.frame_number
print(f" Frame #{header.frame_number}:")
print(f" Size: {len(jpeg_data)} bytes ({len(jpeg_data)/1024:.1f} KB)")
print(f" Resolution: {header.width}x{header.height}")
print(f" Timestamp: {header.timestamp_us} µs")
print()
time.sleep(0.1) # Don't spam console
else:
print(" No frame available, waiting...")
time.sleep(0.5)
print("=" * 50)
print(f"Test complete! Received {frame_count} frames in 10 seconds")
print(f"Average FPS: {frame_count / 10:.1f}")
print("=" * 50)
reader.close()
except KeyboardInterrupt:
print("\n\nStopped by user")
except Exception as e:
print(f"\n✗ Error: {e}")
print()
print("Troubleshooting:")
print("1. Is beacon_track running?")
print(" cd beacon_track/build && ./main realtime output.txt")
print()
print("2. Is EnableFrameBuffer=true in config.ini?")
print()
print("3. Check beacon_track logs for 'Shared memory frame buffer initialized'")
return 1
return 0
if __name__ == '__main__':
exit(main())