def getResult(self): if self.resultObj is None: daqResult = DAQGenericTask.getResult(self) while self.recording and time.time() - self._stopTime < 1: # Wait up to 1 second for all frames to arrive from camera thread before returning results. # In some cases, acquisition thread can get bogged down and we may need to wait for it # to catch up. time.sleep(0.05) self.resultObj = CameraTaskResult(self, self.frames[:], daqResult) return self.resultObj
def getResult(self): ## getResult from DAQGeneric, then add in command waveform result = DAQGenericTask.getResult(self) if result is None: return None arr = result.view(np.ndarray) daqInfo = result._info[-1]['DAQ'] ## find DAQ info for any output channel for ch in ['shutter', 'qSwitch', 'pCell']: if ch in daqInfo: ds = daqInfo[ch].get('downsampling', 1) break if 'powerWaveform' in self.cmd: ## downsample power waveform to match other channels power = self.cmd['powerWaveform'] if ds > 1: power = NiDAQ.meanResample(power, ds) arr = np.append(arr, power[np.newaxis, :], axis=0) #result = np.append(result, self.cmd['powerWaveform'][np.newaxis, :], axis=0) result._info[0]['cols'].append({'name': 'power', 'units': 'W'}) elif 'switchWaveform' in self.cmd: switch = self.cmd['switchWaveform'] if ds > 1: switch = NiDAQ.meanResample(switch, ds) arr = np.append(arr, switch[np.newaxis, :], axis=0) #result = np.append(result, self.cmd['switchWaveform'][np.newaxis, :], axis=0) result._info[0]['cols'].append({'name': 'switch'}) #elif 'power' in self.cmd: #arr = np.append(arr, self.cmd['power']['command'][np.newaxis, :], axis=0) #result._info[0]['cols'].append({'name': str(self.cmd['power']['type'])}) info = { 'currentPower': self.currentPower, 'expectedPower': self.expectedPower, 'requestedWavelength': self.cmd.get('wavelength', None), 'shutterMode': self.cmd['shutterMode'], 'powerCheckRequested': self.cmd.get('checkPower', False), 'pulsesCmd': self.cmd.get('pulses', None) } result._info[-1]['Laser'] = info result = metaarray.MetaArray(arr, info=result._info) self.dev.lastResult = result return result
def getResult(self): ## getResult from DAQGeneric, then add in command waveform result = DAQGenericTask.getResult(self) if result is None: return None arr = result.view(np.ndarray) daqInfo = result._info[-1]['DAQ'] ## find DAQ info for any output channel for ch in ['shutter', 'qSwitch', 'pCell']: if ch in daqInfo: ds = daqInfo[ch].get('downsampling', 1) break if 'powerWaveform' in self.cmd: ## downsample power waveform to match other channels power = self.cmd['powerWaveform'] if ds > 1: power = NiDAQ.meanResample(power, ds) arr = np.append(arr, power[np.newaxis, :], axis=0) #result = np.append(result, self.cmd['powerWaveform'][np.newaxis, :], axis=0) result._info[0]['cols'].append({'name': 'power', 'units': 'W'}) elif 'switchWaveform' in self.cmd: switch = self.cmd['switchWaveform'] if ds > 1: switch = NiDAQ.meanResample(switch, ds) arr = np.append(arr, switch[np.newaxis, :], axis=0) #result = np.append(result, self.cmd['switchWaveform'][np.newaxis, :], axis=0) result._info[0]['cols'].append({'name': 'switch'}) #elif 'power' in self.cmd: #arr = np.append(arr, self.cmd['power']['command'][np.newaxis, :], axis=0) #result._info[0]['cols'].append({'name': str(self.cmd['power']['type'])}) info = {'currentPower': self.currentPower, 'expectedPower': self.expectedPower, 'requestedWavelength':self.cmd.get('wavelength', None), 'shutterMode':self.cmd['shutterMode'], 'powerCheckRequested':self.cmd.get('checkPower', False), 'pulsesCmd': self.cmd.get('pulses', None) } result._info[-1]['Laser'] = info result = metaarray.MetaArray(arr, info=result._info) self.dev.lastResult = result return result
def getResult(self): if self.resultObj is None: daqResult = DAQGenericTask.getResult(self) self.resultObj = CameraTaskResult(self, self.frames[:], daqResult) return self.resultObj
def getResult(self): if self.resultObj is None: daqResult = DAQGenericTask.getResult(self) self.resultObj = CameraTaskResult(self, self.frames[:], daqResult) return self.resultObj