class LaserDistance(ReadonlyRegisterBase): def __init__(self): ReadonlyRegisterBase.__init__(self, "laser_distance") def doRead(self): ret = ue.readable.read() ret = None if ret is None else (0.0 if math.isnan(ret) else ret) return ret class ListenerAI (DeviceListener): def onValueChanged(self, device, value, former): if laser_distance is not None: value = None if value is None else (0.0 if math.isnan(value) else value) laser_distance.setCache(value, None) for l in ue.listeners: if Nameable.getShortClassName(l.getClass()) == "ListenerAI": ue.removeListener(l) listenerAI = ListenerAI() ue.addListener(listenerAI) laser_distance=LaserDistance() add_device(laser_distance, True) laser_distance.update()