[WIP] further fixes for linse-fi

This commit is contained in:
2025-04-14 17:26:26 +02:00
committed by l_samenv
parent 7a59cf4956
commit d0c063c60b
2 changed files with 55 additions and 47 deletions

View File

@ -3,30 +3,10 @@ Node('fi.psi.ch',
'tcp://5000',
)
Mod('htr_io',
'frappy_psi.tdkpower.IO',
'powersupply communicator',
uri='serial:///dev/ttyUSB0?baudrate=9600',
)
Mod('htr_power',
'frappy_psi.tdkpower.Power',
'heater power',
io='htr_io',
)
Mod('htr',
'frappy_psi.furnace.TdkOutput',
'heater output',
io='htr_io',
maxvolt=8,
maxcurrent=200,
)
Mod('T_main',
'frappy_psi.ionopimax.CurrentInput',
'sample temperature',
addr='ai4',
addr='ai1',
valuerange=(0, 1372),
value=Param(unit='degC'),
)
@ -34,7 +14,7 @@ Mod('T_main',
Mod('T_extra',
'frappy_psi.ionopimax.CurrentInput',
'extra temperature',
addr='ai3',
addr='ai2',
valuerange=(0, 1372),
value=Param(unit='degC'),
)
@ -58,6 +38,33 @@ Mod('T',
i=0.01,
)
Mod('htr_io',
'frappy_psi.tdkpower.IO',
'powersupply communicator',
uri='serial:///dev/ttyUSB0?baudrate=9600',
)
Mod('htr_power',
'frappy_psi.tdkpower.Power',
'heater power',
io='htr_io',
)
Mod('htr',
'frappy_psi.furnace.TdkOutput',
'heater output',
io='htr_io',
maxvolt=8,
maxcurrent=200,
)
Mod('flowswitch',
'frappy_psi.ionopimax.DigitalInput',
'flow switch',
addr='dt2',
true_level='low',
)
# Mod('interlocks',
# 'frappy_psi.furnace.Interlocks',
# 'interlock parameters',
@ -69,24 +76,18 @@ Mod('T',
# vacuum_limit=0.1,
# )
# Mod('p',
# 'frappy_psi.ionopimax.VoltageInput',
# 'pressure',
# addr='av?',
# rawrange=(0, 1.5),
# valuerange=(0, 150),
# value=Param(unit='degC'),
# )
Mod('p',
'frappy_psi.ionopimax.LogVoltageInput',
'pressure reading',
addr = 'av1',
rawrange = (1.82, 8.6),
valuerange = (5e-9, 1000),
value = Param(unit='mbar'),
)
# Mod('p_io',
# 'frappy_psi.pfeiffer.IO',
# 'pressure io',
# uri='serial:///dev/ttyUSBlower',
# )
#
# Mod('p',
# 'frappy_psi.pfeiffer.Pressure',
# 'pressure reading',
# io='p_io',
# )
Mod('vso',
'frappy_psi.ionopimax.VoltagePower',
'voltage power output',
target = 24,
export = False,
)

View File

@ -21,7 +21,7 @@
import os
from glob import glob
from frappy.core import Readable, Writable, Parameter, BoolType, StringType,\
FloatRange, Property, TupleOf, ERROR, IDLE
EnumType, FloatRange, Property, TupleOf, ERROR, IDLE
from frappy.errors import ConfigError, OutOfRangeError
from math import log
@ -41,7 +41,7 @@ class Base:
for basepath in basepaths:
for devclass in ([self.devclass] if isinstance(self.devclass, str) else self.devclass):
devpath = f'{basepath}/{devclass}'
if os.path.exists(devpath):
if os.path.exists(f'{devpath}/{self.addr}'):
self._devpath = devpath
return
else:
@ -64,10 +64,17 @@ class Base:
class DigitalInput(Base, Readable):
value = Parameter('input state', BoolType())
devclass = 'digital_in'
true_level = Property('level representig True', EnumType(low=0, high=1), default=1)
devclass = 'digital_in', 'digital_io'
def initModule(self):
super().initModule()
self.log.info('devpath %r', self._devpath)
if self.addr.startswith('dt'):
self.write(f'{self.addr}_mode','inp')
def read_value(self):
return self.read(self.addr, 1)
return self.read(self.addr, 1) == self.true_level
class DigitalOutput(DigitalInput, Writable):
@ -75,7 +82,7 @@ class DigitalOutput(DigitalInput, Writable):
devclass = 'digital_out', 'relay'
def write_target(self, value):
self.write(self.addr, value, 1)
self.write(self.addr, value == self.true_level, 1)
class AnalogInput(Base, Readable):