Adding support for GeniCam-compatible cameras #106
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This project adds a new labscript device
GeniCam
to support cameras compatible with the GeniCam interface.GeniCam is a generic camera interface designed by the European Machine Vision Association, whose final goal is to unify the camera interfaces of different backends. It has been widely adopted by Allied Vision and many other camera manufacturers.
One of the targets of this project is to phase out the usage of IMAQdx since IMAQdx is a close-sourced black box and all supports are provided at the mercy of NI. The backend of this project is based on https://github.com/genicam/harvesters. However, it is worth noting that GeniCam interface requires a
.cti
file (provided by the camera manufacturer) to work and this.cti
file is usually close-sourced.On top of the functionalities provided by IMAQdxCamera, I added an attribute tree widget to browse and edit the camera attributes in manual mode.
A big part of the work is based on IMAQdxCamera but was carefully rewritten for better code quality.
It has been extensively tested on Allied Vision Mako G-131B for a while. We have plans to test more cameras in the next few months.
I intend to post this PR as a draft because there are still things on our wishlist:
Camera
to serve as the parent class of all other cameras, includingIMAQdxCamera
(this is probably too ambitious for now)I really wish other people may help test this branch and provide more input. Thanks!