Backend Plugin Interface Reference for the Battery Test System Web UI

The Web UI includes a set of interfaces for modifying specific functionality for your battery test application.

The Web UI includes the following types of backend plugins.

Storage Plugins

All storage plugins are prioritized: for any given interface, only the storage plugin with the highest priority is selected as the active plugin. For example, only one long-term storage system may be in use through IStorageManager at a time.

Interface Name Description
IStorageManager Defines the source of the long-term storage system for the Web UI.

By default, long-term storage is MongoDB, which is a cloud-based database. If you are running a earlier version of the Web UI, long-term storage might be on a local disk of the PC on which the Battery Test System Web Application is installed. Refer to Migrating Long-Term Storage to MongoDB for information on how to migrate to MongoDB. You can also develop plugins to change the long-term storage to another location.

IEntityIndexManagerFactory Controls indexing of files in long-term storage:
  • How versions of files within long-term storage are tracked
  • The serialization format of the index
  • Where the serialized index file is stored
IEntityRecordSerializer Defines the format to which Web UI application entities are serialized into long-term storage. By default, entities are serialized to a JSON file.

You must supply a custom plugin that overrides the default plugin to choose a different serialization format.

IEntityCacheManager Controls how deserialized entities are cached in memory.

By default, deserialized entities are cached in memory. Entities are cleared automatically if memory use is high or if individual entities are not accessed in 60 minutes.

Compiler Plugins

Compiler plugins are additive.

Interface Name Description
ITestPlanAnalyzer Provides the validation logic for test plans. Use this interface for plugins that implement custom validation behavior and warnings.
ITestPlanCompiler Controls how the package of test plan assets is created.

ITestPlanCompiler is a prioritized plugin.

The default plugin for this interface produces a VeriStand system definition file and collects the TestStand sequence files selected by the test plan; the resulting output files are stored into the package zip file and set to the Lab PC for execution.

Test Plan Execution Plugins

Test plan execution plugins are additive.

Interface Name Description
IRunnableTestPlanValidator Checks that the test plan is ready to run by confirming the DUT and test station hardware are runnable.

You can implement additional hardware validation by adding plugins for this interface.

IRemoteTestPlanExecutorFactory Deploys a validated test plan to the PC and controls execution of the test plan.

By default, this plugin uses gRPC to deploy the compiled test plan and control TestStand to run the test sequence files. You can implement your own plugin and override the default behavior.

Attached Property Plugins

Attached property plugins are additive.

Interface Name Description
SerializableAttached PropertySymbol Provides a custom identifier for a property. Required for and defines the method of serialization/deserialization.
IAttachedPropertyValue RecordSerializer Defines the format to which Web UI application entities are serialized into long-term storage. By default, entities are serialized to a JSON file.

IAttachedPropertyValueRecordSerializer is a prioritized plugin.

You can modify this plugin to choose a different serialization format.

Measurement Plugins

Measurement plugins are additive.

Interface Name Description
IMeasurementAttributesRecordConverter Defines how to serialize and deserialize a novel type of measurement.

You can add new plugins for this interface to reflect new types of measurements you want to include in your application.