signal-control-utils
v1.3.2
Published
Common utilities for signal processing and control based on NodeJS
Downloads
2
Readme
signal-control-utils
Utilities for signal processing and control theory in Javascript Inside this library you will find these utilities:
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!"); }
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());
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
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