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
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.
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.
Those results don’t all point to the same issue: the frame-rate checks compare measured rate with the test’s requested rate, while buffer failures indicate missing or incomplete frames. The ChunkEnable write error is a separate GenICam feature-access problem. I’d first check the camera’s AcquisitionMode, TriggerMode, and TriggerSelector values before adding a model-specific case to arv_camera_set_trigger; the IDS XML may expose different valid combinations.