Data Provider Plugins

Envision Desktop (and Envision Web) supports dynamic loading of Data Provider Plugins. A Data Provider acts as a provider of data to the server (e.g. a file reader), allowing users to create their own in-house file readers with the same ease of use and performance as the built-in readers. The provider can be plugged into applications based on CEETRON Envision.

To create your own data providers plugins, please go to Data Provider Framework

The Envision Desktop distribution includes two data provider plugins. These can be found in the DataProviderPlugins folder. Go to each data provider pages to read more about their support and features:


Using Data Providers in CEETRON Envision for Desktop

You can of course use data provider plugins in your own Envision Desktop based application.

Load a single data provider plugin using loadDataProviderPlugin() or load multiple plugins at once using loadDataProviderPluginsFromWildcard().

Once the data provider plugins are loaded, you can open the supported files just like any other file by calling cee::imp::cae::DataSourceCae::open(). If the selected file cannot be opened by any of the built-in file interfaces, it will automatically check if any of the loaded data providers plugin can support it.

A data provider plugin can have a set of reader settings. These are found in ReaderSettingsDataProvider. Use the ReaderSettings::addDataProviderSettings() to specify these options before opening a file.

An example is the HOOPS Exchange plugin that requires the path to you HOOPS Exchange libraries:

for (size_t i = 0; i < cee::imp::cae::DataSourceCae::readerSettings().dataProviderSettingsCount(); ++i)
{
    cee::imp::cae::ReaderSettingsDataProvider& settings = cee::imp::cae::DataSourceCae::readerSettings().dataProviderSettings(i);

    if (settings.providerIdString() == "ExchangeProvider")
    {
        settings.setStringValue("HOOPS_LIBRARY_PATH", "C:\\HOOPS_Exchange_Publish_2023_U1\\bin\\win64_v142");
    }
}

Data Providers Plugins in CEETRON Demo Analyzer Desktop

To use data provider plugins with CEETRON Demo Analyzer Desktop, copy the data provider plugins into the DataProviders folder in the installation. Or of you want to load them from a custom folder, you can define the environment variable CEE_DATA_PROVIDERS_FOLDER to point to the folder where your data provider plugins are located. CEETRON Demo Analyzer will load the data providers from the specified folder.

Once they are loaded they will be added to the file interfaces and you can use “Open File…” just like for the built-in interfaces.

The reader options for a data provider is shown in the Data Provider panel of the Settings dialog. Once any of this settings are edited, please reopen your case to account for this modification.

Polling of the data provider can be controlled by two settings in the Advanced panel of the Settings dialog:

  • Enable Data Provider polling

  • Show last state when a state is added


Data Provider Plugins in CEETRON Envision for Web

Data providers can be used with the RemoteModel server (UgServer).

  1. Unzip the Envision Desktop distribution archive info a folder

  2. Go to the DataProviderPlugins folder

  3. Place the cdp_*.[dll|so|dylib] and the (lib)tbb.[dll|so|dylib] in the folder of your CEETRON Envision distribution or where you find this convenient

  4. Set the environment variable CEW_UG_DATA_PROVIDER_FOLDER to point to the folder containing the shared library, for instance:

    export CEW_UG_DATA_PROVIDER_FOLDER=/path/to/dataprovider_plugins
    

The UgServer will load all data providers in the specified folder. The server will list the registered data provider plugins when a file is opened.

A data provider plugin can have a set of reader settings. For EnvisionWeb, use the RemoteModel.setReaderOptions() to specify these options before opening a file.

An example is the HOOPS Exchange plugin that requires the path to you HOOPS Exchange libraries:

this.m_model.setReaderOptions("ExchangeProvider", {
    "HOOPS_LIBRARY_PATH": "/user/HOOPS_Exchange_Publish_2023_U1/bin/linux"
});