Source code for QInstrument.instruments.Novanta.Opus.fake

from QInstrument.lib.QFakeInstrument import QFakeInstrument
from QInstrument.instruments.Novanta.Opus.instrument import QOpus


[docs] class QFakeOpus(QFakeInstrument, QOpus): '''Fake Opus laser for UI development without hardware. The Opus property getters call hardware query helpers (``_getPower``, ``_getCurrent``, ``_parseTemp``) rather than using the ``_register()`` convention, so all properties are registered explicitly with ``_store``-backed getters. ''' def _registerProperties(self) -> None: default_max = getattr(type(self), 'MAXIMUM_POWER', 1000.) self._store.setdefault('maximum_power', default_max) self.registerProperty( 'power', ptype=float, getter=lambda: self._store.get('power', 0.), setter=lambda v: self._store.__setitem__( 'power', min(float(v), self._store.get('maximum_power', default_max)))) self.registerProperty( 'maximum_power', ptype=float, getter=lambda: self._store.get('maximum_power', default_max), setter=lambda v: self._store.__setitem__('maximum_power', float(v)), minimum=0.) self.registerProperty( 'wavelength', ptype=float, getter=lambda: self._store.get('wavelength', 532.), setter=lambda v: self._store.__setitem__('wavelength', float(v))) self.registerProperty( 'current', ptype=float, getter=lambda: self._store.get('current', 0.), setter=lambda v: self._store.__setitem__('current', float(v))) self.registerProperty( 'emission', ptype=bool, getter=lambda: self._store.get('emission', False), setter=lambda v: self._store.__setitem__('emission', bool(v))) self.registerProperty( 'status', ptype=bool, setter=None, getter=lambda: self._store.get('status', True)) self.registerProperty( 'version', ptype=str, setter=None, getter=lambda: self._store.get('version', 'FAKE')) self.registerProperty( 'laser_temperature', ptype=float, setter=None, getter=lambda: self._store.get('laser_temperature', 25.)) self.registerProperty( 'psu_temperature', ptype=float, setter=None, getter=lambda: self._store.get('psu_temperature', 25.)) self.identification = 'Fake Laser Quantum Opus Laser'
[docs] def identify(self) -> bool: return True
__all__ = ['QFakeOpus']