59 lines
3.1 KiB
JavaScript
59 lines
3.1 KiB
JavaScript
const { MeasurementContainer } = require('./index');
|
|
|
|
// Create a container
|
|
const container = new MeasurementContainer({ windowSize: 20 });
|
|
|
|
// Example 1: Setting values with chaining
|
|
console.log('--- Example 1: Setting values ---');
|
|
container.type('pressure').variant('measured').position('upstream').value(100).unit('psi');
|
|
container.type('pressure').variant('measured').position('downstream').value(95).unit('psi');
|
|
container.type('pressure').variant('measured').position('downstream').value(80);
|
|
|
|
// Example 2: Getting values with chaining
|
|
console.log('--- Example 2: Getting values ---');
|
|
const upstreamValue = container.type('pressure').variant('measured').position('upstream').getCurrentValue();
|
|
const upstreamUnit = container.type('pressure').variant('measured').position('upstream').get().unit;
|
|
console.log(`Upstream pressure: ${upstreamValue} ${upstreamUnit}`);
|
|
const downstreamValue = container.type('pressure').variant('measured').position('downstream').getCurrentValue();
|
|
const downstreamUnit = container.type('pressure').variant('measured').position('downstream').get().unit;
|
|
console.log(`Downstream pressure: ${downstreamValue} ${downstreamUnit}`);
|
|
|
|
// Example 3: Calculations using chained methods
|
|
console.log('--- Example 3: Calculations ---');
|
|
container.type('flow').variant('predicted').position('upstream').value(200).unit('gpm');
|
|
container.type('flow').variant('predicted').position('downstream').value(195).unit('gpm');
|
|
|
|
const flowAvg = container.type('flow').variant('predicted').position('upstream').getAverage();
|
|
console.log(`Average upstream flow: ${flowAvg} gpm`);
|
|
|
|
// Example 4: Getting pressure difference
|
|
console.log('--- Example 4: Difference calculations ---');
|
|
const pressureDiff = container.type('pressure').variant('measured').difference();
|
|
console.log(`Pressure difference: ${pressureDiff.value} ${pressureDiff.unit}`);
|
|
|
|
// Example 5: Adding multiple values to track history
|
|
console.log('--- Example 5: Multiple values ---');
|
|
// Add several values to upstream flow
|
|
container.type('flow').variant('measured').position('upstream')
|
|
.value(210).value(215).value(205).unit('gpm');
|
|
|
|
// Then get statistics
|
|
console.log('Flow statistics:');
|
|
console.log(`- Current: ${container.type('flow').variant('measured').position('upstream').getCurrentValue()} gpm`);
|
|
console.log(`- Average: ${container.type('flow').variant('measured').position('upstream').getAverage()} gpm`);
|
|
console.log(`- Min: ${container.type('flow').variant('measured').position('upstream').getMin()} gpm`);
|
|
console.log(`- Max: ${container.type('flow').variant('measured').position('upstream').getMax()} gpm`);
|
|
console.log(`Show all values : ${JSON.stringify(container.type('flow').variant('measured').position('upstream').getAllValues())}`);
|
|
|
|
// Example 6: Listing available data
|
|
console.log('--- Example 6: Listing available data ---');
|
|
console.log('Types:', container.getTypes());
|
|
console.log('Pressure variants:', container.type('pressure').getVariants());
|
|
console.log('Measured pressure positions:', container.type('pressure').variant('measured').getPositions());
|
|
|
|
module.exports = {
|
|
runExamples: () => {
|
|
console.log('Examples of the measurement chainable API');
|
|
}
|
|
};
|