BioImager  3.9.1
A .NET microscopy imaging library. Supports various microscopes by using imported libraries & GUI automation. Supported libraries include PriorĀ® & ZeissĀ® & all devices supported by Micromanager 2.0 and python-microscope.
Loading...
Searching...
No Matches
microscope.lights.obis.ObisLaser Class Reference
Inheritance diagram for microscope.lights.obis.ObisLaser:
microscope.abc.SerialDeviceMixin microscope.abc.LightSource microscope.abc.TriggerTargetMixin microscope.abc.Device

Public Member Functions

None __init__ (self, com, baud=115200, timeout=0.5, **kwargs)
 
def get_status (self)
 
def initialize (self)
 
def get_is_on (self)
 
microscope.TriggerType trigger_type (self)
 
microscope.TriggerMode trigger_mode (self)
 
None set_trigger (self, microscope.TriggerType ttype, microscope.TriggerMode tmode)
 
def __init__ (self, **kwargs)
 
- Public Member Functions inherited from microscope.abc.LightSource
def __init__ (self, **kwargs)
 
typing.List[str] get_status (self)
 
bool get_is_on (self)
 
float power (self)
 
None power (self, float power)
 
float get_set_power (self)
 
- Public Member Functions inherited from microscope.abc.TriggerTargetMixin
microscope.TriggerMode trigger_mode (self)
 
microscope.TriggerType trigger_type (self)
 
None set_trigger (self, microscope.TriggerType ttype, microscope.TriggerMode tmode)
 
None trigger (self)
 
- Public Member Functions inherited from microscope.abc.Device
None __init__ (self)
 
None __del__ (self)
 
bool get_is_enabled (self)
 
None disable (self)
 
None enable (self)
 
None initialize (self)
 
None shutdown (self)
 
None add_setting (self, name, dtype, get_func, set_func, values, typing.Optional[typing.Callable[[], bool]] readonly=None)
 
def get_setting (self, str name)
 
def get_all_settings (self)
 
None set_setting (self, str name, value)
 
def describe_setting (self, str name)
 
def describe_settings (self)
 
def update_settings (self, incoming, bool init=False)
 

Public Attributes

 connection
 
- Public Attributes inherited from microscope.abc.SerialDeviceMixin
 connection
 
- Public Attributes inherited from microscope.abc.Device
 enabled
 

Additional Inherited Members

- Static Public Member Functions inherited from microscope.abc.SerialDeviceMixin
def lock_comms (func)
 

Detailed Description

Definition at line 33 of file obis.py.

Constructor & Destructor Documentation

◆ __init__()

None microscope.lights.obis.ObisLaser.__init__ (   self,
  com,
  baud = 115200,
  timeout = 0.5,
**  kwargs 
)

Reimplemented from microscope.abc.SerialDeviceMixin.

Definition at line 34 of file obis.py.

34 def __init__(self, com, baud=115200, timeout=0.5, **kwargs) -> None:
35 super().__init__(**kwargs)
36 self.connection = serial.Serial(
37 port=com,
38 baudrate=baud,
39 timeout=timeout,
40 stopbits=serial.STOPBITS_ONE,
41 bytesize=serial.EIGHTBITS,
42 parity=serial.PARITY_NONE,
43 )
44 # Start a logger.
45 self._write(b"SYSTem:INFormation:MODel?")
46 response = self._readline()
47 _logger.info("OBIS laser model: [%s]", response.decode())
48 self._write(b"SYSTem:INFormation:SNUMber?")
49 response = self._readline()
50 _logger.info("OBIS laser serial number: [%s]", response.decode())
51 self._write(b"SYSTem:CDRH?")
52 response = self._readline()
53 _logger.info("CDRH safety: [%s]", response.decode())
54 self._write(b"SOURce:TEMPerature:APRobe?")
55 response = self._readline()
56 _logger.info("TEC temperature control: [%s]", response.decode())
57 self._write(b"*TST?")
58 response = self._readline()
59 _logger.info("Self test procedure: [%s]", response.decode())
60
61 # We need to ensure that autostart is disabled so that we can
62 # switch emission on/off remotely.
63 self._write(b"SYSTem:AUTostart?")
64 response = self._readline()
65 _logger.info("Response to Autostart: [%s]", response.decode())
66
67 self._write(b"SOURce:POWer:LIMit:HIGH?")
68 response = self._readline()
69 _logger.info("Max intensity in watts: [%s]", response.decode())
70 self._max_power_mw = float(response) * 1000.0
71
72 self.initialize()
73

