2.8 KiB
2.8 KiB
Measurement System Documentation
This system provides a flexible way to store, retrieve, and analyze measurement data using a chainable API.
Basic Usage
const { MeasurementContainer } = require('./index');
const container = new MeasurementContainer({ windowSize: 20 });
// Set values
container.type('pressure').variant('measured').position('upstream').value(100).unit('psi');
// Get values
const upstreamPressure = container.type('pressure').variant('measured').position('upstream').getCurrentValue();
console.log(`Upstream pressure: ${upstreamPressure}`);
Chainable API Methods
Setting Context
type(typeName)- Set the measurement type (pressure, flow, etc.)variant(variantName)- Set the variant (measured, predicted, etc.)position(positionName)- Set the position (upstream, downstream, etc.)
Setting Data
value(val, [timestamp])- Add a value with optional timestampunit(unitName)- Set the measurement unit
Getting Data
get()- Get the measurement objectgetCurrentValue()- Get the most recent valuegetAverage()- Calculate average of all valuesgetMin()- Get minimum valuegetMax()- Get maximum value
Calculations
difference()- Calculate difference between upstream and downstream positions
Listing Available Data
getTypes()- Get all measurement typeslistVariants()- List variants for current typelistPositions()- List positions for current type and variant
Example Workflows
Setting and retrieving values
// Set a measurement
container.type('flow')
.variant('measured')
.position('upstream')
.value(120)
.unit('gpm');
// Retrieve the same measurement
const flow = container.type('flow')
.variant('measured')
.position('upstream')
.getCurrentValue();
Calculating differences
// Set upstream and downstream measurements
container.type('pressure').variant('measured').position('upstream').value(100).unit('psi');
container.type('pressure').variant('measured').position('downstream').value(95).unit('psi');
// Calculate the difference
const diff = container.type('pressure').variant('measured').difference();
console.log(`Pressure drop: ${diff.currentDiff} ${diff.unit}`);
Working with historical data
// Add multiple values
container.type('temperature')
.variant('measured')
.position('outlet')
.value(72)
.value(74)
.value(73)
.unit('F');
// Get statistics
const avg = container.type('temperature').variant('measured').position('outlet').getAverage();
const min = container.type('temperature').variant('measured').position('outlet').getMin();
const max = container.type('temperature').variant('measured').position('outlet').getMax();