pylablib.devices.AlliedVision package

Submodules

pylablib.devices.AlliedVision.Bonito module

exception pylablib.devices.AlliedVision.Bonito.BonitoError[source]

Bases: AlliedVisionError

Generic AlliedVision Bonito error

add_note()

Exception.add_note(note) – add a note to the exception

args
with_traceback()

Exception.with_traceback(tb) – set self.__traceback__ to tb and return self.

class pylablib.devices.AlliedVision.Bonito.TDeviceInfo(version, serial_number, grabber_info)

Bases: tuple

grabber_info
serial_number
version
class pylablib.devices.AlliedVision.Bonito.IBonitoCamera(**kwargs)[source]

Bases: ICamera

Error

alias of DeviceError

GrabberClass = None
open()[source]

Open the connection

serial_query(query, timeout=3.0)[source]
get_serial_parameter(comm, kind='int', timeout=3.0)[source]
set_serial_parameter(comm, value)[source]
get_device_info()[source]

Get camera model data.

Return tuple (model, serial_number, grabber_info).

get_detector_size()[source]

Get camera detector size (in pixels) as a tuple (width, height); as the camera does not provide this information, use the frame grabber parameters

get_roi()[source]

Get current ROI.

Return tuple (hstart, hend, vstart, vend).

set_roi(hstart=0, hend=None, vstart=0, vend=None)[source]

Setup camera ROI.

By default, all non-supplied parameters take extreme values.

get_roi_limits(hbin=1, vbin=1)[source]
setup_acquisition(mode='sequence', nframes=100)[source]

Setup acquisition.

Any non-specified acquisition parameters are assumed to be the same as previously set (or default, if not explicitly set before). Return the new acquisition parameters.

get_exposure_control_mode()[source]

Get the exposure control mode.

Return tuple (timing_mode, feature_mode), where timing_mode determines how the exposure and frame period are timed (continuous, external trigger control, internal control, etc.), and feature_mode controls additional features (permanent exposure, enhanced full well mode). See documentation for details.

set_exposure_control_mode(timing_mode=None, feature_mode=None)[source]

Set the exposure control mode.

timing_mode determines how the exposure and frame period are timed (continuous, external trigger control, internal control, etc.), and feature_mode controls additional features (permanent exposure, enhanced full well mode). See documentation for details.

get_exposure()[source]

Get current exposure.

Note that the actual exposure might be different, depending on the exposure control mode.

set_exposure(exposure, setup_mode=True)[source]

Set current exposure.

Note that the actual exposure might be different, depending on the exposure control mode. If setup_mode==True, automatically set the exposure mode to take the given exposure value into account.

get_frame_period()[source]

Get frame period (time between two consecutive frames in the internal trigger mode).

Note that the actual frame period might be different, depending on the exposure control mode.

set_frame_period(frame_period, setup_mode=True)[source]

Set frame period (time between two consecutive frames in the internal trigger mode).

Note that the actual frame period might be different, depending on the exposure control mode. If setup_mode==True, automatically set the exposure mode to take the given exposure value into account.

get_frame_timings()[source]

Get acquisition timing.

Return tuple (exposure, frame_period).

is_status_line_enabled()[source]

Check if the status line is on

enable_status_line(enabled=True)[source]

Enable or disable status line

get_black_level_offset()[source]

Get the black level offset

set_black_level_offset(offset)[source]

Set the black level offset

get_digital_gain()[source]

Get the digital gain (0 for 1x, 1 for 2x, 2 for 4x)

set_digital_gain(gain)[source]

Get the digital gain (0 for 1x, 1 for 2x, 2 for 4x)

FrameTransferError

alias of DefaultFrameTransferError

TimeoutError

alias of DeviceError

acquisition_in_progress()

Check if acquisition is in progress

apply_settings(settings)

Apply the settings.

settings is the dict {name: value} of the device available settings. Non-applicable settings are ignored.

clear_acquisition()

Clear acquisition settings

close()

Close the connection

get_acquisition_parameters()

Get acquisition parameters.

Return dictionary {name: value}

get_data_dimensions()

Get readout data dimensions (in pixels) as a tuple (width, height); take indexing mode into account

get_device_variable(key)

Get the value of a settings, status, or full info parameter

get_frame_format()

Get format for the returned images.

Can be "list" (list of 2D arrays), "array" (a single 3D array), or "chunks" (list of 3D “chunk” arrays; supported for some cameras and provides the best performance).

get_frame_info_fields()

Get the names of frame info fields.

Applicable when frame info format (set by set_frame_info_format()) is "list" or "array".

get_frame_info_format()

Get format of the frame info.

Can be "namedtuple" (potentially nested named tuples; convenient to get particular values), "list" (flat list of values, with field names are given by get_frame_info_fields(); convenient for building a table), "array" (same as "list", but with a numpy array, which is easier to use for "chunks" frame format), or "dict" (flat dictionary with the same fields as the "list" format; more resilient to future format changes)

get_frame_info_period()

Get period of frame info acquisition.

Frame info might be skipped (set to None) except for frames which indices are divisible by period. Useful for certain cameras where acquiring frame info takes a lot of time and can reduce performance at higher frame rates. Note that this parameter can still be ignored (i.e., always set to 1) if the performance is not an issue for a given camera class.

get_frames_status()

Get acquisition and buffer status.

Return tuple (acquired, unread, skipped, size), where acquired is the total number of acquired frames, unread is the number of acquired but not read frames, skipped is the number of skipped (not read and then written over) frames, and buffer_size is the total buffer size (in frames).

get_full_info(include=0)

Get dict {name: value} containing full device information (including status and settings).

include specifies either a list of variables (only these variables are returned), a priority threshold (only values with the priority equal or higher are returned), or "all" (all available variables). Since the lowest priority is -10, setting include=-10 queries all available variables, which is equivalent to include="all".

get_full_status(include=0)

Get dict {name: value} containing the device status (including settings).

include specifies either a list of variables (only these variables are returned), a priority threshold (only values with the priority equal or higher are returned), or "all" (all available variables). Since the lowest priority is -10, setting include=-10 queries all available variables, which is equivalent to include="all".

get_image_indexing()

Get indexing for the returned images.

Can be "rct" (first index row, second index column, rows counted from the top), "rcb" (same as "rc", rows counted from the bottom), "xyt" (first index column, second index row, rows counted from the top), or "xyb" (same as "xyt", rows counted from the bottom)

