@@ -56,6 +56,7 @@ class NGXSpectrometer(BaseSpectrometer, IsotopxMixin):
56
56
acq_count = 0
57
57
total_acq_count = 10
58
58
has_atonas = True
59
+ # triggered_lock_release_required = False
59
60
60
61
def _microcontroller_default (self ):
61
62
service = "pychron.hardware.isotopx_spectrometer_controller.NGXController"
@@ -129,6 +130,8 @@ def trigger_acq(self, verbose=True):
129
130
130
131
if not self .microcontroller .triggered :
131
132
# self.microcontroller.lock.acquire()
133
+ # self.triggered_lock_release_required = True
134
+
132
135
# self.ask("StopAcq", verbose=verbose)
133
136
self .microcontroller .stop_acquisition ()
134
137
self .microcontroller .triggered = True
@@ -186,7 +189,7 @@ def set_source_parameter(self, name, value):
186
189
self .ask (f"SetSourceOutput { name } ,{ value } " )
187
190
188
191
def read_intensities (
189
- self , timeout = 60 , trigger = False , target = "ACQ.B" , verbose = False
192
+ self , timeout = 60 , trigger = False , target = "ACQ.B" , verbose = True
190
193
):
191
194
# self.microcontroller.lock.acquire()
192
195
# verbose=True
@@ -203,10 +206,15 @@ def read_intensities(
203
206
204
207
# self.microcontroller.lock.acquire()
205
208
resp = True
206
- # trigger_release = self.microcontroller.triggered
209
+ # trigger_release = self.triggered_lock_release_required
210
+ # self.debug(f'trigger={trigger} triggered={self.microcontroller.triggered} '
211
+ # f'triggered_locrelease_required={self.triggered_lock_release_required}')
212
+ # print('treigger', trigger, self.microcontroller.triggered)
207
213
if trigger or not self .microcontroller .triggered :
208
214
resp = self .trigger_acq ()
209
- # trigger_release = True
215
+ # trigger_release = self.microcontroller.triggered
216
+ # self.debug(f'trigger_relase={trigger_release}')
217
+
210
218
# self.microcontroller.lock.release()
211
219
if resp is not None :
212
220
# if verbose:
@@ -215,6 +223,9 @@ def read_intensities(
215
223
time .sleep (0.95 )
216
224
# if verbose:
217
225
# self.debug('trigger wait finished')
226
+ # else:
227
+ # self.microcontroller.lock.acquire()
228
+ # self.triggered_lock_release_required = True
218
229
219
230
keys = []
220
231
signals = []
@@ -293,6 +304,29 @@ def read_intensities(
293
304
self .debug ("signals: {}" .format (signals ))
294
305
295
306
# try:
307
+ # # the integration cycle is complete. release the lock
308
+ # if inc:
309
+ # self.microcontroller.lock.release()
310
+ # self.debug(f'Released lock. {self.microcontroller.lock}')
311
+ # except RuntimeError as e:
312
+ # self.debug(f'Cannot release lock. "RuntimeError" {e}')
313
+
314
+ # if self.triggered_lock_release_required:
315
+ # self.triggered_lock_release_required = False
316
+ # if trigger_release:
317
+ # if self.microcontroller.lock.active_count() > 0:
318
+ # self.debug(f"trigger release. lock count={self.microcontroller.lock.count}")
319
+ # self.microcontroller.lock.release()
320
+ # self.debug(f'trigger release. {trigger_release}')
321
+ # if trigger_release:
322
+ # self.triggered_lock_release_required = False
323
+
324
+ # if self.microcontroller.lock.count>0:
325
+ # try:
326
+ # self.microcontroller.lock.release()
327
+ # except RuntimeError as e:
328
+ # if verbose:
329
+ # self.debug(f'Trigger Release. Cannot release lock. "RuntimeError" {e}')
296
330
# self.microcontroller.lock.release()
297
331
# except RuntimeError as e:
298
332
# self.debug(f'Cannot release lock. "RuntimeError" {e}')
@@ -322,7 +356,7 @@ def set_integration_time(self, it, force=False):
322
356
self .microcontroller .stop_acquisition ()
323
357
self .ask ("SetAcqPeriod 1000" )
324
358
self ._read_enabled = False
325
- self .microcontroller .triggered = False
359
+ # self.microcontroller.triggered = False
326
360
self .integration_time = it
327
361
328
362
# if self.integration_time != it or force:
@@ -361,6 +395,4 @@ def _get_simulation_data(self):
361
395
def _integration_time_default (self ):
362
396
self .default_integration_time = ISOTOPX_DEFAULT_INTEGRATION_TIME
363
397
return ISOTOPX_DEFAULT_INTEGRATION_TIME
364
-
365
-
366
398
# ============= EOF =============================================
0 commit comments