Source code for meavis.utility_drivers.meavis_switch

"""MeaVis classes to set or unset a sample."""
import meavis._detail.inject
import meavis.engines.loop
import meavis.tags


[docs]@meavis.tags.initialiser("meavis_switch.default") class Initialiser: """MeaVis switch initialiser."""
[docs] def initialise(self, handler, channel): """Directly return the hanlder.""" return handler
[docs]@meavis.tags.parameter("meavis_switch.default.connect") class Connect: """MeaVis switch connection mechanism considered as a parameter."""
[docs] def __init__(self, data): """Intialise the data to apply for the connect.""" self.data = data
[docs] def apply(self, handler, value): """Run a loop to set or unset a samples.""" measurement = meavis.engines.loop.LoopMeasurement( [ meavis._detail.inject.inject_namespace( parameter_name, meavis.parameters )([parameter_value]) for parameter_name, parameter_value in ( handler["sets"] if value else handler["unsets"] ) ], [], ) measurement.trigger(None) measurement.wait(None)