get_new_images_range()

Get the range of the new images.

Return tuple (first, last) with images range (first inclusive). If no images are available, return None. If some images were in the buffer were overwritten, exclude them from the range.

get_settings(include=0)

Get dict {name: value} containing all the device settings.

include specifies either a list of variables (only these variables are returned), a priority threshold (only values with the priority equal or higher are returned), or "all" (all available variables). Since the lowest priority is -10, setting include=-10 queries all available variables, which is equivalent to include="all".

grab(nframes=1, frame_timeout=5.0, missing_frame='skip', return_info=False, buff_size=None)

Snap nframes images (with preset image read mode parameters)

buff_size determines buffer size (if None, use the default size). Timeout is specified for a single-frame acquisition, not for the whole acquisition time. missing_frame determines what to do with frames which have been lost: can be "none" (replacing them with None), "zero" (replacing them with zero-filled frame), or "skip" (skipping them, while still keeping total returned frames number to n). If return_info==True, return tuple (frames, infos), where infos is a list of frame info tuples (camera-dependent); if some frames are missing and missing_frame!="skip", the corresponding frame info is None.

is_acquisition_setup()

Check if acquisition is set up.

If the camera does not support separate acquisition setup, always return True.

is_opened()

Check if the device is connected

pausing_acquisition(clear=None, stop=True, setup_after=None, start_after=True, combine_nested=True)

Context manager which temporarily pauses acquisition during execution of with block.

Useful for applying certain settings which can’t be changed during the acquisition. If clear==True, clear acquisition in addition to stopping (by default, use the class default specified as _clear_pausing_acquisition attribute). If stop==True, stop the acquisition (if clear==True, stop regardless). If setup_after==True, setup the acquisition after pause if necessary (None means setup only if clearing was required). If start_after==True, start the acquisition after pause if necessary (None means start only if stopping was required). If combine_nested==True, then any nested pausing_acquisition calls will stop/clear acquisition as necessary, but won’t setup/start it again until this pausing_acquisition call is complete.

Yields tuple (acq_in_progress, acq_params), which indicates whether acquisition is currently in progress, and what are the current acquisition parameters.

read_multiple_images(rng=None, peek=False, missing_frame='skip', return_info=False, return_rng=False)

Read multiple images specified by rng (by default, all un-read images).

If rng is specified, it is a tuple (first, last) with images range (first inclusive). If no new frames are available, return an empty list; if no acquisition is running, return None. If peek==True, return images but not mark them as read. missing_frame determines what to do with frames which are out of range (missing or lost): can be "none" (replacing them with None), "zero" (replacing them with zero-filled frame), or "skip" (skipping them). If return_info==True, return tuple (frames, infos), where infos is a list of frame info tuples (camera-dependent, by default, only the frame index); if some frames are missing and missing_frame!="skip", the corresponding frame info is None. if return_rng==True, return the range covered resulting frames; if missing_frame=="skip", the range can be smaller than the supplied rng if some frames are skipped.

read_newest_image(peek=False, return_info=False)

Read the newest un-read image.

If no un-read frames are available, return None. If peek==True, return the image but not mark it as read. If return_info==True, return tuple (frame, info), where info is an info tuples (camera-dependent, see read_multiple_images()).

read_oldest_image(peek=False, return_info=False)

Read the oldest un-read image.

If no un-read frames are available, return None. If peek==True, return the image but not mark it as read. If return_info==True, return tuple (frame, info), where info is an info tuples (camera-dependent, see read_multiple_images()).

set_device_variable(key, value)

Set the value of a settings parameter

set_frame_format(fmt)

Set format for the returned images.

Can be "list" (list of 2D arrays), "array" (a single 3D array), "chunks" (list of 3D “chunk” arrays; supported for some cameras and provides the best performance), or "try_chunks" (same as "chunks", but if chunks are not supported, set to "list" instead). If format is "chunks" and chunks are not supported by the camera, it results in one frame per chunk. Note that if the format is set to "array" or "chunks", the frame info format is also automatically set to "array". If the format is set to "chunks", then the image info is also returned in chunks form (list of 2D info arrays with the same length as the corresponding frame chunks).

set_frame_info_format(fmt, include_fields=None)

Set format of the frame info.

Can be "namedtuple" (potentially nested named tuples; convenient to get particular values), "list" (flat list of values, with field names are given by get_frame_info_fields(); convenient for building a table), "array" (same as "list", but with a numpy array, which is easier to use for "chunks" frame format), or "dict" (flat dictionary with the same fields as the "list" format; more resilient to future format changes) If include_fields is not None, it specifies the fields included for non-"tuple" formats; note that order or include_fields is ignored, and the resulting fields are always ordered same as in the original.

set_frame_info_period(period=1)

Set period of frame info acquisition.

Frame info might be skipped (set to None) except for frames which indices are divisible by period. Useful for certain cameras where acquiring frame info takes a lot of time and can reduce performance at higher frame rates. Note that this parameter can still be ignored (i.e., always set to 1) if the performance is not an issue for a given camera class.

set_image_indexing(indexing)

Set up indexing for the returned images.

Can be "rct" (first index row, second index column, rows counted from the top), "rcb" (same as "rc", rows counted from the bottom), "xyt" (first index column, second index row, rows counted from the top), or "xyb" (same as "xyt", rows counted from the bottom)

snap(timeout=5.0, return_info=False)

Snap a single frame

start_acquisition(*args, **kwargs)

Start acquisition.

Can take the same keyword parameters as :meth:``setup_acquisition. If the acquisition is not set up yet, set it up using the supplied parameters (use default of setup_acquisition(),if the parameter is None). Otherwise, if any supplied parameters are different from the current ones, change them and reset the acquisition.

stop_acquisition()

Stop acquisition

wait_for_frame(since='lastread', nframes=1, timeout=20.0, error_on_stopped=False)

Wait for one or several new camera frames.

since specifies the reference point for waiting to acquire nframes frames; can be “lastread”`` (from the last read frame), "lastwait" (wait for the last successful wait_for_frame() call), "now" (from the start of the current call), or "start" (from the acquisition start, i.e., wait until nframes frames have been acquired). timeout can be either a number, None (infinite timeout), or a tuple (timeout, frame_timeout), in which case the call times out if the total time exceeds timeout, or a single frame wait exceeds frame_timeout. If the call times out, raise TimeoutError. If error_on_stopped==True and the acquisition is not running, raise Error; otherwise, simply return False without waiting.

