def configure_acquisition(self, continuous=True, bufferCount=10):
self.pix_fmt = self.get_attribute('PixelFormat')
self.height = self.get_attribute('Height')
self.width = self.get_attribute('Width')
# Unless the camera settings are set properly, in cntinuous mode
# the camera will generally move faster than BLACS, and so the buffer
# will fill up. With a Flea3, I was unable to solve the prolem
# easily. It really is quite annoying.
if continuous:
self.set_stream_attribute('StreamBufferCountMode', 'Manual')
self.set_stream_attribute('StreamBufferCountManual', bufferCount)
self.set_stream_attribute('StreamBufferHandlingMode', 'NewestFirst')
self.set_attribute('AcquisitionMode', 'Continuous')
elif bufferCount == 1:
# The StreamBufferCountMode originally was set to 'Auto', but this feature was depreciated by Spinnaker version 3.0.0.118
self.set_stream_attribute('StreamBufferCountMode', 'Manual')
self.set_stream_attribute('StreamBufferCountManual', 1)
self.set_stream_attribute('StreamBufferHandlingMode', 'OldestFirst')
self.set_attribute('AcquisitionMode', 'SingleFrame')
else:
self.set_stream_attribute('StreamBufferCountMode', 'Manual')
self.set_stream_attribute('StreamBufferCountManual', bufferCount)
self.set_stream_attribute('StreamBufferHandlingMode', 'OldestFirst')
self.set_attribute('AcquisitionMode', 'MultiFrame')
self.set_attribute('AcquisitionFrameCount', bufferCount)
nodemap = self.camera.GetNodeMap()
node_trigger_mode = PySpin.CEnumerationPtr(nodemap.GetNode('TriggerMode'))
node_trigger_mode_off = node_trigger_mode.GetEntryByName('Off')
node_trigger_mode.SetIntValue(node_trigger_mode_off.GetValue())
print('Trigger mode disabled...')
node_trigger_selector= PySpin.CEnumerationPtr(nodemap.GetNode('TriggerSelector'))
node_trigger_selector_framestart = node_trigger_selector.GetEntryByName('FrameStart')
node_trigger_selector.SetIntValue(node_trigger_selector_framestart.GetValue())
print('Trigger selector set to frame start...')
node_trigger_mode_on = node_trigger_mode.GetEntryByName('On')
node_trigger_mode.SetIntValue(node_trigger_mode_on.GetValue())
print('Trigger mode turned back on...')
self.camera.BeginAcquisition()