Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
hbacomponenterror.py 2.79 KiB
from django.db import models

from .componenterror import ComponentError, NOISE_ERROR_TYPE


class HBAComponentError(ComponentError):
    pass


HBA_SUMMATOR_ERROR_TYPE = (('C',''), ('P',''))


class HBASummatorError(HBAComponentError):
    type = models.CharField(choices=HBA_SUMMATOR_ERROR_TYPE, max_length=1)


class HBAModemError(HBAComponentError):
    pass


class HBARFFailError(HBAComponentError):

    measured_signal_nodelayX = models.FloatField(null=True, default=None)
    measured_signal_fulldelayX = models.FloatField(null=True, default=None)

    subband_used_nodelayX = models.PositiveSmallIntegerField(null=True,default=None)
    subband_used_fulldelayX = models.PositiveSmallIntegerField(null=True,default=None)

    reference_signal_nodelayX = models.FloatField(null=True,default=None)
    reference_signal_fulldelayX = models.FloatField(null=True,default=None)

    measured_signal_nodelayY = models.FloatField(default=None, null=True)
    measured_signal_fulldelayY = models.FloatField(default=None, null=True)

    subband_used_nodelayY = models.PositiveSmallIntegerField(default=None, null=True)
    subband_used_fulldelayY = models.PositiveSmallIntegerField(default=None, null=True)

    reference_signal_nodelayY = models.FloatField(default=None, null=True)
    reference_signal_fulldelayY = models.FloatField(default=None, null=True)


class HBANoiseError(HBAComponentError):
    type = models.CharField(default='-', max_length=1, choices=NOISE_ERROR_TYPE)

    percentageX = models.FloatField(default=None, null=True)
    percentageY = models.FloatField(default=None, null=True)

    peak_valueX = models.FloatField(default=None, null=True)
    peak_valueY = models.FloatField(default=None, null=True)

    fluctuationX = models.FloatField(default=None, null=True)
    fluctuationY = models.FloatField(default=None, null=True)

    limitX = models.FloatField(default=None, null=True)
    limitY = models.FloatField(default=None, null=True)


class HBAJitterError(HBAComponentError):
    percentageX = models.FloatField(default=None, null=True)
    percentageY = models.FloatField(default=None, null=True)

    average_valueX = models.FloatField(default=None, null=True)
    average_valueY = models.FloatField(default=None, null=True)

    fluctuationX = models.FloatField(default=None, null=True)
    fluctuationY = models.FloatField(default=None, null=True)


class HBAOscillationError(HBAComponentError):
    polarizationX = models.BooleanField(default=False)
    polarizationY = models.BooleanField(default=False)


class HBASpuriousError(HBAComponentError):
    polarizationX = models.BooleanField(default=False)
    polarizationY = models.BooleanField(default=False)


class HBASummatorNoise(HBAComponentError):
    polarizationX = models.BooleanField(default=False)
    polarizationY = models.BooleanField(default=False)