class pylablib.devices.AlliedVision.Bonito.BonitoIMAQCamera(imaq_name='img0')[source]

Bases: IBonitoCamera, IMAQFrameGrabber

IMAQ+PFCam interface to a AlliedVision Bonito camera.

Parameters:

imaq_name – IMAQ interface name (can be learned by IMAQ.list_cameras(); usually, but not always, starts with "img")

Error

alias of DeviceError

GrabberClass

alias of IMAQFrameGrabber

class ChunkBufferManager(chunk_size=67108864, legacy_32bit_mode=False)

Bases: ChunkBufferManager

Buffer manager which includes legacy 32bit mode

allocate(nframes, frame_size)

Allocate buffers for the given number of frames and frame size (in bytes)

deallocate()

Deallocate the buffers

get_ctypes_frames_list(ctype=<class 'ctypes.c_char_p'>)

Get stored buffers as a ctypes array with pointer of the given type

get_frames_data(idx, nframes=1)

Get frames data starting from idx and spanning nframes frames.

Return a list of tuples (nread, chunk_data), where nread is the number of frames in the chunk, and chunk_data is the raw buffer pointer as a ctypes.c_char_p object.

set_buffers(cbuff)
FrameTransferError

alias of DefaultFrameTransferError

TimeoutError = <Mock spec='str' id='133159289760784'>
acquisition_in_progress()

Check if acquisition is in progress

apply_settings(settings)

Apply the settings.

settings is the dict {name: value} of the device available settings. Non-applicable settings are ignored.

clear_acquisition()

Clear all acquisition details and free all buffers

clear_all_triggers(reset_acquisition=True)

Disable all triggers of the session

If the input triggers configuration has been changed, acquisition needs to be restart; if reset_acquisition==True, perform it automatically.

close()

Close connection to the camera

configure_trigger_in(trig_type, trig_line=0, trig_pol='high', trig_action='none', timeout=None, reset_acquisition=True)

Configure input trigger.

Parameters:
  • trig_type (str) – trigger source type; can be "ext", "rtsi", "iso_in", or "software"

  • trig_line (int) – trigger line number

  • trig_pol (str) – trigger polarity; can be "high" or "low"

  • trig_action (str) – trigger action; can be "none" (disable trigger), "capture" (start capturing), "stop" (stop capturing), "buffer" (capture a single frame), or "bufflist" (capture the whole buffer list once)

  • timeout (float) – timeout in seconds; None means not timeout.

  • reset_acquisition (bool) – if the input triggers configuration has been changed, acquisition needs to be restart; if True, perform it automatically

configure_trigger_out(trig_type, trig_line=0, trig_pol='high', trig_drive='disable')

Configure trigger output.

Parameters:
  • trig_type (str) – trigger drive destination type; can be "ext", "rtsi", or "iso_out"

  • trig_line (int) – trigger line number

  • trig_pol (str) – trigger polarity; can be "high" or "low"

  • trig_drive (str) – trigger output signal; can be "disable" (disable drive), "acq_in_progress" (asserted when acquisition is started), "acq_done" (asserted when acquisition is done), "unasserted" (force unasserted level), "asserted" (force asserted level), "hsync" (asserted on start of a single line start), "vsync" (asserted on start of a frame scan), "frame_start" (asserted when a single frame is captured), or "frame_done" (asserted when a single frame is done)

enable_status_line(enabled=True)

Enable or disable status line

get_acquisition_parameters()

Get acquisition parameters.

Return dictionary {name: value}

get_all_grabber_attribute_values()

Get a dictionary of all readable attributes.

The attributes types are autodetected, and some of the types of uncommon attributes may be misrepresented.

get_black_level_offset()

Get the black level offset

get_data_dimensions()

Get readout data dimensions (in pixels) as a tuple (width, height); take indexing mode into account

get_detector_size()

Get camera detector size (in pixels) as a tuple (width, height); as the camera does not provide this information, use the frame grabber parameters

get_device_info()

Get camera model data.

Return tuple (model, serial_number, grabber_info).

get_device_variable(key)

Get the value of a settings, status, or full info parameter

get_digital_gain()

Get the digital gain (0 for 1x, 1 for 2x, 2 for 4x)

get_exposure()

Get current exposure.

Note that the actual exposure might be different, depending on the exposure control mode.

get_exposure_control_mode()

Get the exposure control mode.

Return tuple (timing_mode, feature_mode), where timing_mode determines how the exposure and frame period are timed (continuous, external trigger control, internal control, etc.), and feature_mode controls additional features (permanent exposure, enhanced full well mode). See documentation for details.

get_frame_format()

Get format for the returned images.

Can be "list" (list of 2D arrays), "array" (a single 3D array), or "chunks" (list of 3D “chunk” arrays; supported for some cameras and provides the best performance).

get_frame_info_fields()

Get the names of frame info fields.

Applicable when frame info format (set by set_frame_info_format()) is "list" or "array".

get_frame_info_format()

Get format of the frame info.

Can be "namedtuple" (potentially nested named tuples; convenient to get particular values), "list" (flat list of values, with field names are given by get_frame_info_fields(); convenient for building a table), "array" (same as "list", but with a numpy array, which is easier to use for "chunks" frame format), or "dict" (flat dictionary with the same fields as the "list" format; more resilient to future format changes)

get_frame_info_period()

Get period of frame info acquisition.

Frame info might be skipped (set to None) except for frames which indices are divisible by period. Useful for certain cameras where acquiring frame info takes a lot of time and can reduce performance at higher frame rates. Note that this parameter can still be ignored (i.e., always set to 1) if the performance is not an issue for a given camera class.

get_frame_period()

Get frame period (time between two consecutive frames in the internal trigger mode).

Note that the actual frame period might be different, depending on the exposure control mode.

get_frame_timings()

Get acquisition timing.

Return tuple (exposure, frame_period).

get_frames_status()

Get acquisition and buffer status.

Return tuple (acquired, unread, skipped, size), where acquired is the total number of acquired frames, unread is the number of acquired but not read frames, skipped is the number of skipped (not read and then written over) frames, and buffer_size is the total buffer size (in frames).

get_full_info(include=0)

Get dict {name: value} containing full device information (including status and settings).

include specifies either a list of variables (only these variables are returned), a priority threshold (only values with the priority equal or higher are returned), or "all" (all available variables). Since the lowest priority is -10, setting include=-10 queries all available variables, which is equivalent to include="all".

