Tool/software:
Hi I am using the MRR Lab configured to use MRR subframes only. But it seems that the radar module are sending two MRR subframes every 60ms at one go, instead of sending one MRR subframe every 30ms, so even though each subframe duration is 30ms, I did not get 30 fps because the radar module is holding onto the first subframe to wait for the second subframe to complete before sending it out. Below is the python code I used to decode the incoming raw data, and as you can see, the message I received at each time has two headers in it, meaning two subframes. How can I change the MRR code so that it sends out subframe every 30ms, perhaps it is the MRR_DSS_DataPathOutputLogging function in dss_main.c?
import serial from mrr_structs import MRR_session magic_word = b"\x02\x01\x04\x03\x06\x05\x08\x07" ser = serial.Serial('COM5', 921600, timeout=0.1) buffer = b"" def update(): global buffer if ser.in_waiting: buffer += ser.read(ser.in_waiting) ptr = buffer.find(magic_word) count = buffer.count(magic_word) print(count) if ptr != -1: try: session = MRR_session(buffer, ptr) messages = session.get_dict() print(messages) ##OUTPUT## #{'messages': [{'header': {'magic_word_0': 258, 'magic_word_1': 772, 'magic_word_2': 1286, 'magic_word_3': 1800, 'version': 50725376, 'totalPacketLen': 64, 'platform': 661058, 'frameNumber': 93315, 'timeCpuCycles': 389067100, 'numDetectedObj': 0, 'numTLVs': 0, 'subFrameNumber': 0}, 'body': []}, # {'header': {'magic_word_0': 258, 'magic_word_1': 772, 'magic_word_2': 1286, 'magic_word_3': 1800, 'version': 50725376, 'totalPacketLen': 64, 'platform': 661058, 'frameNumber': 93316, 'timeCpuCycles': 407057434, 'numDetectedObj': 0, 'numTLVs': 0, 'subFrameNumber': 0}, 'body': []}]} ########## buffer = b"" except Exception as e: print("Incomplete or corrupt message:", e) while True: update()