Entities
The SmartCGMS architecture recognizes the following types of entities:
- filters - a base entity, maintains one isolated piece of work
- discrete models - generates signals with a fixed stepping
- signal models - generates signals as a result of another incoming signal level
- metrics - evaluates the differences between two signals
- solvers - optimizes parameters of a given model using a programmer-defined objective function
- approximators - approximates a discrete signal, calculates (or estimates) its derivation
- signals - containers for a set of signal levels
Each entity has its own GUID and descriptor. A single entity should be managed by a single shared object (dynamic library). The shared object that exported the entity descriptor
(via the do_get_*_descriptors) must also be able to create it using appropriate factory method (do_create_*).
Some entity types must implement its respective interface. If using the C++ SDK, the interface identifiers per entity type are as follows:
scgms::IFilterfor filtersscgms::IDiscrete_Modelfor discrete modelsscgms::IMetricfor metricsscgms::IApproximatorfor approximatorsscgms::ISignalfor signals- signal models are not exported as entities; instead, they only manage a collection of signals (thus a signal model has a descriptor and available signals only)
- solvers are not exported as entities; instead, they are invoked using
do_solve_genericcall
Interface contracts, descriptor contents and implementation details are described in respective subpages.