get_full_status(include=0)

Get dict {name: value} containing the device status (including settings).

include specifies either a list of variables (only these variables are returned), a priority threshold (only values with the priority equal or higher are returned), or "all" (all available variables). Since the lowest priority is -10, setting include=-10 queries all available variables, which is equivalent to include="all".

get_grabber_attribute_value(attr, default=None, kind='auto')

Get value of an attribute with a given name or index.

If default is not None, return default if the attribute is not supported; otherwise, raise an error. kind is the attribute kind, and it can be "uint32", "uint64", "double", or "auto" (autodetect based on the stored list of attribute kinds).

get_grabber_detector_size()

Get camera detector size (in pixels) as a tuple (width, height)

get_grabber_roi()

Get current ROI.

Return tuple (hstart, hend, vstart, vend). hstart and hend specify horizontal image extent, vstart and vend specify vertical image extent (start is inclusive, stop is exclusive, starting from 0).

get_grabber_roi_limits(hbin=1, vbin=1)

Get the minimal and maximal ROI parameters.

Return tuple (hlim, vlim), where each element is in turn a limit 5-tuple (min, max, pstep, sstep, maxbin) with, correspondingly, minimal and maximal size, position and size step, and the maximal binning (fixed to 1 if not binning is allowed). In some cameras, the step and the minimal size depend on the binning, which can be supplied.

get_image_indexing()

Get indexing for the returned images.

Can be "rct" (first index row, second index column, rows counted from the top), "rcb" (same as "rc", rows counted from the bottom), "xyt" (first index column, second index row, rows counted from the top), or "xyb" (same as "xyt", rows counted from the bottom)

get_new_images_range()

Get the range of the new images.

Return tuple (first, last) with images range (first inclusive). If no images are available, return None. If some images were in the buffer were overwritten, exclude them from the range.

get_roi()

Get current ROI.

Return tuple (hstart, hend, vstart, vend).

get_roi_limits(hbin=1, vbin=1)

Get the minimal and maximal ROI parameters.

Return tuple (hlim, vlim), where each element is in turn a limit 5-tuple (min, max, pstep, sstep, maxbin) with, correspondingly, minimal and maximal size, position and size step, and the maximal binning (fixed to 1 if not binning is allowed). In some cameras, the step and the minimal size depend on the binning, which can be supplied.

get_serial_parameter(comm, kind='int', timeout=3.0)
get_serial_params()

Return serial parameters as a tuple (write_term, datatype)

get_settings(include=0)

Get dict {name: value} containing all the device settings.

include specifies either a list of variables (only these variables are returned), a priority threshold (only values with the priority equal or higher are returned), or "all" (all available variables). Since the lowest priority is -10, setting include=-10 queries all available variables, which is equivalent to include="all".

grab(nframes=1, frame_timeout=5.0, missing_frame='skip', return_info=False, buff_size=None)

Snap nframes images (with preset image read mode parameters)

buff_size determines buffer size (if None, use the default size). Timeout is specified for a single-frame acquisition, not for the whole acquisition time. missing_frame determines what to do with frames which have been lost: can be "none" (replacing them with None), "zero" (replacing them with zero-filled frame), or "skip" (skipping them, while still keeping total returned frames number to n). If return_info==True, return tuple (frames, infos), where infos is a list of frame info tuples (camera-dependent); if some frames are missing and missing_frame!="skip", the corresponding frame info is None.

is_acquisition_setup()

Check if acquisition is set up.

If the camera does not support separate acquisition setup, always return True.

is_opened()

Check if the device is connected

is_status_line_enabled()

Check if the status line is on

open()

Open connection to the camera

pausing_acquisition(clear=None, stop=True, setup_after=None, start_after=True, combine_nested=True)

Context manager which temporarily pauses acquisition during execution of with block.

Useful for applying certain settings which can’t be changed during the acquisition. If clear==True, clear acquisition in addition to stopping (by default, use the class default specified as _clear_pausing_acquisition attribute). If stop==True, stop the acquisition (if clear==True, stop regardless). If setup_after==True, setup the acquisition after pause if necessary (None means setup only if clearing was required). If start_after==True, start the acquisition after pause if necessary (None means start only if stopping was required). If combine_nested==True, then any nested pausing_acquisition calls will stop/clear acquisition as necessary, but won’t setup/start it again until this pausing_acquisition call is complete.

Yields tuple (acq_in_progress, acq_params), which indicates whether acquisition is currently in progress, and what are the current acquisition parameters.

read_multiple_images(rng=None, peek=False, missing_frame='skip', return_info=False, return_rng=False)

Read multiple images specified by rng (by default, all un-read images).

If rng is specified, it is a tuple (first, last) with images range (first inclusive). If no new frames are available, return an empty list; if no acquisition is running, return None. If peek==True, return images but not mark them as read. missing_frame determines what to do with frames which are out of range (missing or lost): can be "none" (replacing them with None), "zero" (replacing them with zero-filled frame), or "skip" (skipping them). If return_info==True, return tuple (frames, infos), where infos is a list of frame info tuples (camera-dependent, by default, only the frame index); if some frames are missing and missing_frame!="skip", the corresponding frame info is None. if return_rng==True, return the range covered resulting frames; if missing_frame=="skip", the range can be smaller than the supplied rng if some frames are skipped.

read_newest_image(peek=False, return_info=False)

Read the newest un-read image.

If no un-read frames are available, return None. If peek==True, return the image but not mark it as read. If return_info==True, return tuple (frame, info), where info is an info tuples (camera-dependent, see read_multiple_images()).

read_oldest_image(peek=False, return_info=False)

Read the oldest un-read image.

If no un-read frames are available, return None. If peek==True, return the image but not mark it as read. If return_info==True, return tuple (frame, info), where info is an info tuples (camera-dependent, see read_multiple_images()).

read_trigger(trig_type, trig_line=0, trig_pol='high')

Read current value of a trigger (input or output).

Parameters:
  • trig_type (str) – trigger drive destination type; can be "ext", "rtsi", "iso_in", or "iso_out"

  • trig_line (int) – trigger line number

  • trig_pol (str) – trigger polarity; can be "high" or "low"

reset()

Reset connection to the camera

send_software_trigger()

Send software trigger signal

serial_flush()

Flush CameraLink serial port

