Hi Mario,
Thank you for the clarification and for the additional analysis.
First, we would like to clarify our previous suggestion regarding the timeout.
There may have been a misunderstanding. We did not mean the timeout of individual GVSP packets, and we also did not mean that the issue is caused by the packet size itself.
Our suggestion was to increase the overall frame acquisition timeout (for example, the timeout used by WaitFor() when waiting for a complete image frame), after the GVSP stream has already been correctly configured and the camera is transmitting data.
For LNX cameras, especially when acquiring a large number of scan lines, the complete frame requires receiving and assembling a large amount of GVSP data before it can be delivered to the application. Therefore, increasing the overall acquisition timeout can be a useful verification step.
However, based on your latest Wireshark results, we agree that:
- The camera receives the trigger correctly.
- The camera starts acquisition normally.
- The GVSP stream destination is configured correctly.
- The camera transmits GVSP packets successfully.
Therefore, the previous issue related to stream destination configuration / ICMP Port Unreachable has already been resolved, and this is no longer the main focus.
Regarding the current issue:
From your capture, the GVSP packets are visible on the network, but CVB still reports:
NumPacketsReceived = 0
NumBuffersDelivered = 0
This indicates that the data reaches the host network interface, but the CVB GenTL layer does not successfully process the packets into image buffers.
Since CVB GenTL is a third-party implementation, we do not have visibility into its internal socket handling and stream processing mechanism. Therefore, we cannot determine the exact reason why CVB does not consume the received GVSP data.
Your experiments are very helpful, especially:
- Hardcoding
StreamDestinationIP and StreamPort
- Capturing GVSP traffic with Wireshark
- Testing different CVB stream modes
- Testing different CVB versions
These tests have already confirmed that the camera side is functioning correctly.
Regarding your request about using the Linux Mech-Eye SDK (libMechEyeApi.so) to access the original 2D image before profile extraction:
The Linux SDK supports camera control and acquisition of the data types exposed by the camera API.
However, the raw sensor image before the internal profile extraction process is not available through the SDK. Due to product design and data protection considerations, this raw image stream is not exposed through the API.
For camera parameter configuration, such as:
- ROI
- Exposure time
- Acquisition settings
the recommended workflow is:
- Configure the camera parameters using Mech-Eye Viewer on a Windows system.
- Save/apply the configuration to the camera.
- Run the acquisition application on Linux using the Mech-Eye SDK.
The camera will retain the configured parameters, and the Linux application can use the same configuration during acquisition.
At this stage, our understanding is:
- Camera hardware: OK
- Camera firmware: OK
- Trigger and acquisition: OK
- GigE Vision GVSP transmission: OK
- CVB GenTL receiving process: requires further investigation
- Raw sensor image access through Linux SDK: not supported
Thank you again for the detailed investigation. The Wireshark capture and experiments provide very valuable information, and we will continue to assist with the Mech-Eye SDK workflow and any further compatibility analysis.
Best regards,
Shuai