SherifN / peak_cam

A Linux ROS C++ Node that wraps the driver API for IDS vision cameras using IDS peak software.
Other
8 stars 13 forks source link

Cannot set image size to maxWidth and maxHeight #29

Open boitumeloruf opened 2 years ago

boitumeloruf commented 2 years ago

I am having trouble trying to set the image size to maxWidth and maxHeight, which in case of the cameras I am using 4096x3000 pixels.

This is the error I get: [ INFO] [1641906701.666786698]: [PEAK_CAM]: GV-520xFA-C found [ INFO] [1641906701.705481934]: [PEAK_CAM]: maxWidth '4096' [ INFO] [1641906701.708041339]: [PEAK_CAM]: maxHeight '3000' [ERROR] [1641906701.719373761]: [PEAK_CAM]: EXCEPTION: Error-Code: 12 (PEAK_RETURN_CODE_OUT_OF_RANGE) | Error-Description: Value = 4096 must be equal or smaller than Max = 3344. : OutOfRangeException thrown in node 'Width' while calling 'Width.SetValue()' (file 'IntegerT.h', line 79)

Can anyone help me with this? Where do I find the file IntegerT.h?

flynneva commented 2 years ago

@boitumeloruf from the error code it looks like you are trying to set a max value that is too large for your device.

Try changing your 4096 max width value to 3344 from the error output.

boitumeloruf commented 2 years ago

Yes, with a width of 3344 and a corresponding height value it works. But I actually want to set it to the maximum value of the camera which is 4096x3000 (see the lines above).

I have noticed that when I change the DeviceLinkThroughputLimit the image size I can set also changes. But the DeviceLinkThroughputLimit is already at its maximum. Does this mean that the configuration of the network interface is wrong?

flynneva commented 2 years ago

@boitumeloruf it could be. I'm pretty sure at start up IDS peak cameras are smart enough to auto-adjust the max size available based on the network.

danieldugas commented 2 years ago

Same issue, here, despite setting DeviceLinkThroughputLimit to the maximum value. Also have evidence that it's not a network issue as the IDS Peak Cockpit software allows capturing the full size image, on the same network.

flynneva commented 2 years ago

@danieldugas happy to help out if you can share any logs of the error.

It might also be a frame rate thing where the size of the image is limited if the frame rate is too high

danieldugas commented 2 years ago

Thanks! I'd been away last week but tried again with a different network setup and it seemed to let me use the full resolution this time without error. I still find it strange, since the error was happening in this ROS driver but not when using IDS Peak Cockpit. Maybe a combination of a network issue and a driver issue? I can't reproduce for now, if it happens again I'll save the logs and past them here.

From memory, this is the line which was failing https://github.com/SherifN/peak_cam/blob/master/src/peak_cam.cpp#L184 , with an error message which is not inside this codebase (so must be defined inside the closed-source driver), despite advertising a larger max width than the one being set.