diff --git a/applications/arts/commissioning/sc4/lab/20170421_iab_i_1GbE_bg/arts_unb1_sc4_pcap.py b/applications/arts/commissioning/sc4/lab/20170421_iab_i_1GbE_bg/arts_unb1_sc4_pcap.py index 7a174890af12ac7c70270dd56a1c33084895a49d..e3fbc18f7a108ddc4307d72bdd9fb1977e00ed83 100644 --- a/applications/arts/commissioning/sc4/lab/20170421_iab_i_1GbE_bg/arts_unb1_sc4_pcap.py +++ b/applications/arts/commissioning/sc4/lab/20170421_iab_i_1GbE_bg/arts_unb1_sc4_pcap.py @@ -39,6 +39,7 @@ Extra: import struct import sys from common import * +import datetime def dumpfile_to_array(dumpfile, nof_packets): """ @@ -56,7 +57,7 @@ def dumpfile_to_array(dumpfile, nof_packets): append_channels = False for packet in range(nof_packets): # 960 channels = 15 integration periods of 64 channels. - pcap_pkt_hdr_raw = f.read(16) + pcap_hdr_raw = f.read(16) eth_hdr_raw = f.read(14) ip_hdr_raw = f.read(20) udp_hdr_raw = f.read(8) @@ -65,6 +66,20 @@ def dumpfile_to_array(dumpfile, nof_packets): data_raw = f.read(6250) + ########################################################################### + # PCAP header: 4 little endian unsigned integers (32b) + ########################################################################### + pcap_hdr_struct = struct.unpack('<4I', pcap_hdr_raw) + pcap_hdr_words = CommonWords(0, 4) + for word_index,word in enumerate(reversed(pcap_hdr_struct)): + pcap_hdr_words[word_index] = word + + timestamp_utc_pcap = str(datetime.datetime.fromtimestamp(pcap_hdr_words[3]))+'.'+str("%06d" %pcap_hdr_words[2]) + + print 'Packet', packet, '-', 'PCAP timestamp UTC ', timestamp_utc_pcap + print 'Packet', packet, '-', 'PCAP pkt size: file (bytes) ', pcap_hdr_words[1] + print 'Packet', packet, '-', 'PCAP pkt size: wire (bytes) ', pcap_hdr_words[0] + ########################################################################### # Ethernet header: 7 big endian unsigned shorts (16b) ###########################################################################