Ignore:
Timestamp:
10/02/12 15:46:17 (12 years ago)
Author:
István Váradi <ivaradi@…>
Branch:
default
hg-Phase:
(<MercurialRepository 1 'hg:/home/ivaradi/mlx/hg' '/'>, 'public')
Message:

Added support for logging the OBS settings for navigational radios

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/mlx/checks.py

    r319 r320  
    288288       
    289289        if shouldLog:
    290             logger.message(self._getLogTimestamp(state),
    291                            self._getMessage(flight, state))
     290            message = self._getMessage(flight, state)
     291            if message is not None:
     292                logger.message(self._getLogTimestamp(state), message)
    292293       
    293294#-------------------------------------------------------------------------------
     
    371372    def _getMessage(self, flight, state):
    372373        """Get the message."""
    373         return self._template % (self._getValue(state),)
     374        value = self._getValue(state)       
     375        return None if value is None else self._template % (value,)
    374376
    375377#---------------------------------------------------------------------------------------
     
    411413#---------------------------------------------------------------------------------------
    412414
    413 class NAV1Logger(GenericStateChangeLogger):
     415class NAVLogger(StateChangeLogger, DelayedChangeMixin):
     416    """Logger for NAV radios.
     417
     418    It also logs the OBS frequency set."""
     419    def __init__(self, attrName, logName):
     420        """Construct the NAV logger."""
     421        StateChangeLogger.__init__(self, logInitial = True)
     422        DelayedChangeMixin.__init__(self)
     423
     424        self._attrName = attrName
     425        self._logName = logName
     426       
     427    def _getValue(self, state):
     428        """Get the value.
     429
     430        If both the frequency and the obs settings are available, a tuple
     431        containing them is returned, otherwise None."""
     432        frequency = getattr(state, self._attrName)
     433        obs = getattr(state, self._attrName + "_obs")
     434        return None if frequency is None or obs is None else (frequency, obs)
     435
     436    def _getMessage(self, flight, state):
     437        """Get the message."""
     438        value = self._getValue(state)
     439        return None if value is None else \
     440               (u"%s frequency: %s MHz [%d\u00b0]" % (self._logName, value[0], value[1]))
     441
     442#---------------------------------------------------------------------------------------
     443
     444class NAV1Logger(NAVLogger):
    414445    """Logger for the NAV1 radio setting."""
    415446    def __init__(self):
    416447        """Construct the logger."""
    417         super(NAV1Logger, self).__init__("nav1", "NAV1 frequency: %s MHz")
    418 
    419 #---------------------------------------------------------------------------------------
    420 
    421 class NAV2Logger(GenericStateChangeLogger):
     448        super(NAV1Logger, self).__init__("nav1", "NAV1")
     449
     450#---------------------------------------------------------------------------------------
     451
     452class NAV2Logger(NAVLogger):
    422453    """Logger for the NAV2 radio setting."""
    423454    def __init__(self):
    424455        """Construct the logger."""
    425         super(NAV2Logger, self).__init__("nav2", "NAV2 frequency: %s MHz")
     456        super(NAV2Logger, self).__init__("nav2", "NAV2")
    426457
    427458#---------------------------------------------------------------------------------------
Note: See TracChangeset for help on using the changeset viewer.