How to use camera Device Memory?

General Information

  • Product: C57-8-L
  • Ensenso SDK Version: 4.3.1057

Problem / Question

We have typically configured the camera using nxView, saved a configuration file and then loaded that file in our product. Is it possible to save the configuration to device memory and skip the step of saving to a file? I tried saving to Device Memory in nxView, but when connecting to the camera from our product the settings are gone. It seems like I have to load the parameters. Do you have any example of how to do this?

Yes, you have to load them explicitly. You can find an example in this guide: Reading/Writing Camera Parameter Files — Guides - Ensenso SDK 4.3.1057 Documentation

Thanks, that shows me how to load parameters from device memory.

Some follow up questions. When opening a device without loading any parameters, will I get the default parameters? What does nxView do when opening a camera? Even if I try to clear device memory and close the device, the settings remain when I open the device again. Can I see the device memory in the tree?

When you open a camera in the NxLib you get the default parameters as they are described in the manual.

NxView and Engage load parameters from device memory by default and ask whether you want to update them on closing.

But they also implement their own logic which precedes the ability to save parameter on the device (and also for old devices, which don’t have memory for this). They always save the parameters to a local file in $ENSENSO_INSTALL/settings/NxView and load them again by default. In NxView this is controlled by the “Load Cached Settings” checkbox while selecting a device. In Engage they are always loaded and you can restore the default settings in “Load Parameters”.

Can I see the device memory in the tree?

Not in the normal tree, but you can explicitly check them using the LoadCalibration command with Apply set to false.