Module ammosreader.AmmosGlobalFrameHeader

Expand source code
import struct


class AmmosGlobalFrameHeader():

    MAGIC_WORD = "726574fb"
    HEADER_SIZE = 24

    @classmethod
    def from_bytes(cls, bytes):

        elements = struct.unpack('<4s4s4s4s4s4s', bytes)

        magic_word = elements[0].hex()

        frame_length = (int.from_bytes(elements[1], byteorder='little')*4)

        running_frame_number = (int.from_bytes(elements[2], byteorder='little'))

        frame_type = (int.from_bytes(elements[3], byteorder='little'))

        data_header_length = 4 * int.from_bytes(elements[4], byteorder='little')

        reserved = elements[5]

        return AmmosGlobalFrameHeader(magic_word, frame_length, running_frame_number,
                                      frame_type, data_header_length, reserved)

    def __init__(self, magic_word, frame_length, running_frame_number, frame_type, data_header_length, reserved):

        if magic_word != type(self).MAGIC_WORD:
            print("Wrong magic word")
            self.magic_word = magic_word
        else:
            self.magic_word = magic_word
            self.frame_length = frame_length
            self.running_frame_number = running_frame_number
            self.frame_type = frame_type
            self.data_header_length = data_header_length
            self.reserved = reserved

    def __str__(self):
        output = ("Global frame header info\n" +
                  "------------------------\n" +
                  "Magic word:" + str(self.magic_word) + "\n" +
                  "Frame length:" + str(self.frame_length) + "\n" +
                  "Running frame:" + str(self.running_frame_number) + "\n" +
                  "Frame Type:" + str(self.frame_type) + "\n" +
                  "Data header length:" + str(self.data_header_length) + "\n")
        return output

    def size(self):
        return 24

Classes

class AmmosGlobalFrameHeader (magic_word, frame_length, running_frame_number, frame_type, data_header_length, reserved)
Expand source code
class AmmosGlobalFrameHeader():

    MAGIC_WORD = "726574fb"
    HEADER_SIZE = 24

    @classmethod
    def from_bytes(cls, bytes):

        elements = struct.unpack('<4s4s4s4s4s4s', bytes)

        magic_word = elements[0].hex()

        frame_length = (int.from_bytes(elements[1], byteorder='little')*4)

        running_frame_number = (int.from_bytes(elements[2], byteorder='little'))

        frame_type = (int.from_bytes(elements[3], byteorder='little'))

        data_header_length = 4 * int.from_bytes(elements[4], byteorder='little')

        reserved = elements[5]

        return AmmosGlobalFrameHeader(magic_word, frame_length, running_frame_number,
                                      frame_type, data_header_length, reserved)

    def __init__(self, magic_word, frame_length, running_frame_number, frame_type, data_header_length, reserved):

        if magic_word != type(self).MAGIC_WORD:
            print("Wrong magic word")
            self.magic_word = magic_word
        else:
            self.magic_word = magic_word
            self.frame_length = frame_length
            self.running_frame_number = running_frame_number
            self.frame_type = frame_type
            self.data_header_length = data_header_length
            self.reserved = reserved

    def __str__(self):
        output = ("Global frame header info\n" +
                  "------------------------\n" +
                  "Magic word:" + str(self.magic_word) + "\n" +
                  "Frame length:" + str(self.frame_length) + "\n" +
                  "Running frame:" + str(self.running_frame_number) + "\n" +
                  "Frame Type:" + str(self.frame_type) + "\n" +
                  "Data header length:" + str(self.data_header_length) + "\n")
        return output

    def size(self):
        return 24

Class variables

var HEADER_SIZE
var MAGIC_WORD

Static methods

def from_bytes(bytes)
Expand source code
@classmethod
def from_bytes(cls, bytes):

    elements = struct.unpack('<4s4s4s4s4s4s', bytes)

    magic_word = elements[0].hex()

    frame_length = (int.from_bytes(elements[1], byteorder='little')*4)

    running_frame_number = (int.from_bytes(elements[2], byteorder='little'))

    frame_type = (int.from_bytes(elements[3], byteorder='little'))

    data_header_length = 4 * int.from_bytes(elements[4], byteorder='little')

    reserved = elements[5]

    return AmmosGlobalFrameHeader(magic_word, frame_length, running_frame_number,
                                  frame_type, data_header_length, reserved)

Methods

def size(self)
Expand source code
def size(self):
    return 24