AravisProject / aravis

A vision library for genicam based cameras
GNU Lesser General Public License v2.1
872 stars 326 forks source link

Add timeout for auto packet size determination. #888

Closed feuerste closed 5 months ago

feuerste commented 6 months ago

Previously, we relied on the availability of the GevSCPSFireTestPacket feature. By adding a timeout we can now also support cameras without this feature.

This is a follow-up to #886 and, as mentioned in e30bdaf064a5e12434f448b3cc61e707260d91bd, should also be able to deal with cameras such as the DMK 23G618 which takes 300ms to complete a single fire test packet command using ArvGevSCPSFireTestPacket.

feuerste commented 6 months ago

@EmmanuelP Do you have any thoughts on this PR? Looking forward to hearing from you.

EmmanuelP commented 5 months ago

@feuerste Hi. I'm running out of time lately. I'll try to get back to aravis before the end of this week.

EmmanuelP commented 5 months ago

I don't know if the test packet is a mandatory feature of GigEVision. If I recall correctly, I have added the GevSCPSFireTestPacket presence test because one of the camera I own did not send test packets.

That means devices not supporting test packets will have an additional 1 second startup delay.

I would prefer the addition of an options parameter to arv_gv_device_auto_packet_size. Aravis will have API breaks in the transition to 0.10 stable series, so it is the right time to break this API.

ARV_GV_DEVICE_AUTO_PACKET_SIZE_OPTION_FORCE will allow to bypass the feature presence test.

feuerste commented 5 months ago

Thanks Emmanuel for your answer and thoughts. If there are cameras out in the wild which don't support test packets at all then I would rather like to keep it the way it is now and close this PR. Thanks again!