From 99a58933ec0d567020dbd387ab97dd9ed51d35b0 Mon Sep 17 00:00:00 2001 From: l_samenv Date: Thu, 18 Jan 2024 08:40:33 +0100 Subject: [PATCH] ionopimax: Add LogVoltageInput --- frappy_psi/ionopimax.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/frappy_psi/ionopimax.py b/frappy_psi/ionopimax.py index b3d8bbf..880edef 100644 --- a/frappy_psi/ionopimax.py +++ b/frappy_psi/ionopimax.py @@ -20,6 +20,7 @@ from frappy.core import Readable, Writable, Parameter, BoolType, StringType,\ FloatRange, Property, TupleOf, ERROR, IDLE +from math import log class Base: @@ -73,6 +74,15 @@ class VoltageInput(AnalogInput): def initModule(self): super().initModule() self.write(f'{self.addr}_mode','U') + +class LogVoltageInput(VoltageInput): + + def read_value(self): + x0, x1 = self.rawrange + y0, y1 = self.valuerange + self.x = self.read(self.addr, self.scale) + a = (x1-x0)/log(y1/y0,10) + return 10**((self.x-x1)/a)*y1 class CurrentInput(AnalogInput):