Member Function Documentation

◆ get_is_on()

def microscope.lights.obis.ObisLaser.get_is_on (   self)
Return True if the laser is currently able to produce light.

Reimplemented from microscope.abc.LightSource.

Definition at line 166 of file obis.py.

166 def get_is_on(self):
167 """Return True if the laser is currently able to produce light."""
168 self._write(b"SOURce:AM:STATe?")
169 response = self._readline()
170 _logger.info("Are we on? [%s]", response.decode())
171 return response == b"ON"
172

References microscope.lights.obis.ObisLaser._flush_handshake(), microscope.lights.cobolt.CoboltLaser._get_power_mw(), microscope.lights.obis.ObisLaser._get_power_mw(), microscope.lights.sapphire.SapphireLaser._get_power_mw(), microscope.lights.toptica.TopticaiBeam._get_power_mw(), microscope.lights.cobolt.CoboltLaser._max_power_mw, microscope.lights.obis.ObisLaser._max_power_mw, microscope.lights.sapphire.SapphireLaser._max_power_mw, microscope.abc.SerialDeviceMixin._readline(), microscope.filterwheels.thorlabs.ThorlabsFilterWheel._readline(), microscope.lights.obis.ObisLaser._readline(), microscope.lights.cobolt.CoboltLaser._set_power_mw(), microscope.lights.toptica.TopticaiBeam._set_power_mw(), microscope.lights.obis.ObisLaser._set_power_mw(), microscope.lights.sapphire.SapphireLaser._set_power_mw(), microscope.abc.SerialDeviceMixin._write(), microscope.lights.deepstar.DeepstarLaser._write(), microscope.lights.obis.ObisLaser._write(), microscope.lights.sapphire.SapphireLaser._write(), microscope.abc.LightSource.get_is_on(), microscope.controllers.coolled._CoolLEDChannel.get_is_on(), microscope.controllers.lumencor._SpectraIIILightChannel.get_is_on(), microscope.controllers.toptica._iChromeLaser.get_is_on(), microscope.controllers.zaber._ZaberLED.get_is_on(), microscope.lights.cobolt.CoboltLaser.get_is_on(), microscope.lights.deepstar.DeepstarLaser.get_is_on(), microscope.lights.obis.ObisLaser.get_is_on(), microscope.lights.sapphire.SapphireLaser.get_is_on(), microscope.lights.toptica.TopticaiBeam.get_is_on(), and microscope.simulators.SimulatedLightSource.get_is_on().

Referenced by microscope.lights.cobolt.CoboltLaser.get_is_on(), microscope.lights.deepstar.DeepstarLaser.get_is_on(), microscope.lights.obis.ObisLaser.get_is_on(), microscope.lights.deepstar.DeepstarLaser.get_status(), microscope.lights.obis.ObisLaser.get_status(), microscope.lights.cobolt.CoboltLaser.initialize(), microscope.lights.obis.ObisLaser.initialize(), and microscope.lights.sapphire.SapphireLaser.initialize().

◆ get_status()

def microscope.lights.obis.ObisLaser.get_status (   self)
Query and return the light source status.

Reimplemented from microscope.abc.LightSource.

Definition at line 94 of file obis.py.

94 def get_status(self):
95 result = []
96 for cmd, stat in [
97 (b"SOURce:AM:STATe?", "Emission on?"),
98 (b"SOURce:POWer:LEVel:IMMediate:AMPLitude?", "Target power:"),
99 (b"SOURce:POWer:LEVel?", "Measured power:"),
100 (b"SYSTem:STATus?", "Status code?"),
101 (b"SYSTem:FAULt?", "Fault code?"),
102 (b"SYSTem:HOURs?", "Head operating hours:"),
103 ]:
104 self._write(cmd)
105 result.append(stat + " " + self._readline().decode())
106 return result
107

