Accessing NodeMap of a Controller

Dear all,

I’ve implemented software that accesses and captures pictures from cameras.

For a new project we need to integrate separate ethernet controllers (e.g. for lights), which are compatible with CVB. Using the discovery feature from the API I am able to find all the controllers and cameras connected to the PC. But I am not able to connect to the controllers and grab their NodeMap (to be able to set voltage for example) in the same way that I do this with the cameras:

auto device = Cvb::DeviceFactory::Open(AccessToken);
auto deviceNodeMap = device->NodeMap(CVB_LIT("Device"));

Now, already the “Open” function is throwing an error in the case of the controllers - do I have to handle the controllers differently, and if so, how would it look like?

Best Regards

I think, the device factory is mostly (or even only) for GEV devices. Is the illumination controller you are using a GEV compliant device?

Hi @eszk,

We just reproduced your issue. Unfortunately you encountered a bug.
Here is a simple workaround that you can apply to the CVB C++ headers:

Insert

guard.Reset();

at line 41 (right after the else if clause) into
%CVB%/Lib/C/cvb/_detail/detail_device_factory.hpp

We will fix this in the next release.

1 Like