Backend Plugin Interface Reference for the Battery Test System Web UI
- Updated2024-10-31
- 3 minute(s) read
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:
|
| 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. |
Related Information
- Migrating Long-Term Storage
Long-term storage may be saved as files on disk or in a MongoDB database. To switch storage types on a single BTS Server instance or to move storage from one BTS Server instance to another instance, do the following.