network/websocket_cmd_stream/resources/src/js/index_ui.js

var cmd = GosWsCmdApi()
var _el = function(id) {
return document.getElementById(id)
}
cmd.onConnected = function() {
_el('btn').value = 'Disconnect'
_el('host').disabled = true
_el('cmd').disabled = false
}
cmd.onDisconnected = function() {
_el('btn').value = 'Connect'
_el('host').disabled = false
_el('cmd').disabled = true
}
function onConnect(isKeyEvent) {
if(isKeyEvent && !(event.key === 'Enter' || event.keyCode == 13 || event.keyCode == 10)) {
return
}
var btn = _el('btn')
var txt = _el('host')
if(!cmd.isConnected() && btn.value !== 'Connecting ...') {
if(!txt.value) {
alert('Must provide device IP address or hostname')
return
}
txt.disabled = true
btn.value = 'Connecting ...'
cmd.open(txt.value)
} else {
txt.disabled = false
cmd.close()
}
}
function onIssueCmd() {
if(!(event.key === 'Enter' || event.keyCode == 13 || event.keyCode == 10)) {
return
}
var txt = _el('cmd')
if(!txt.value) {
return
}
function cmdResponseHandler(result, data) {
if(cmd.isConnected()) {
txt.disabled = false
txt.value = ''
txt.focus()
}
cli.addResponse(result, data)
}
var s = txt.value.toLowerCase()
cmd.issue(s, cmdResponseHandler)
cli.addCmd(s)
txt.disabled = true
}
var ConsoleLogger = function() {
var context = {}
var textArea = null
context.addCmd = function(c) {
addText('> ' + c)
}
context.addResponse = function(result, data) {
if(result) {
addText(data)
} else {
addText('[ERROR] ' + data.message)
}
}
function addText(msg) {
if(!textArea) {
textArea = _el('log')
textArea.value = ''
}
textArea.value += msg + '\n'
textArea.scrollTop = textArea.scrollHeight;
}
return context
}
var cli = ConsoleLogger()
var host = window.location.host
if(host) {
el('host').value = host
}
cmd.setMsgpackLogger(console)
cmd.setLogger(console)
console.log('App ready')