Source code for QInstrument.instruments.PiezoDrive.PDUS210.fake

from __future__ import annotations

from QInstrument.lib.QFakeInstrument import QFakeInstrument
from QInstrument.instruments.PiezoDrive.PDUS210.instrument import QPDUS210


[docs] class QFakePDUS210(QFakeInstrument, QPDUS210): '''Simulated PiezoDrive PDUS210 amplifier for UI development. Mirrors all properties of :class:`QPDUS210` using an in-memory store. No hardware is required. ''' def _registerProperties(self) -> None: for name, default in ( ('frequency', 40000.0), ('targetVoltage', 0), ('maxFrequency', 45000), ('minFrequency', 35000), ('targetPhase', 0), ('maxLoadPower', 0), ('targetPower', 0), ('targetCurrent', 0)): dtype = float if name == 'frequency' else int self.registerProperty( name, getter=lambda n=name, d=default: self._store.get(n, d), setter=lambda v, n=name, t=dtype: self._store.update({n: t(v)}), ptype=dtype) for name, default in ( ('phaseGain', 1), ('powerGain', 1), ('currentGain', 1)): self.registerProperty( name, getter=lambda n=name, d=default: self._store.get(n, d), setter=lambda v, n=name: self._store.update({n: int(v)}), ptype=int) for name in ('phaseTracking', 'powerTracking', 'currentTracking', 'frequencyWrapping', 'enabled'): self.registerProperty( name, getter=lambda n=name: self._store.get(n, False), setter=lambda v, n=name: self._store.update({n: bool(v)}), ptype=bool) for name, default, dtype in ( ('phase', 0, int), ('impedance', 0, int), ('loadPower', 0, int), ('amplifierPower', 0, int), ('current', 0, int), ('temperature', 25.0, float)): self.registerProperty( name, getter=lambda n=name, d=default: self._store.get(n, d), setter=None, ptype=dtype)
[docs] def identify(self) -> bool: return True
[docs] def save(self) -> str: return 'OK'
[docs] def state(self) -> dict: '''Return a default state dict with all values at their defaults.''' return { 'enabled': self._store.get('enabled', False), 'phaseTracking': self._store.get('phaseTracking', False), 'currentTracking': self._store.get('currentTracking', False), 'powerTracking': self._store.get('powerTracking', False), 'errorAmp': False, 'errorLoad': False, 'errorTemperature': False, 'voltage': 0.0, 'frequency': self._store.get('frequency', 40000.0), 'minFrequency': float(self._store.get('minFrequency', 35000)), 'maxFrequency': float(self._store.get('maxFrequency', 45000)), 'targetPhase': float(self._store.get('targetPhase', 0)), 'phaseControlGain': float(self._store.get('phaseGain', 1)), 'maxLoadPower': float(self._store.get('maxLoadPower', 0)), 'amplifierPower': float(self._store.get('amplifierPower', 0)), 'loadPower': float(self._store.get('loadPower', 0)), 'temperature': self._store.get('temperature', 25.0), 'measuredPhase': float(self._store.get('phase', 0)), 'measuredCurrent': float(self._store.get('current', 0)), 'impedance': float(self._store.get('impedance', 0)), 'transformerTurns': 1.0, }
__all__ = ['QFakePDUS210']