diff --git a/examples/javascript/mma7660.js b/examples/javascript/mma7660.js index 5a9e4b52..32b419f1 100644 --- a/examples/javascript/mma7660.js +++ b/examples/javascript/mma7660.js @@ -29,9 +29,8 @@ var digitalAccelerometer = require('jsupm_mma7660'); // Instantiate an MMA7660 on I2C bus 0 var myDigitalAccelerometer = new digitalAccelerometer.MMA7660( - digitalAccelerometer.MMA7660_I2C_BUS, - digitalAccelerometer.MMA7660_DEFAULT_I2C_ADDR - ); + digitalAccelerometer.MMA7660_I2C_BUS, + digitalAccelerometer.MMA7660_DEFAULT_I2C_ADDR); // place device in standby mode so we can write registers myDigitalAccelerometer.setModeStandby(); @@ -42,28 +41,31 @@ myDigitalAccelerometer.setSampleRate(digitalAccelerometer.MMA7660.AUTOSLEEP_64); // place device into active mode myDigitalAccelerometer.setModeActive(); +var x, y, z; +x = digitalAccelerometer.new_intp(); +y = digitalAccelerometer.new_intp(); +z = digitalAccelerometer.new_intp(); + +var ax, ay, az; +ax = digitalAccelerometer.new_floatp(); +ay = digitalAccelerometer.new_floatp(); +az = digitalAccelerometer.new_floatp(); + +var outputStr; + var myInterval = setInterval(function() { - var x, y, z; - x = digitalAccelerometer.new_intp(); - y = digitalAccelerometer.new_intp(); - z = digitalAccelerometer.new_intp(); - myDigitalAccelerometer.getRawValues(x, y, z); - var outputStr = "Raw values: x = " + digitalAccelerometer.intp_value(x) + + outputStr = "Raw values: x = " + digitalAccelerometer.intp_value(x) + " y = " + digitalAccelerometer.intp_value(y) + " z = " + digitalAccelerometer.intp_value(z); console.log(outputStr); - var ax, ay, az; - ax = digitalAccelerometer.new_floatp(); - ay = digitalAccelerometer.new_floatp(); - az = digitalAccelerometer.new_floatp(); - myDigitalAccelerometer.getAcceleration(ax, ay, az); - outputStr = "Acceleration: x = " + roundNum(digitalAccelerometer.floatp_value(ax), 6) + - "g y = " + roundNum(digitalAccelerometer.floatp_value(ay), 6) + - "g z = " + roundNum(digitalAccelerometer.floatp_value(az), 6) + "g"; + outputStr = "Acceleration: x = " + + roundNum(digitalAccelerometer.floatp_value(ax), 6) + + "g y = " + roundNum(digitalAccelerometer.floatp_value(ay), 6) + + "g z = " + roundNum(digitalAccelerometer.floatp_value(az), 6) + "g"; console.log(outputStr); }, 500); @@ -71,13 +73,26 @@ var myInterval = setInterval(function() function roundNum(num, decimalPlaces) { var extraNum = (1 / (Math.pow(10, decimalPlaces) * 1000)); - return (Math.round((num + extraNum) * (Math.pow(10, decimalPlaces))) / Math.pow(10, decimalPlaces)); + return (Math.round((num + extraNum) + * (Math.pow(10, decimalPlaces))) / Math.pow(10, decimalPlaces)); } // When exiting: clear interval and print message process.on('SIGINT', function() { clearInterval(myInterval); + + // clean up memory + digitalAccelerometer.delete_intp(x); + digitalAccelerometer.delete_intp(y); + digitalAccelerometer.delete_intp(z); + + digitalAccelerometer.delete_floatp(ax); + digitalAccelerometer.delete_floatp(ay); + digitalAccelerometer.delete_floatp(az); + + myDigitalAccelerometer.setModeStandby(); + console.log("Exiting..."); process.exit(0); });