demo/accelerometer_stream/resources/src/js/index_ui.js

var stream = AccelerometerStream()
stream.temperatureUpdateInterval = 3000
var _el = function(id) {
return document.getElementById(id)
}
/** -----------------------------
* This is called when the stream connects
*/
stream.onConnected = function() {
_el('btn-connect').value = 'Disconnect'
_el('txt-host').disabled = true
_el('txt-interval').disabled = true
_el('txt-message').disabled = false
_el('txt-temp').disabled = false
_el('txt-humid').disabled = false
stream.getUpdateInterval()
}
/** -----------------------------
* This is called when the stream disconnects
*/
stream.onDisconnected = function() {
_el('btn-connect').value = 'Connect'
_el('txt-host').disabled = false
_el('txt-interval').disabled = true
_el('txt-interval').value = ''
_el('txt-message').disabled = true
_el('txt-temp').disabled = true
_el('txt-temp').value = ''
_el('txt-humid').disabled = true
_el('txt-humid').value = ''
}
/** -----------------------------
* This is called when a new temperature reading is available
*/
stream.onTemperatureAvailable = function(data) {
_el('txt-temp').value = data.temperature.toFixed(1)
_el('txt-humid').value = data.humidity.toFixed(1)
}
/** -----------------------------
* This is called when a the device's update interval changes
*/
stream.onIntervalUpdated = function(value) {
_el('txt-interval').value = value
_el('txt-interval').disabled = false
}
/** -----------------------------
* This is called when the connect button is pressed
*/
function onConnect(isKeyEvent) {
if(isKeyEvent && !(event.key === 'Enter' || event.keyCode == 13 || event.keyCode == 10)) {
return
}
var btn = _el('btn-connect')
var txt = _el('txt-host')
if(!stream.isConnected() && btn.value !== 'Connecting ...') {
if(!txt.value) {
alert('Must provide device IP address or hostname')
return
}
txt.disabled = true
btn.value = 'Connecting ...'
stream.start(txt.value, _el('graph'))
} else {
txt.disabled = false
stream.stop()
}
}
/** -----------------------------
* This is called when the interval text input changes
*/
function onInterval() {
if(!(event.key === 'Enter' || event.keyCode == 13 || event.keyCode == 10)) {
return
}
var txt = _el('txt-interval')
if(!txt.value) {
alert('Must provide valid interval value')
return
}
function resultHandler(result, data) {
if(!result) {
alert('Failed to set update interval, err: ' + data)
}
txt.disabled = false
}
txt.disabled = true
stream.setUpdateInterval(txt.value, resultHandler)
}
/** -----------------------------
* This is called when the message text input changes
*/
function onMessage() {
if(!(event.key === 'Enter' || event.keyCode == 13 || event.keyCode == 10)) {
return
}
var txt = _el('txt-message')
if(!txt.value) {
return
}
function resultHandler(result, data) {
if(!result) {
alert('Failed to send message, err: ' + data)
}
txt.value = ""
txt.disabled = false
}
txt.disabled = true
stream.sendMessage(txt.value, resultHandler)
}
var host = window.location.host
if(host) {
_el('txt-host').value = host
}
console.log('Ready.')