serial_query(query, timeout=3.0)
serial_read(n, timeout=3.0, datatype=None)

Read specified number of bytes from CameraLink serial port.

Parameters:
  • n – number of bytes to read

  • timeout – operation timeout (in seconds)

  • datatype – return datatype; can be "bytes" (return raw bytes), or "str" (convert into UTF-8 string) if None, use the value set up using setup_serial_params() (by default, "bytes")

serial_readline(timeout=3.0, datatype=None, maxn=1024)

Read bytes from CameraLink serial port until the termination character (defined in camera file) is encountered.

Parameters:
  • timeout – operation timeout (in seconds)

  • datatype – return datatype; can be "bytes" (return raw bytes), or "str" (convert into UTF-8 string) if None, use the value set up using setup_serial_params() (by default, "bytes")

  • maxn – maximal number of bytes to read

serial_write(msg, timeout=3.0, term=None)

Write message into CameraLink serial port.

Parameters:
  • timeout – operation timeout (in seconds)

  • term – additional write terminator character to add to the message; if None, use the value set up using setup_serial_params() (by default, no additional terminator)

set_black_level_offset(offset)

Set the black level offset

set_device_variable(key, value)

Set the value of a settings parameter

set_digital_gain(gain)

Get the digital gain (0 for 1x, 1 for 2x, 2 for 4x)

set_exposure(exposure, setup_mode=True)

Set current exposure.

Note that the actual exposure might be different, depending on the exposure control mode. If setup_mode==True, automatically set the exposure mode to take the given exposure value into account.

set_exposure_control_mode(timing_mode=None, feature_mode=None)

Set the exposure control mode.

timing_mode determines how the exposure and frame period are timed (continuous, external trigger control, internal control, etc.), and feature_mode controls additional features (permanent exposure, enhanced full well mode). See documentation for details.

set_frame_format(fmt)

Set format for the returned images.

Can be "list" (list of 2D arrays), "array" (a single 3D array), "chunks" (list of 3D “chunk” arrays; supported for some cameras and provides the best performance), or "try_chunks" (same as "chunks", but if chunks are not supported, set to "list" instead). If format is "chunks" and chunks are not supported by the camera, it results in one frame per chunk. Note that if the format is set to "array" or "chunks", the frame info format is also automatically set to "array". If the format is set to "chunks", then the image info is also returned in chunks form (list of 2D info arrays with the same length as the corresponding frame chunks).

set_frame_info_format(fmt, include_fields=None)

Set format of the frame info.

Can be "namedtuple" (potentially nested named tuples; convenient to get particular values), "list" (flat list of values, with field names are given by get_frame_info_fields(); convenient for building a table), "array" (same as "list", but with a numpy array, which is easier to use for "chunks" frame format), or "dict" (flat dictionary with the same fields as the "list" format; more resilient to future format changes) If include_fields is not None, it specifies the fields included for non-"tuple" formats; note that order or include_fields is ignored, and the resulting fields are always ordered same as in the original.

set_frame_info_period(period=1)

Set period of frame info acquisition.

Frame info might be skipped (set to None) except for frames which indices are divisible by period. Useful for certain cameras where acquiring frame info takes a lot of time and can reduce performance at higher frame rates. Note that this parameter can still be ignored (i.e., always set to 1) if the performance is not an issue for a given camera class.

set_frame_period(frame_period, setup_mode=True)

Set frame period (time between two consecutive frames in the internal trigger mode).

Note that the actual frame period might be different, depending on the exposure control mode. If setup_mode==True, automatically set the exposure mode to take the given exposure value into account.

set_grabber_attribute_value(attr, value, kind='int32')

Set value of an attribute with a given name or index.

kind is the attribute kind, and it can be "uint32", "uint64", "double", or "auto" (autodetect based on the stored list of attribute kinds).

set_grabber_roi(hstart=0, hend=None, vstart=0, vend=None)

Setup camera ROI.

hstart and hend specify horizontal image extent, vstart and vend specify vertical image extent (start is inclusive, stop is exclusive, starting from 0). By default, all non-supplied parameters take extreme values (0 for start, maximal for end).

set_image_indexing(indexing)

Set up indexing for the returned images.

Can be "rct" (first index row, second index column, rows counted from the top), "rcb" (same as "rc", rows counted from the bottom), "xyt" (first index column, second index row, rows counted from the top), or "xyb" (same as "xyt", rows counted from the bottom)

set_roi(hstart=0, hend=None, vstart=0, vend=None)

Setup camera ROI.

By default, all non-supplied parameters take extreme values.

set_serial_parameter(comm, value)
setup_acquisition(mode='sequence', nframes=100)

Setup acquisition mode.

mode can be either "snap" (single frame or a fixed number of frames) or "sequence" (continuous acquisition). (note that IMAQCamera.acquisition_in_progress() would still return True in this case, even though new frames are no longer acquired). nframes sets up number of frame buffers.

setup_serial_params(write_term='', datatype='bytes')

Setup default serial communication parameters.

Parameters:
  • write_term – default terminator character to be added to the sent messages

  • datatype – type of the result of read commands; can be "bytes" (return raw bytes), or "str" (convert into UTF-8 string)

snap(timeout=5.0, return_info=False)

Snap a single frame

start_acquisition(*args, **kwargs)

Start acquisition.

Can take the same keyword parameters as :meth:``setup_acquisition. If the acquisition is not set up yet, set it up using the supplied parameters (use default of setup_acquisition(),if the parameter is None). Otherwise, if any supplied parameters are different from the current ones, change them and reset the acquisition.

stop_acquisition()

Stop acquisition

wait_for_frame(since='lastread', nframes=1, timeout=20.0, error_on_stopped=False)

Wait for one or several new camera frames.

since specifies the reference point for waiting to acquire nframes frames; can be “lastread”`` (from the last read frame), "lastwait" (wait for the last successful wait_for_frame() call), "now" (from the start of the current call), or "start" (from the acquisition start, i.e., wait until nframes frames have been acquired). timeout can be either a number, None (infinite timeout), or a tuple (timeout, frame_timeout), in which case the call times out if the total time exceeds timeout, or a single frame wait exceeds frame_timeout. If the call times out, raise TimeoutError. If error_on_stopped==True and the acquisition is not running, raise Error; otherwise, simply return False without waiting.

pylablib.devices.AlliedVision.Bonito.check_grabber_association(cam)[source]

Check if the given IMAQ frame grabber corresponds to Bonito camera.

