IDS GV-5200SE-C-HQ support

Hello the Aravis community!

I would like to use Aravis to communicate with Genicam instead of relying on the manufacturers closed source SDKs and develop a new interface for each camera brand I am using.
With the current electronic shortage, it can be difficult to source cameras and we may use several brands so using an open and brand agnostic library is interesting.

Thank you a lot @Emmanuel for all your work on this project!

In order to try Aravis, I am using an IDS GV-5200SE-C-HQ Ethernet camera.
I have already managed to use it with Aravis so that’s a great start.

To enable the software trigger, I had to set it manually because the IDS software sets the TriggerSelector to ExposureStart instead of AcquisitionStart as done by Aravis. If I use the later, the camera does not send frames by itself, which is ok, but as soon as I execute a software trigger, the frames starts to come automatically as in free running mode, with a certain framerate.
Maybe we can add a special case in arv_camera_set_trigger function?

To check if I will get other “surprises”, I have run the arv-test from the git repo and I have several issues:

Found 1 device
Testing 'IDS:GV-520xSE-C'
Genicam:Load                        SUCCESS 
Genicam:Schema                      IGNORED 
Properties:SensorSizeReadout        SUCCESS 
Properties:SensorSizeCheck          IGNORED 
Properties:GainReadout              SUCCESS 
Properties:ExposureTimeReadout      SUCCESS 
MultipleAcquisitionA:BufferCheck    FAILURE 8/10
MultipleAcquisitionA:FrameRate      FAILURE 12.86 Hz (expected:10.00 Hz)
SoftwareTrigger:BufferCheck         SUCCESS 5/5
MultipleAcquisitionB:BufferCheck    FAILURE 2/10
MultipleAcquisitionB:FrameRate      FAILURE 45.00 Hz (expected:5.00 Hz)
SingleAcquisition:BufferCheck       FAILURE 
Chunks:BufferCheck                  FAILURE [ChunkEnable] [ChunkEnable_Value_ctrl] GigEVision write_memory error (generic)
GigEVision:NStreamChannels          SUCCESS 
GigEVision:StreamChannel            SUCCESS

And here is the full debug output.

I am not sure about how to interpret that output but it seems to me that some changes would be needed in Aravis to fully support this camera.

I will try to figure out how to fix the test results myself, but any help on interpreting the debug logs is welcomed.

Romain

Hi,

did you fix the problem ? I do have a IDS GV-524xCP, but I do not get any data from the camera.

# arv-test-0.8
Found 1 device
Testing ‘IDS:GV-524xCP-NIR’
Genicam:Load SUCCESS
Genicam:Schema SUCCESS Schema validation disabled
Properties:SensorSizeReadout SUCCESS
Properties:SensorSizeCheck IGNORED
Properties:GainAvailable SUCCESS
Properties:GainReadout SUCCESS
Properties:ExposureTimeAvailable SUCCESS
Properties:ExposureTimeReadout SUCCESS
MultipleAcquisitionA:BufferCheck FAILURE 0/10
MultipleAcquisitionA:FrameRate FAILURE
SingleAcquisition:BufferCheck FAILURE Buffer transfer failure
SoftwareTrigger:BufferCheck FAILURE 0/5
MultipleAcquisitionB:BufferCheck FAILURE 0/10
MultipleAcquisitionB:FrameRate FAILURE
Multipart:NoSupport SUCCESS
Chunks:NoSupport FAILURE
GigEVision:NNetworkInterfaces FAILURE 16777216
GigEVision:NStreamChannels FAILURE 16777216
GigEVision:StreamChannel SUCCESS

Thx,

Florian

Looks like legacy indianness should be forced for this camera. Try to add it here: aravis/src/arvgcport.c at 1cbf495e276783977e43547b9ff3ff2689884ebb · AravisProject/aravis · GitHub

Emmanuel.

Hi,

Yes, I am using aravis with this camera, but instead of calling arv_camera_set_trigger(), I call arv_device_set_features_from_string() with TriggerSource=Software to avoid the mentioned issue.

Indeed, that helped.

# arv-test-0.8
Found 1 device
<IDS_Imaging_Development_Systems_GmbH> <GV_524xCP_NIR>
Testing ‘IDS:GV-524xCP-NIR’
Genicam:Load SUCCESS
Genicam:Schema SUCCESS Schema validation disabled
Properties:SensorSizeReadout SUCCESS
Properties:SensorSizeCheck IGNORED
Properties:GainAvailable SUCCESS
Properties:GainReadout SUCCESS
Properties:ExposureTimeAvailable SUCCESS
Properties:ExposureTimeReadout SUCCESS
MultipleAcquisitionA:BufferCheck SUCCESS 10/10
MultipleAcquisitionA:FrameRate SUCCESS 10.00 Hz
SingleAcquisition:BufferCheck FAILURE No stream channel found
SoftwareTrigger:BufferCheck FAILURE [AcquisitionMode] [AcquisitionMode] [AcquisitionModeValueControl] GigEVision write_register error (busy)
MultipleAcquisitionB:BufferCheck FAILURE [AcquisitionMode] [AcquisitionMode] [AcquisitionModeValueControl] GigEVision write_register error (busy)
Multipart:NoSupport FAILURE [ArvGevSCCFGMultipart] [ArvGevSCCAPMultipartReg] GigEVision read_register error (busy)
Chunks:NoSupport FAILURE
GigEVision:NNetworkInterfaces FAILURE [ArvGevNumberOfNetworkInterfaces] GigEVision read_register error (busy)

** (arv-test-0.8:22510): CRITICAL **: 19:33:23.261: arv_gc_integer_get_value: assertion ‘error == NULL || *error == NULL’ failed
GigEVision:NStreamChannels FAILURE [ArvGevNumberOfNetworkInterfaces] GigEVision read_register error (busy)
GigEVision:StreamChannel SUCCESS

Did you also set the legacy endianness for your IDS camera modell ?

I run the tests separately and most of the error disappear.

# arv-test-0.8 -t SingleAcquisition*
Found 1 device
<IDS_Imaging_Development_Systems_GmbH> <GV_524xCP_NIR>
Testing ‘IDS:GV-524xCP-NIR’
SingleAcquisition:BufferCheck SUCCESS

The SoftwareTrigger test is probably related to ExposureStart

# arv-test-0.8 -t SoftwareTrigger*
Found 1 device
<IDS_Imaging_Development_Systems_GmbH> <GV_524xCP_NIR>
Testing ‘IDS:GV-524xCP-NIR’
SoftwareTrigger:BufferCheck FAILURE [AcquisitionMode] [AcquisitionMode] [AcquisitionModeValueControl] GigEVision write_register error (access-denied)

# arv-test-0.8 -t Multipart*
Found 1 device
<IDS_Imaging_Development_Systems_GmbH> <GV_524xCP_NIR>
Testing ‘IDS:GV-524xCP-NIR’
Multipart:NoSupport SUCCESS

# arv-test-0.8 -t GigEVision*
Found 1 device
<IDS_Imaging_Development_Systems_GmbH> <GV_524xCP_NIR>
Testing ‘IDS:GV-524xCP-NIR’
GigEVision:NNetworkInterfaces SUCCESS 1
GigEVision:NStreamChannels SUCCESS 1
GigEVision:StreamChannel SUCCESS

No, it was not necessary.