We are using 2-3 GEV-cameras connected to the same network-switch (ie using the same subnet) but opened by different processes on Linux and the used GVCP port-range needs to be different to avoid mix-up of the image-data etc…
How can this be done with the CPP-API, eg:
auto device = Cvb::DeviceFactory::OpenCvb::GenICamDevice(devInfoIt->AccessToken(), Cvb::AcquisitionStack::GenTL);
Hi @IngFra,
this seems like an interesting application.
I’m not totally sure, whether you go a step too far here: CVB takes care about the GVCP and you don’t have to define port ranges or similar. You already mentioned the correct point: After discovery you can distinguish between two or more cameras if you analyse their access token. Like this each application only uses the camera with matching camera specifics like their mac, ip or serial number.
It would be great to give your more assistance on that, because there are solutions and experience with your kind of applications. Please feel free to contact the support at
se.support@stemmer-imaging.com or here.
Thanx for the quick response!
Maybe it is a limitation of our current library and different processes need to use different port-ranges… I guess CVB handles the ports, eg using the gvmgmtd?
Our application will use one process/thread for each camera; eg one camera is used continuously (<1FPS) but simultaneously another camera on the same network-switch/subnet may also be used shortly.
Just verify that you’re using the correct access token for the cam in the dedicated process/thread and does anything below application layer.