cam should be an opened instance of IMAQCamera.

class pylablib.devices.AlliedVision.Bonito.TStatusLine(framestamp)

Bases: tuple

framestamp
pylablib.devices.AlliedVision.Bonito.get_status_lines(frames)[source]

Get frame info from the binary status line.

frames can be 2D array (one frame), 3D array (stack of frames, first index is frame number), or list of 1D or 2D arrays. Assume that the status line is present; if it isn’t, the returned frame info will be a random noise. Return a 1D or 2D numpy array, where the first axis (if present) is the frame number, and the last is the status line entry.

class pylablib.devices.AlliedVision.Bonito.BonitoStatusLineChecker[source]

Bases: StatusLineChecker

get_framestamp(frames)[source]

Get framestamps from status lines in the given frames

check_indices(indices, step=1)

Check if indices are consistent with the given step

pylablib.devices.AlliedVision.VimbaX module

class pylablib.devices.AlliedVision.VimbaX.LibraryController(lib)[source]

Bases: LibraryController

close(opid)[source]

Mark device closing.

Return tuple (close_result, uninit_result) with the results of the closing and the shutdown. If library does not need to be shut down yet, set uninit_result=None

get_opened_num()[source]

Get number of opened devices

open()[source]

Mark device opening.

Return tuple (init_result, open_result, opid) with the results of the initialization and the opening, and the opening ID which should afterwards be used for closing. If library is already initialized, set init_result=None

preinit()[source]

Pre-initialize the library, if it hasn’t been done already

shutdown()[source]

Close all opened connections and shutdown the library

temp_open()[source]

Context for temporarily opening a new device connection

pylablib.devices.AlliedVision.VimbaX.restart_lib()[source]
pylablib.devices.AlliedVision.VimbaX.get_SDK_version()[source]

Get version of Allied Vision VimbaX SDK

class pylablib.devices.AlliedVision.VimbaX.TCameraInfo(name, model, model_full, serial, name_full)

Bases: tuple

model
model_full
name
name_full
serial
pylablib.devices.AlliedVision.VimbaX.list_cameras(desc=True)[source]

List all cameras available through Allied Vision VimbaX interface

If desc==True, return complete camera descriptions; otherwise, simply return the names.

pylablib.devices.AlliedVision.VimbaX.get_cameras_number()[source]

Get number of connected Allied Vision VimbaX cameras

class pylablib.devices.AlliedVision.VimbaX.AlliedVisionVimbaXAttribute(cam, name, full_name=None)[source]

Bases: object

Object representing an Allied Vision VimbaX GenAPI attribute.

Allows to query and set values and get additional information. Usually created automatically by an AlliedVisionVimbaXCamera instance.

Parameters:
  • cam – camera handle

  • name – attribute name

  • full_name – if supplied, attribute’s full name, including the tree structure

name

attribute name

kind

attribute kind; can be "int", "float", "bool", "enum", "str", "command", "raw", "none", or "unknown"

display_name

attribute display name (short description name)

tooltip

longer attribute description

description

full attribute description (usually, same as tooltip)

visibility

attribute visibility; can be "simple", "intermediate", "advanced", "invisible", or "unknown"

category

attribute category (parent path within the parameter tree)

namespace

attribute namespace (e.g., "Standard" or "Custom")

representation

numerical attribute representation (e.g., "PureNumber" or "Logarithmic")

readable

whether attribute is readable

Type:

bool

writable

whether attribute is writable

Type:

bool

min

minimal attribute value (if applicable)

Type:

float or int

max

maximal attribute value (if applicable)

Type:

float or int

inc

minimal attribute increment value (if applicable)

Type:

float or int

units

attribute units (if applicable)

ivalues

list of possible integer values for enum attributes

values

list of possible text values for enum attributes

labels

dict {label: index} which shows all possible values of an enumerated attribute and their corresponding numerical values

ilabels

dict {index: label} which shows labels corresponding to numerical values of an enumerated attribute

update_limits()[source]

Update minimal and maximal attribute limits and return tuple (min, max, inc)

truncate_value(value)[source]

Truncate value to lie within attribute limits

get_value(enum_as_str=True)[source]

Get attribute value.

If enum_as_str==True, return enum-style values as strings; otherwise, return corresponding integer values.

set_value(value, truncate=True)[source]

Set attribute value.

If truncate==True, automatically truncate value to lie within allowed range.

call_command()[source]

Execute the given command

class pylablib.devices.AlliedVision.VimbaX.TDeviceInfo(name, model, model_full, serial, name_full)

Bases: tuple

model
model_full
name
name_full
serial
class pylablib.devices.AlliedVision.VimbaX.TFrameInfo(frame_index, framestamp, timestamp, offset_x, offset_y)

Bases: tuple

frame_index
framestamp
offset_x
offset_y
timestamp
class pylablib.devices.AlliedVision.VimbaX.AlliedVisionVimbaXCamera(idx=0, name=None, serial=None)[source]

Bases: IROICamera, IAttributeCamera, IExposureCamera

Generic Allied Vision VimbaX camera interface.

Parameters:
  • idx – camera index among the cameras listed using list_cameras()

  • name – camera name; if specified, then idx is ignored and the camera is determined based on the provided name

  • serial – camera serial number; if specified, then idx and name is ignored and the camera is determined based on the provided serial number

Error = <Mock name='mock.AlliedVisionVimbaXError' id='133159257737168'>
TimeoutError = <Mock spec='str' id='133159259122128'>
open()[source]

Open connection to the camera

close()[source]

Close connection to the camera

is_opened()[source]

Check if the device is connected

post_open()[source]

Additional setup after camera opening

get_attribute_value(name, error_on_missing=True, default=None, enum_as_str=True)[source]

Get value of an attribute with the given name.

If the value doesn’t exist or can not be read and error_on_missing==True, raise error; otherwise, return default. If default is not None, assume that error_on_missing==False. If name points at a dictionary branch, return a dictionary with all values in this branch. If enum_as_str==True, return enum-style values as strings; otherwise, return corresponding integer values.

set_attribute_value(name, value, truncate=True, error_on_missing=True)[source]

Set value of an attribute with the given name.

If the value doesn’t exist or can not be written and error_on_missing==True, raise error; otherwise, do nothing. If name points at a dictionary branch, set all values in this branch (in this case value must be a dictionary). If truncate==True, truncate value to lie within attribute range.

