예제 #1
0
 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
예제 #2
0
파일: Laser.py 프로젝트: reneurossance/acq4
    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
예제 #3
0
파일: Laser.py 프로젝트: neurodebian/acq4
 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
예제 #4
0
파일: Camera.py 프로젝트: travis-open/acq4
 def getResult(self):
     if self.resultObj is None:
         daqResult = DAQGenericTask.getResult(self)
         self.resultObj = CameraTaskResult(self, self.frames[:], daqResult)
     return self.resultObj
예제 #5
0
파일: Camera.py 프로젝트: hiuwo/acq4
 def getResult(self):
     if self.resultObj is None:
         daqResult = DAQGenericTask.getResult(self)
         self.resultObj = CameraTaskResult(self, self.frames[:], daqResult)
     return self.resultObj