Module ammosreader.AmmosIFDataBlockHeader

Expand source code
import struct


class AmmosIFDataBlockHeader:
    """I implement an AMMOS IF data block header."""

    HEADER_SIZE = 4

    @classmethod
    def from_bytes(cls, bytes):
        """I return an AMMOS IF data block header built from bytes."""
        assert len(bytes) == cls.HEADER_SIZE
        elements = struct.unpack('<ccH', bytes)
        header = cls()
        first_entry = int.from_bytes(elements[0], byteorder='little')
        header.invalidity = ((first_entry & 1) == 1)
        header.blanking = ((first_entry & 2) == 1)
        header.user_data = ((first_entry & 252))
        header.reserved = int.from_bytes(elements[1], byteorder='little')
        header.reciprocal_gain = elements[2]
        return header

    def __init__(self):
        """I return an AMMOS IF data block header initialized with sane default values."""
        self.__invalidity = True
        self.__blanking = False
        self.__user_data = 0
        self.__reserved = 0
        self.__reciprocal_gain = 0

    @property
    def invalidity(self):
        return self.__invalidity

    @invalidity.setter
    def invalidity(self, a_boolean):
        self.__invalidity = a_boolean

    @property
    def blanking(self):
        return self.__blanking

    @blanking.setter
    def blanking(self, a_boolean):
        self.__blanking = a_boolean

    @property
    def user_data(self):
        return self.__user_data

    @user_data.setter
    def user_data(self, some_data):
        self.__user_data = some_data

    @property
    def reserved(self):
        return self.__reserved

    @reserved.setter
    def reserved(self, some_data):
        assert some_data == 0
        self.__reserved = some_data

    @property
    def reciprocal_gain(self):
        return self.__reciprocal_gain

    @reciprocal_gain.setter
    def reciprocal_gain(self, a_gain_value):
        assert 0 <= a_gain_value < pow(2, 16)
        self.__reciprocal_gain = a_gain_value

Classes

class AmmosIFDataBlockHeader

I implement an AMMOS IF data block header.

I return an AMMOS IF data block header initialized with sane default values.

Expand source code
class AmmosIFDataBlockHeader:
    """I implement an AMMOS IF data block header."""

    HEADER_SIZE = 4

    @classmethod
    def from_bytes(cls, bytes):
        """I return an AMMOS IF data block header built from bytes."""
        assert len(bytes) == cls.HEADER_SIZE
        elements = struct.unpack('<ccH', bytes)
        header = cls()
        first_entry = int.from_bytes(elements[0], byteorder='little')
        header.invalidity = ((first_entry & 1) == 1)
        header.blanking = ((first_entry & 2) == 1)
        header.user_data = ((first_entry & 252))
        header.reserved = int.from_bytes(elements[1], byteorder='little')
        header.reciprocal_gain = elements[2]
        return header

    def __init__(self):
        """I return an AMMOS IF data block header initialized with sane default values."""
        self.__invalidity = True
        self.__blanking = False
        self.__user_data = 0
        self.__reserved = 0
        self.__reciprocal_gain = 0

    @property
    def invalidity(self):
        return self.__invalidity

    @invalidity.setter
    def invalidity(self, a_boolean):
        self.__invalidity = a_boolean

    @property
    def blanking(self):
        return self.__blanking

    @blanking.setter
    def blanking(self, a_boolean):
        self.__blanking = a_boolean

    @property
    def user_data(self):
        return self.__user_data

    @user_data.setter
    def user_data(self, some_data):
        self.__user_data = some_data

    @property
    def reserved(self):
        return self.__reserved

    @reserved.setter
    def reserved(self, some_data):
        assert some_data == 0
        self.__reserved = some_data

    @property
    def reciprocal_gain(self):
        return self.__reciprocal_gain

    @reciprocal_gain.setter
    def reciprocal_gain(self, a_gain_value):
        assert 0 <= a_gain_value < pow(2, 16)
        self.__reciprocal_gain = a_gain_value

Class variables

var HEADER_SIZE

Static methods

def from_bytes(bytes)

I return an AMMOS IF data block header built from bytes.

Expand source code
@classmethod
def from_bytes(cls, bytes):
    """I return an AMMOS IF data block header built from bytes."""
    assert len(bytes) == cls.HEADER_SIZE
    elements = struct.unpack('<ccH', bytes)
    header = cls()
    first_entry = int.from_bytes(elements[0], byteorder='little')
    header.invalidity = ((first_entry & 1) == 1)
    header.blanking = ((first_entry & 2) == 1)
    header.user_data = ((first_entry & 252))
    header.reserved = int.from_bytes(elements[1], byteorder='little')
    header.reciprocal_gain = elements[2]
    return header

Instance variables

var blanking
Expand source code
@property
def blanking(self):
    return self.__blanking
var invalidity
Expand source code
@property
def invalidity(self):
    return self.__invalidity
var reciprocal_gain
Expand source code
@property
def reciprocal_gain(self):
    return self.__reciprocal_gain
var reserved
Expand source code
@property
def reserved(self):
    return self.__reserved
var user_data
Expand source code
@property
def user_data(self):
    return self.__user_data