pwr_batt.py 1.05 KiB
from ohmpi.hardware_components.abstract_hardware_components import PwrAbstract
import numpy as np
import os


class Pwr(PwrAbstract):
    def __init__(self, **kwargs):
        kwargs.update({'board_name': os.path.basename(__file__).rstrip('.py')})
        voltage = kwargs.pop('voltage', 12.)
        super().__init__(**kwargs)
        self.voltage_adjustable = False
        self._voltage = voltage
        self._current_adjustable = False
        self._current = np.nan
        self._state = 'on'

    @property
    def current(self):
        return self._current

    @current.setter
    def current(self, value, **kwargs):
        self.exec_logger.debug(f'Current cannot be set on {self.board_name}')

    def turn_off(self):
        self.exec_logger.debug(f'{self.board_name} cannot be turned off')

    def turn_on(self):
        self.exec_logger.debug(f'{self.board_name} is always on')

    @property
    def voltage(self):
        return PwrAbstract.voltage.fget(self)

    @voltage.setter
    def voltage(self, value):
        PwrAbstract.voltage.fset(self, value)