var rpm = 0;
var secondsBetweenPosts = 1;
var state = 0;
var postRPM = function() {
rpm = rpm *15; //Second in the minute 15 instead of 60 seems to be the trick
console.log("Current RPM reading is: " + rpm);
if(rpm > 0){
var spawn = require("child_process").spawn,child;
child = spawn("powershell.exe", ["-file","powerBI.ps1","-DATA",rpm]);
child.stdin.end();
}
rpm = 0;
};
// How often to post to your cloud
setInterval(postRPM, secondsBetweenPosts * 1000);
var randomRPM = function() {
rpm = rpm + Math.floor(Math.random() * 3) + 1;
};
// Autopilot for when testing is needed
// setInterval(randomRPM, 500);
// call every time that we need to add to the RPM count
var writeRPM = function() {
rpm++;
};
// Lis the avaible ports
var SerialPort = require('serialport');
SerialPort.list(function(err, ports) {
console.log('');
console.log('The following ports are avaiable on this machine');
console.log('------------------------------------------------');
ports.forEach(function(port) {
console.log(port.comName);
console.log(port.pnpId);
console.log(port.manufacturer);
});
});
// The arduino is on COM6 for this computer your's may be different
var port = new SerialPort('COM6');
// open errors will be emitted as an error event
port.on('error', function(err) {
console.log('Error: ', err.message);
});
port.on('open', function() {
console.log('Serial Port Opend - waiting for data...');
port.on('data', function(data) {
var valueTxt = data[0];
if (valueTxt !== state) {
if (valueTxt === 1) {
writeRPM();
}
state = valueTxt; // reset state for new data
}
});
});
Comments