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'); } };