Source code for lories.data.converters.io.current

# -*- coding: utf-8 -*-
"""
lories.data.converters.io.current
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


"""

from __future__ import annotations

from lories.core import ConfigurationError
from lories.core.typing import Configurations
from lories.data.converters import register_converter_type
from lories.data.converters.io.analog import AnalogInput


# noinspection PyAbstractClass
[docs] @register_converter_type("current_input", "current_sensor") class CurrentInput(AnalogInput): INPUT_KEY: str = "current"
# noinspection PyAbstractClass
[docs] @register_converter_type("current_loop", "4_20ma_input") class CurrentLoopInput(AnalogInput): def _configure_input( self, configs: Configurations, default_max: float = 0.02, default_min: float = 0.004, ) -> None: super()._configure_input(configs, default_max, default_min) # noinspection PyShadowingBuiltins def _assert_input(self, min: float, max: float, zero: float) -> None: super()._assert_input(min, max, zero) if min < 0.004: raise ConfigurationError(f"Invalid current minimum for '{self.id}' 4-20mA input: {min}") if max > 0.02: raise ConfigurationError(f"Invalid current maximum for '{self.id}' 4-20mA input: {max}")