From 1af65e77f7c9db41c232e6d5c1c8b97ea8c36413 Mon Sep 17 00:00:00 2001 From: jborbely Date: Fri, 8 Dec 2023 17:12:13 +1300 Subject: [PATCH] [Avantes] check if handle/sdk are None on disconnect --- msl/equipment/resources/avantes/avaspec.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/msl/equipment/resources/avantes/avaspec.py b/msl/equipment/resources/avantes/avaspec.py index b5fe99e..bee4e79 100644 --- a/msl/equipment/resources/avantes/avaspec.py +++ b/msl/equipment/resources/avantes/avaspec.py @@ -586,6 +586,7 @@ def __init__(self, record): A record from an :ref:`equipment-database`. """ self._handle = None + self._sdk = None libtype = 'windll' if IS_WINDOWS else 'cdll' super(Avantes, self).__init__(record, libtype) self.set_exception_class(AvantesError) @@ -779,7 +780,7 @@ def activate(self): def deactivate(self): """Closes communication with the spectrometer.""" - if self._handle != INVALID_AVS_HANDLE_VALUE: + if self._handle is not None and self._handle != INVALID_AVS_HANDLE_VALUE: self.sdk.AVS_Deactivate(self._handle) _handles.remove(self._handle) self._handle = None @@ -1054,14 +1055,14 @@ def get_status_by_serial(self, serial=None): def done(self): """Closes communication and releases internal storage.""" - self.sdk.AVS_Done() + if self._sdk is not None: + self.sdk.AVS_Done() def disconnect(self): """Closes communication with the spectrometer.""" - if self._handle is not None: - self.deactivate() - if not _handles: - self.done() + self.deactivate() + if not _handles: + self.done() def get_ip_config(self): """Retrieve IP settings from the spectrometer.