-
Notifications
You must be signed in to change notification settings - Fork 53
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Exposure time range is returned in different units for different camera types #81
Comments
Hello The -15 to +4 value range is the old style Physical Values interface. Do you have the correct driver version 5.1 installed for your camera? Also I suggest to use the Absolute Values interface of exposure instead of range. Then you get the exposure times in fraction of seconds from both cameras. Additionally, I suggest to switch to IC Imaging Control 4 and discontinue using tisgrabber, if possible. Stefan |
Hi @TIS-Stefan many thanks for your very quick reply. Switching to IC Imaging Control 4 is at the moment unfortunately not possible for us. We do have the 5.1 driver version installed. I would like to switch to the absolute values interface, but then I get problems with floating point precision. If I do
Then fMin is supposed to be 2e-5, as the minimum exposure duration for that camera model is 20 us. But this is not representable by a float, so it is in fact something like 1.999999995e-5.
My application crashes, as I will try to use double precision, but I am not sure how the tisgrabber library will handle this. Or do you have another suggestion what I should do? Cheers, |
Hello Ole |
It is a very nice float number, I agree, but tisgrabber does not seem to handle it well :) There is no error message displayed. I have gdb attached and get until the line
where My current workaround is simply to add 1 mico second to |
Hi Ole Which compiler do you use? Stefan |
Hi Stefan, |
Hi Ole /////////////////////////////////////////////////////////////////////////////////
// Set the current value of a given property and element combination.
// AbsoluteValue interface is used
// Property and Element names are not case sensitive
int setPropertyAbsoluteValue(DShowLib::Grabber &Grabber, char* Property, char *Element, double Value)
{
int iSuccess = IC_SUCCESS;
tIVCDAbsoluteValuePropertyPtr pAbsval = NULL;
iSuccess = GetAbsValPropertyPtr(Grabber, Property, Element, pAbsval);
if (iSuccess == IC_SUCCESS)
{
if (pAbsval != NULL)
{
if (pAbsval->getRangeMin() <= Value && Value <= pAbsval->getRangeMax())
pAbsval->setValue(Value);
else
iSuccess = IC_INDEX_OUT_OF_RANGE;
}
}
return iSuccess;
} Maybe there is an error message in the the Windows EventViewer. Stefan |
Hi,
I hope someone can help me with this.
We have different camera types in use (DFK 33GX236 and DFK 37AUX290 for example) and are using the
tisgrabber
library to control the camera settings in our C++ application.We want to allow the user to change the exposure time within a range limited a) by the camera itself and b) we set an upper limit of 33 ms to allow for a minimum of 30 FPS.
We use a call to
to obtain the min and max exposure time of the camera device. Now the problem is that for the DFK 37AUX290 this gives us
and for DFK 33GX236 we get
Is there a possibility to obtain the range in the same unit independent on the device? Or a way to know which unit is being returned by
IC_CameraPropertyGetRange
?I have found the
IC_GetExpAbsValRange(grabber, fMin, fMax)
method which gives me the exposure range in micro seconds for the DFK 37AUX290 type, but for the DFK 33GX236 the application is crashing, even though (or because?) I checkIC_IsExpAbsValAvailable(grabber)
.I would like to avoid hard-coded camera types and different handlings depending on them..
The text was updated successfully, but these errors were encountered: