Files
generalFunctions/src/measurements/README.md
2025-06-10 12:36:39 +02:00

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 timestamp
  • unit(unitName) - Set the measurement unit

Getting Data

  • get() - Get the measurement object
  • getCurrentValue() - Get the most recent value
  • getAverage() - Calculate average of all values
  • getMin() - Get minimum value
  • getMax() - Get maximum value

Calculations

  • difference() - Calculate difference between upstream and downstream positions

Listing Available Data

  • getTypes() - Get all measurement types
  • listVariants() - List variants for current type
  • listPositions() - 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();