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::IFilter
for filtersscgms::IDiscrete_Model
for discrete modelsscgms::IMetric
for metricsscgms::IApproximator
for approximatorsscgms::ISignal
for 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_generic
call
Interface contracts, descriptor contents and implementation details are described in respective subpages.