Skip to content

Commit 46d8eb2

Browse files
committed
[cytation5] reset trigger on stop
1 parent 1636440 commit 46d8eb2

File tree

1 file changed

+21
-0
lines changed

1 file changed

+21
-0
lines changed

pylabrobot/plate_reading/biotek_backend.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -434,6 +434,8 @@ async def stop(self) -> None:
434434
await self.io.stop()
435435

436436
if hasattr(self, "cam") and self.cam is not None:
437+
await self._reset_trigger()
438+
437439
self.cam.DeInit()
438440
del self.cam
439441
if hasattr(self, "spinnaker_system") and self.spinnaker_system is not None:
@@ -443,6 +445,25 @@ async def stop(self) -> None:
443445
self._filters = None
444446
self._slow_mode = None
445447

448+
async def _reset_trigger(self):
449+
if self.cam is None:
450+
return
451+
452+
# adopted from example
453+
nodemap = self.cam.GetNodeMap()
454+
try:
455+
node_trigger_mode = PySpin.CEnumerationPtr(nodemap.GetNode("TriggerMode"))
456+
if not PySpin.IsReadable(node_trigger_mode) or not PySpin.IsWritable(node_trigger_mode):
457+
return
458+
459+
node_trigger_mode_off = node_trigger_mode.GetEntryByName("Off")
460+
if not PySpin.IsReadable(node_trigger_mode_off):
461+
return
462+
463+
node_trigger_mode.SetIntValue(node_trigger_mode_off.GetValue())
464+
except PySpin.SpinnakerException:
465+
pass
466+
446467
async def _purge_buffers(self) -> None:
447468
"""Purge the RX and TX buffers, as implemented in Gen5.exe"""
448469
for _ in range(6):

0 commit comments

Comments
 (0)