call_command(name)[source]

Execute the given command

get_all_attribute_values(root='', enum_as_str=True, ignore_errors=True)[source]

Get values of all attributes with the given root

set_all_attribute_values(settings, root='', truncate=True)[source]

Set values of all attributes with the given root.

If truncate==True, truncate value to lie within attribute range.

get_device_info()[source]

Get camera information.

Return tuple (name, model, serial, devclass, devversion, vendor, friendly_name, user_name, props).

get_detector_size()[source]

Get camera detector size (in pixels) as a tuple (width, height)

get_roi()[source]

Get current ROI.

Return tuple (hstart, hend, vstart, vend). hstart and hend specify horizontal image extent, vstart and vend specify vertical image extent (start is inclusive, stop is exclusive, starting from 0).

set_roi(hstart=0, hend=None, vstart=0, vend=None)[source]

Setup camera ROI.

hstart and hend specify horizontal image extent, vstart and vend specify vertical image extent (start is inclusive, stop is exclusive, starting from 0). By default, all non-supplied parameters take extreme values (0 for start, maximal for end).

get_roi_limits(hbin=1, vbin=1)[source]

Get the minimal and maximal ROI parameters.

Return tuple (hlim, vlim), where each element is in turn a limit 5-tuple (min, max, pstep, sstep, maxbin) with, correspondingly, minimal and maximal size, position and size step, and the maximal binning (fixed to 1 if not binning is allowed). In some cameras, the step and the minimal size depend on the binning, which can be supplied.

get_exposure()[source]

Get current exposure

set_exposure(exposure)[source]

Set camera exposure

get_frame_period()[source]

Get frame period (time between two consecutive frames in the internal trigger mode)

set_frame_period(frame_period)[source]

Set frame period (time between two consecutive frames in the internal trigger mode)

get_frame_timings()[source]

Get acquisition timing.

Return tuple (exposure, frame_period).

class CallbackManager(handle)[source]

Bases: object

get_callback_ptr()[source]
announce(buff)[source]
revoke()[source]
reset()[source]
start(acquire_frameinfo=True)[source]
stop()[source]
is_running()[source]
get_stat()[source]
class BufferManager(size, nbuff)[source]

Bases: object

Buffer manager, which deals with buffer memory allocation, registering and deregistering, and retrieving the result and the leftovers

get_buffer(fidx)[source]

Get buffer corresponding to the given frame index

get_frameinfo_buffer(fidx)[source]

Get frame info buffer corresponding to the given frame index

setup_acquisition(mode='sequence', nframes=100)[source]

Setup acquisition mode.

mode can be either "snap" (single frame or a fixed number of frames) or "sequence" (continuous acquisition). nframes sets up number of frame buffers.

clear_acquisition()[source]

Clear acquisition settings

start_acquisition(*args, **kwargs)[source]

Start acquisition.

Can take the same keyword parameters as :meth:``setup_acquisition. If the acquisition is not set up yet, set it up using the supplied parameters (use default of setup_acquisition(),if the parameter is None). Otherwise, if any supplied parameters are different from the current ones, change them and reset the acquisition.

stop_acquisition()[source]

Stop acquisition

acquisition_in_progress()[source]

Check if acquisition is in progress

enable_raw_readout(enable='rows')[source]

Enable raw frame transfer.

Should be used if the camera uses unsupported pixel format. Can be "frame" (return the whole frame as a 1D "u1" numpy array), "rows" (return a 2D array, where each row corresponds to a single image row), or False (convert to image data, or raise an error if the format is not supported; default)

FrameTransferError

alias of DefaultFrameTransferError

apply_settings(settings)

Apply the settings.

settings is the dict {name: value} of the device available settings. Non-applicable settings are ignored.

get_acquisition_parameters()

Get acquisition parameters.

Return dictionary {name: value}

get_all_attributes(copy=False)

Return a dictionary of all available attributes.

If copy==True, copy the dictionary; otherwise, return the internal dictionary structure (should not be modified).

get_attribute(name, error_on_missing=True)

Get the camera attribute with the given name

get_data_dimensions()

Get readout data dimensions (in pixels) as a tuple (width, height); take indexing mode into account

get_device_variable(key)

Get the value of a settings, status, or full info parameter

get_frame_format()

Get format for the returned images.

Can be "list" (list of 2D arrays), "array" (a single 3D array), or "chunks" (list of 3D “chunk” arrays; supported for some cameras and provides the best performance).

get_frame_info_fields()

Get the names of frame info fields.

Applicable when frame info format (set by set_frame_info_format()) is "list" or "array".

get_frame_info_format()

Get format of the frame info.

Can be "namedtuple" (potentially nested named tuples; convenient to get particular values), "list" (flat list of values, with field names are given by get_frame_info_fields(); convenient for building a table), "array" (same as "list", but with a numpy array, which is easier to use for "chunks" frame format), or "dict" (flat dictionary with the same fields as the "list" format; more resilient to future format changes)

get_frame_info_period()

Get period of frame info acquisition.

Frame info might be skipped (set to None) except for frames which indices are divisible by period. Useful for certain cameras where acquiring frame info takes a lot of time and can reduce performance at higher frame rates. Note that this parameter can still be ignored (i.e., always set to 1) if the performance is not an issue for a given camera class.

get_frames_status()

Get acquisition and buffer status.

Return tuple (acquired, unread, skipped, size), where acquired is the total number of acquired frames, unread is the number of acquired but not read frames, skipped is the number of skipped (not read and then written over) frames, and buffer_size is the total buffer size (in frames).

get_full_info(include=0)

Get dict {name: value} containing full device information (including status and settings).

include specifies either a list of variables (only these variables are returned), a priority threshold (only values with the priority equal or higher are returned), or "all" (all available variables). Since the lowest priority is -10, setting include=-10 queries all available variables, which is equivalent to include="all".

get_full_status(include=0)

Get dict {name: value} containing the device status (including settings).

include specifies either a list of variables (only these variables are returned), a priority threshold (only values with the priority equal or higher are returned), or "all" (all available variables). Since the lowest priority is -10, setting include=-10 queries all available variables, which is equivalent to include="all".

get_image_indexing()

Get indexing for the returned images.

Can be "rct" (first index row, second index column, rows counted from the top), "rcb" (same as "rc", rows counted from the bottom), "xyt" (first index column, second index row, rows counted from the top), or "xyb" (same as "xyt", rows counted from the bottom)

