File tree Expand file tree Collapse file tree 1 file changed +17
-8
lines changed Expand file tree Collapse file tree 1 file changed +17
-8
lines changed Original file line number Diff line number Diff line change 11import asyncio
2+ import atexit
23import enum
34import logging
45import math
@@ -176,6 +177,8 @@ async def setup(self, use_cam: bool = False) -> None:
176177 raise
177178
178179 async def _set_up_camera (self ) -> None :
180+ atexit .register (self ._stop_camera )
181+
179182 if not USE_PYSPIN :
180183 raise RuntimeError (
181184 "PySpin is not installed. Please follow the imaging setup instructions. "
@@ -447,19 +450,25 @@ async def stop(self) -> None:
447450 await self .stop_shaking ()
448451 await self .io .stop ()
449452
450- if hasattr (self , "cam" ) and self .cam is not None :
451- await self ._reset_trigger ()
452-
453- self .cam .DeInit ()
454- del self .cam
455- if hasattr (self , "spinnaker_system" ) and self .spinnaker_system is not None :
456- self .spinnaker_system .ReleaseInstance ()
453+ self ._stop_camera ()
457454
458455 self ._objectives = None
459456 self ._filters = None
460457 self ._slow_mode = None
461458
462- async def _reset_trigger (self ):
459+ def _stop_camera (self ) -> None :
460+ if self .cam is not None :
461+ if self ._acquiring :
462+ self .stop_acquisition ()
463+
464+ self ._reset_trigger ()
465+
466+ self .cam .DeInit ()
467+ self .cam = None
468+ if self .spinnaker_system is not None :
469+ self .spinnaker_system .ReleaseInstance ()
470+
471+ def _reset_trigger (self ):
463472 if self .cam is None :
464473 return
465474
You can’t perform that action at this time.
0 commit comments