References microscope.lights.obis.ObisLaser._flush_handshake(), microscope.abc.SerialDeviceMixin._readline(), microscope.filterwheels.thorlabs.ThorlabsFilterWheel._readline(), microscope.lights.obis.ObisLaser._readline(), microscope.lights.cobolt.CoboltLaser._set_power_mw(), microscope.lights.toptica.TopticaiBeam._set_power_mw(), microscope.lights.obis.ObisLaser._set_power_mw(), microscope.lights.sapphire.SapphireLaser._set_power_mw(), microscope.abc.SerialDeviceMixin._write(), microscope.lights.deepstar.DeepstarLaser._write(), microscope.lights.obis.ObisLaser._write(), microscope.lights.sapphire.SapphireLaser._write(), microscope.abc.Device.disable(), microscope.abc.DataDevice.disable(), microscope.controllers.coolled._CoolLEDChannel.disable(), microscope.controllers.lumencor._SpectraIIILightChannel.disable(), microscope.lights.cobolt.CoboltLaser.disable(), microscope.lights.sapphire.SapphireLaser.disable(), microscope.lights.toptica.TopticaiBeam.disable(), microscope.abc.LightSource.get_is_on(), microscope.controllers.coolled._CoolLEDChannel.get_is_on(), microscope.controllers.lumencor._SpectraIIILightChannel.get_is_on(), microscope.controllers.toptica._iChromeLaser.get_is_on(), microscope.controllers.zaber._ZaberLED.get_is_on(), microscope.lights.cobolt.CoboltLaser.get_is_on(), microscope.lights.deepstar.DeepstarLaser.get_is_on(), microscope.lights.obis.ObisLaser.get_is_on(), microscope.lights.sapphire.SapphireLaser.get_is_on(), microscope.lights.toptica.TopticaiBeam.get_is_on(), microscope.simulators.SimulatedLightSource.get_is_on(), microscope.abc.LightSource.get_status(), microscope.controllers.coolled._CoolLEDChannel.get_status(), microscope.controllers.lumencor._SpectraIIILightChannel.get_status(), microscope.controllers.toptica._iChromeLaser.get_status(), microscope.controllers.zaber._ZaberLED.get_status(), microscope.filterwheels.aurox.Clarity.get_status(), microscope.lights.cobolt.CoboltLaser.get_status(), microscope.lights.deepstar.DeepstarLaser.get_status(), microscope.lights.obis.ObisLaser.get_status(), microscope.lights.sapphire.SapphireLaser.get_status(), microscope.lights.toptica.TopticaiBeam.get_status(), microscope.simulators.SimulatedLightSource.get_status(), microscope.stages.linkam._LinkamBase.get_status(), microscope.stages.linkam._LinkamMDSMixin.get_status(), and microscope.stages.linkam.LinkamCMS.get_status().

Referenced by microscope.lights.obis.ObisLaser.get_status(), microscope.lights.cobolt.CoboltLaser.initialize(), microscope.lights.obis.ObisLaser.initialize(), microscope.lights.sapphire.SapphireLaser.initialize(), microscope.lights.cobolt.CoboltLaser.send(), and microscope.lights.sapphire.SapphireLaser.send().

◆ initialize()

def microscope.lights.obis.ObisLaser.initialize (   self)
Initialize the device.