get_new_images_range()

Get the range of the new images.

Return tuple (first, last) with images range (first inclusive). If no images are available, return None. If some images were in the buffer were overwritten, exclude them from the range.

get_settings(include=0)

Get dict {name: value} containing all the device settings.

include specifies either a list of variables (only these variables are returned), a priority threshold (only values with the priority equal or higher are returned), or "all" (all available variables). Since the lowest priority is -10, setting include=-10 queries all available variables, which is equivalent to include="all".

grab(nframes=1, frame_timeout=5.0, missing_frame='skip', return_info=False, buff_size=None)

Snap nframes images (with preset image read mode parameters)

buff_size determines buffer size (if None, use the default size). Timeout is specified for a single-frame acquisition, not for the whole acquisition time. missing_frame determines what to do with frames which have been lost: can be "none" (replacing them with None), "zero" (replacing them with zero-filled frame), or "skip" (skipping them, while still keeping total returned frames number to n). If return_info==True, return tuple (frames, infos), where infos is a list of frame info tuples (camera-dependent); if some frames are missing and missing_frame!="skip", the corresponding frame info is None.

is_acquisition_setup()

Check if acquisition is set up.

If the camera does not support separate acquisition setup, always return True.

pausing_acquisition(clear=None, stop=True, setup_after=None, start_after=True, combine_nested=True)

Context manager which temporarily pauses acquisition during execution of with block.

Useful for applying certain settings which can’t be changed during the acquisition. If clear==True, clear acquisition in addition to stopping (by default, use the class default specified as _clear_pausing_acquisition attribute). If stop==True, stop the acquisition (if clear==True, stop regardless). If setup_after==True, setup the acquisition after pause if necessary (None means setup only if clearing was required). If start_after==True, start the acquisition after pause if necessary (None means start only if stopping was required). If combine_nested==True, then any nested pausing_acquisition calls will stop/clear acquisition as necessary, but won’t setup/start it again until this pausing_acquisition call is complete.

Yields tuple (acq_in_progress, acq_params), which indicates whether acquisition is currently in progress, and what are the current acquisition parameters.

read_multiple_images(rng=None, peek=False, missing_frame='skip', return_info=False, return_rng=False)

Read multiple images specified by rng (by default, all un-read images).

If rng is specified, it is a tuple (first, last) with images range (first inclusive). If no new frames are available, return an empty list; if no acquisition is running, return None. If peek==True, return images but not mark them as read. missing_frame determines what to do with frames which are out of range (missing or lost): can be "none" (replacing them with None), "zero" (replacing them with zero-filled frame), or "skip" (skipping them). If return_info==True, return tuple (frames, infos), where infos is a list of frame info tuples (camera-dependent, by default, only the frame index); if some frames are missing and missing_frame!="skip", the corresponding frame info is None. if return_rng==True, return the range covered resulting frames; if missing_frame=="skip", the range can be smaller than the supplied rng if some frames are skipped.

read_newest_image(peek=False, return_info=False)

Read the newest un-read image.

If no un-read frames are available, return None. If peek==True, return the image but not mark it as read. If return_info==True, return tuple (frame, info), where info is an info tuples (camera-dependent, see read_multiple_images()).

read_oldest_image(peek=False, return_info=False)

Read the oldest un-read image.

If no un-read frames are available, return None. If peek==True, return the image but not mark it as read. If return_info==True, return tuple (frame, info), where info is an info tuples (camera-dependent, see read_multiple_images()).

set_device_variable(key, value)

Set the value of a settings parameter

set_frame_format(fmt)

Set format for the returned images.

Can be "list" (list of 2D arrays), "array" (a single 3D array), "chunks" (list of 3D “chunk” arrays; supported for some cameras and provides the best performance), or "try_chunks" (same as "chunks", but if chunks are not supported, set to "list" instead). If format is "chunks" and chunks are not supported by the camera, it results in one frame per chunk. Note that if the format is set to "array" or "chunks", the frame info format is also automatically set to "array". If the format is set to "chunks", then the image info is also returned in chunks form (list of 2D info arrays with the same length as the corresponding frame chunks).

set_frame_info_format(fmt, include_fields=None)

Set format of the frame info.

Can be "namedtuple" (potentially nested named tuples; convenient to get particular values), "list" (flat list of values, with field names are given by get_frame_info_fields(); convenient for building a table), "array" (same as "list", but with a numpy array, which is easier to use for "chunks" frame format), or "dict" (flat dictionary with the same fields as the "list" format; more resilient to future format changes) If include_fields is not None, it specifies the fields included for non-"tuple" formats; note that order or include_fields is ignored, and the resulting fields are always ordered same as in the original.

set_frame_info_period(period=1)

Set period of frame info acquisition.

Frame info might be skipped (set to None) except for frames which indices are divisible by period. Useful for certain cameras where acquiring frame info takes a lot of time and can reduce performance at higher frame rates. Note that this parameter can still be ignored (i.e., always set to 1) if the performance is not an issue for a given camera class.

set_image_indexing(indexing)

Set up indexing for the returned images.

Can be "rct" (first index row, second index column, rows counted from the top), "rcb" (same as "rc", rows counted from the bottom), "xyt" (first index column, second index row, rows counted from the top), or "xyb" (same as "xyt", rows counted from the bottom)

snap(timeout=5.0, return_info=False)

Snap a single frame

wait_for_frame(since='lastread', nframes=1, timeout=20.0, error_on_stopped=False)

Wait for one or several new camera frames.

since specifies the reference point for waiting to acquire nframes frames; can be “lastread”`` (from the last read frame), "lastwait" (wait for the last successful wait_for_frame() call), "now" (from the start of the current call), or "start" (from the acquisition start, i.e., wait until nframes frames have been acquired). timeout can be either a number, None (infinite timeout), or a tuple (timeout, frame_timeout), in which case the call times out if the total time exceeds timeout, or a single frame wait exceeds frame_timeout. If the call times out, raise TimeoutError. If error_on_stopped==True and the acquisition is not running, raise Error; otherwise, simply return False without waiting.

pylablib.devices.AlliedVision.base module

exception pylablib.devices.AlliedVision.base.AlliedVisionError[source]

Bases: DeviceError

Generic AlliedVision error

add_note()

Exception.add_note(note) – add a note to the exception

args
with_traceback()

Exception.with_traceback(tb) – set self.__traceback__ to tb and return self.

Module contents