source: ammosreader/AmmosGlobalFrameHeader.py@ 1e781ba

AmmosSource guix
Last change on this file since 1e781ba was 1e781ba, checked in by recknagel <recknagel@…>, 3 years ago

former radardex-project

  • Property mode set to 100644
File size: 1.8 KB
RevLine 
[1e781ba]1import struct
2
3
4class AmmosGlobalFrameHeader():
5
6 MAGIC_WORD = "726574fb"
7
8 @classmethod
9 def from_bytes(cls, bytes):
10
11 elements = struct.unpack('4s4s4s4s4s4s', bytes)
12
13 magic_word = elements[0].hex()
14
15 frame_length = (int.from_bytes(elements[1], byteorder='little')*4)
16
17 running_frame_number = (int.from_bytes(elements[2], byteorder='little'))
18
19 frame_type = (int.from_bytes(elements[3], byteorder='little'))
20
21 data_header_length = 4 * int.from_bytes(elements[4], byteorder='little')
22
23 reserved = elements[5]
24
25 return AmmosGlobalFrameHeader(magic_word, frame_length, running_frame_number,
26 frame_type, data_header_length, reserved)
27
28 def __init__(self, magic_word, frame_length, running_frame_number, frame_type, data_header_length, reserved):
29
30 if magic_word != self.MAGIC_WORD:
31 print("Wrong magic word")
32 self.magic_word = magic_word
33 return None
34 else:
35 self.magic_word = magic_word
36 self.frame_length = frame_length
37 self.running_frame_number = running_frame_number
38 self.frame_type = frame_type
39 self.data_header_length = data_header_length
40 self.reserved = reserved
41
42 def __str__(self):
43 output = ("Global frame header info\n" +
44 "------------------------\n" +
45 "Magic word:" + str(self.magic_word) + "\n" +
46 "Frame length:" + str(self.frame_length) + "\n" +
47 "Running frame:" + str(self.running_frame_number) + "\n" +
48 "Frame Type:" + str(self.frame_type) + "\n" +
49 "Data header length:" + str(self.data_header_length) + "\n")
50 return output
51
52 def size(self):
53 return 24
Note: See TracBrowser for help on using the repository browser.