If devices have this method (not required, and many don't),
then they should call it as part of the initialisation, i.e.,
they should call it on their `__init__` method.

Reimplemented from microscope.abc.Device.

Definition at line 141 of file obis.py.

141 def initialize(self):
142 # self.flush_buffer()
143 # We ensure that handshaking is off.
144 self._write(b"SYSTem:COMMunicate:HANDshaking ON")
145 self._flush_handshake()
146 # We don't want 'direct control' mode.
147 # TODO: Change to MIXED when analogue output is available
148 self._write(b"SOURce:AM:EXTernal DIGital")
149 self._flush_handshake()
150

References microscope.lights.obis.ObisLaser._flush_handshake(), microscope.abc.SerialDeviceMixin._write(), microscope.lights.deepstar.DeepstarLaser._write(), microscope.lights.obis.ObisLaser._write(), microscope.lights.sapphire.SapphireLaser._write(), microscope.abc.LightSource.get_is_on(), microscope.controllers.coolled._CoolLEDChannel.get_is_on(), microscope.controllers.lumencor._SpectraIIILightChannel.get_is_on(), microscope.controllers.toptica._iChromeLaser.get_is_on(), microscope.controllers.zaber._ZaberLED.get_is_on(), microscope.lights.cobolt.CoboltLaser.get_is_on(), microscope.lights.deepstar.DeepstarLaser.get_is_on(), microscope.lights.obis.ObisLaser.get_is_on(), microscope.lights.sapphire.SapphireLaser.get_is_on(), microscope.lights.toptica.TopticaiBeam.get_is_on(), microscope.simulators.SimulatedLightSource.get_is_on(), microscope.abc.LightSource.get_status(), microscope.controllers.coolled._CoolLEDChannel.get_status(), microscope.controllers.lumencor._SpectraIIILightChannel.get_status(), microscope.controllers.toptica._iChromeLaser.get_status(), microscope.controllers.zaber._ZaberLED.get_status(), microscope.filterwheels.aurox.Clarity.get_status(), microscope.lights.cobolt.CoboltLaser.get_status(), microscope.lights.deepstar.DeepstarLaser.get_status(), microscope.lights.obis.ObisLaser.get_status(), microscope.lights.sapphire.SapphireLaser.get_status(), microscope.lights.toptica.TopticaiBeam.get_status(), microscope.simulators.SimulatedLightSource.get_status(), microscope.stages.linkam._LinkamBase.get_status(), microscope.stages.linkam._LinkamMDSMixin.get_status(), and microscope.stages.linkam.LinkamCMS.get_status().

Referenced by microscope.cameras.picam.PiCamera.__init__(), microscope.cameras.ximea.XimeaCamera.__init__(), and microscope.cameras.picam.PiCamera.initialize().

◆ set_trigger()

None microscope.lights.obis.ObisLaser.set_trigger (   self,
microscope.TriggerType  ttype,
microscope.TriggerMode   tmode 
)
Set device for a specific trigger.

Reimplemented from microscope.abc.TriggerTargetMixin.

Definition at line 202 of file obis.py.

204 ) -> None:
205 if ttype is not microscope.TriggerType.HIGH:
207 "the only trigger type supported is 'high'"
208 )
209 if tmode is not microscope.TriggerMode.BULB:
211 "the only trigger mode supported is 'bulb'"
212 )
213

Referenced by microscope.cameras.picam.PiCamera.__init__(), microscope.cameras.ximea.XimeaCamera.__init__(), and microscope.cameras.ximea.XimeaCamera.initialize().

◆ trigger_mode()

microscope.TriggerMode microscope.lights.obis.ObisLaser.trigger_mode (   self)

Reimplemented from microscope.abc.TriggerTargetMixin.

Definition at line 199 of file obis.py.

199 def trigger_mode(self) -> microscope.TriggerMode:
200 return microscope.TriggerMode.BULB
201

Referenced by microscope.cameras.picam.PiCamera.__init__(), and microscope.cameras.ximea.XimeaCamera.__init__().

◆ trigger_type()

microscope.TriggerType microscope.lights.obis.ObisLaser.trigger_type (   self)

Reimplemented from microscope.abc.TriggerTargetMixin.

Definition at line 195 of file obis.py.

195 def trigger_type(self) -> microscope.TriggerType:
196 return microscope.TriggerType.HIGH
197

Referenced by microscope.cameras.ximea.XimeaCamera.__init__(), microscope.abc.DeformableMirror.apply_pattern(), and microscope.abc.TriggerTargetMixin.trigger().

Member Data Documentation

◆ connection


The documentation for this class was generated from the following file: