BoneScript Analog Value Monitor

Watch the values on the analog input pins on a BeagleBone

by Jason Kridner

HTML

<script src="http://beagleboard.org/static/bonescript.js"></script>
<h1>BoneScript Analog Value Monitor</h1>

<p>AIN0 = <span id="ain0"></span>
</p>
<p>AIN1 = <span id="ain1"></span>
</p>
<p>AIN2 = <span id="ain2"></span>
</p>
<p>AIN3 = <span id="ain3"></span>
</p>
<p>AIN4 = <span id="ain4"></span>
</p>
<p>AIN5 = <span id="ain5"></span>
</p>
<p>AIN6 = <span id="ain6"></span>
</p>

JavaScript

setTargetAddress('beaglebone.local', {
    initialized: run
});
setTargetAddress('192.168.7.2', {
    initialized: run
});

// The demo BoneScript application within the 'run()' function
function run() {
    /*
     * Setup
     */
    var b = require('bonescript');
    var ain = [];

    for (var j = 0; j <= 6; j++) {
        for (var i = 0; i < b.bone.pinIndex.length; i++) {
            if (b.bone.pinIndex[i].name == 'AIN' + j) {
                ain[j] = b.bone.pinIndex[i].key;
            }
        }
    }

    var index = 0;
    doRead();

    function doRead() {
        b.analogRead(ain[index], onRead);
    }

    function onRead(x) {
        try {
            $('#ain' + index).html(x.value.toFixed(3));
        } catch (ex) {
            $('#ain' + index).html('XXXXX');
        }
        index++;
        if (index > 6) {
            index = 0;
            setTimeout(doRead, 100);
        } else {
            doRead();
        }
    }
}