Ensenso SDK .NET support to LabVIEW (not able to support NuGet package)

General Information

  • Product: all Ensenso series
  • Serial Number: n/a
  • Ensenso SDK Version: 4.x
  • Operating System: Windows
  • Data Attachments?

Problem / Question

For previous EnsensoSDK versions (3.x), for our LabVIEW users, we provided them several sample code with calling the .NET dll:

After upgrading to 4.0, there’s only NuGet pacakge under:
C:\Program Files\Ensenso\development\dotnet

Since LabVIEW can only include .NET api with dll, how can we use previous LabVIEW code (vi) with new SDK? Could we still provide dll file version of .NET API, but not only NuGet package?

Thanks!

Hi Jimmy,

you are correct: in SDK 4.0 we removed the CLI DLLs in favor of the NuGet package. The CLI DLLs have been deprecated since the release of SDK 3.6.

As mentioned in the linked depreciation note, the CLI DLLs use only the stable C API, so DLLs from old versions will continue to work with the listed caveats. Quoting from the linked note:

Due to the stable binary interface of the NxLib these DLLs will continue to work for the forseeable future, except that new string constants and API functions will not be available. If you want to use new NxLib functionality with the CLI interface, you can use string literals or define the necessary constants for the new node names and values yourself.

The recommended course of action is thus:

  • Either …
  • … or
    • Download and install the latest SDK release containing the CLI DLLs (which is 3.6.1621 as of this writing) from the Ensenso SDK Archive on our download page.
    • Extract the DLLs from C:\Program Files\Ensenso\development\cli\.net Framework 4.0 (if you installed the SDK at the default location).
  • Include the DLLs in your product.

Please excuse the inconvenience.

Kind regards,
Raphael

Hi Raphel,

Thanks for the detailed information. Yes for N36/N46 or C that has released and can be supported by 3.x, we can still use 3.6 version CLI dll for LabVIEW users.

However, what we worried more is for future release products, for example B57, that are only supported by 4.x. Without the DLL, it’s not possible for LabVIEW to include .NET assembly. Is it possible to ask for DLL with future 4.x software verions, and convert for these kind of special customers? Functions or parameters can be modified or need to be reviewed and checked by the customers, but if no DLL can be included, that would be a huge rework for customers to use C DLL or Python wrapper, which of course is still a possible workaround.

Thanks!

You should have no trouble using a B57 with the current DLLs from 3.6. The DLLs work for 4.0 and all upcoming versions for the foreseeable future because they only use the stable C API. We intend to keep the C API absolutely stable, so the current set of functions in the DLL will continue to work, the DLLs will just not pick up any newly introduced functions, which happens very rarely anyways, or new constants, which happens constantly, but can be worked around by defining your own strings.

If you include the DLLs from 3.6 in your product or send your users here to obtain them, then they will continue to be able to use the cameras, even with newer versions.

I hope that addresses your concern?

Got it! Sorry I misunderstood what you meant.
That would be great, thanks!