[WIP] further fixes for linse-fi

This commit is contained in:
2025-04-14 17:26:26 +02:00
parent 5768f096a5
commit 8cea974f49
2 changed files with 55 additions and 47 deletions

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):