42def main(dump, count, port, gap, frame_type):
43 s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, 0)
54 frame_class = fddetdataformats.WIBEthFrame
55 port = port
if not port
is None else 0x4444
56 gap = gap
if not gap
is None else 2048
58 frame_class = fddetdataformats.TDEEthFrame
59 port = port
if not port
is None else 54323
60 gap = gap
if not gap
is None else 2000
62 print(
'Starting receiver')
63 while (count==
None or i<count):
65 data, address = s.recvfrom(20000)
66 wf = frame_class(data)
67 header = wf.get_daqheader()
71 hdr_id = (header.det_id, header.crate_id, header.slot_id, header.stream_id)
74 stream_ts = header.timestamp
79 if hdr_id
not in prev_stream:
82 prev_strm_ts = prev_stream[hdr_id]
83 if (stream_ts - prev_strm_ts) != FRAME_TS_GAP:
84 print(f
'delta_ts {stream_ts-prev_strm_ts} for {hdr_id} ')
91 prev_stream[hdr_id] = stream_ts
97 avg_throughput = FRAME_SIZE*i/(1000000*(dtnow-dtstart))
98 throughput = FRAME_SIZE*sampling/(1000000*(dtnow-dtlast))
99 print(f
'Received {i} packets; throughput = {throughput:.3f} MB/s [avg = {avg_throughput:.3f} MB/s]')
102 for k,ts
in prev_stream.items():
105 print(f
"stream {k}: last_ts {ts}")