Source code for instruments.abstract_instruments.multimeter

#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
Provides an abstract base class for multimeter instruments
"""

# IMPORTS #####################################################################

from __future__ import absolute_import
from __future__ import division

import abc

from future.utils import with_metaclass

from instruments.abstract_instruments import Instrument

# CLASSES #####################################################################


[docs]class Multimeter(with_metaclass(abc.ABCMeta, Instrument)): """ Abstract base class for multimeter instruments. All applicable concrete instruments should inherit from this ABC to provide a consistent interface to the user. """ # PROPERTIES # @property @abc.abstractmethod def mode(self): """ Gets/sets the measurement mode for the multimeter. This is an abstract method. :type: `~enum.Enum` """ pass @mode.setter @abc.abstractmethod def mode(self, newval): pass @property @abc.abstractmethod def trigger_mode(self): """ Gets/sets the trigger mode for the multimeter. This is an abstract method. :type: `~enum.Enum` """ pass @trigger_mode.setter @abc.abstractmethod def trigger_mode(self, newval): pass @property @abc.abstractmethod def relative(self): """ Gets/sets the status of relative measuring mode for the multimeter. This is an abstract method. :type: `bool` """ pass @relative.setter @abc.abstractmethod def relative(self, newval): pass @property @abc.abstractmethod def input_range(self): """ Gets/sets the current input range setting of the multimeter. This is an abstract method. :type: `~quantities.quantity.Quantity` or `~enum.Enum` """ pass @input_range.setter @abc.abstractmethod def input_range(self, newval): pass # METHODS ##
[docs] @abc.abstractmethod def measure(self, mode): """ Perform a measurement as specified by mode parameter. """ pass