signal-control-utils

1.3.2 • Public • Published

signal-control-utils

Utilities for signal processing and control theory in Javascript

Inside this library you will find these utilities:

  1. Comparison
    Perform comparisons. Currently it has only the method "boolean near(value1, value2, diff)"

    var Comparison = require("signal-control-utils").Comparison;
    if(Comparison.near(10,11,2)) {
    console.info("10 is near 11 by less than 2!");
    }

  2. MovingAverage
    Stablish a fixed size moving average, add samples and get the current average.

    var MovingAverage = require("signal-control-utils").MovingAverage;
    var speedAverager = new MovingAverage(10, function(avg) {console.info("A new sample was added. Current average is " + avg)});
    speedAverager.addSample(12);
    speedAverager.addSample(5);
    speedAverager.addSample(21);
    console.info("Final average: " + speedAverage.getAverage());
    

  3. SchmittTrigger
    https://en.wikipedia.org/wiki/Schmitt_trigger

    var SchmittTrigger = require("signal-control-utils").SchmittTrigger;
    portSchmittTrigger = new SchmittTrigger(
    function(value) {
    console.info("Trigger activated at " + value);
    });
    portSchmittTrigger.setTriggerFixed(10);//only trigger on changes more than 10 from the last triggered value
    portSchmittTrigger.updateValue(0);//will trigger as this is the first call
    portSchmittTrigger.updateValue(4);//will not trigger
    portSchmittTrigger.updateValue(10);//will trigger
    portSchmittTrigger.updateValue(20);//will trigger
    portSchmittTrigger.updateValue(25);//will not trigger

  4. SpeedMeter
    Measures speed based on positions set during time.

    var SpeedMeter = require("signal-control-utils").SpeedMeter;
    speedMeter = new SpeedMeter();
    speedMeter.updateValue(0);//position 0
    speedMeter.updateValue(4);//position 4
    speedMeter.updateValue(20);//position 20
    speedMeter.updateValue(25);//position 25
    console.info("Average speed is " + speedMeter.getCurrentSpeed());

More

See more usage examples at the "test" directory.
A complete example of how this can be used can be found https://github.com/flaviostutz/rpi-office-toys

Readme

Keywords

none

Package Sidebar

Install

npm i signal-control-utils

Weekly Downloads

3

Version

1.3.2

License

MIT

Last publish

Collaborators

  • flaviostutz