Newer
Older
// software object for reciprocal hardware object
// boilerplate atkapi header
const JSUnit = require('./jsunit.js')
let Input = JSUnit.Input
let Output = JSUnit.Output
let State = JSUnit.State
let Button = JSUnit.Button
// interface elements
const JSUI = require('./jsui.js')
let UI = JSUI.UI
let ATKRoute = require('./atkroute.js')
function Hardware(){
var hardware = {
description:{
name: 'hardwareUnit',
alt: 'software representation of networked hardware object',
isHardware: true
},
route: ATKRoute('0,0')
}
hardware.state = State()
var state = hardware.state
hardware.ui = UI()
var ui = hardware.ui
ui.addElement('resetButton', './ui/uiButton.js', onReset)
ui.resetButton.onload = function(){
ui.resetButton.setText('reset hardware')
}
ui.addElement('testButton', './ui/uiButton.js', onNetworkTest)
ui.testButton.onload = function(){
ui.testButton.setText('test network')
}
state.onUiChange('route', function(){
hardware.route.route = state.route
})
function onReset(){
var rstpck = new Array()
rstpck.push(128)
state.message = 'reset command issued'
hardware.route.send(rstpck)
}
function onNetworkTest(){
var tstpck = new Array()
tstpck.push(127)
state.message = 'test packet out'
hardware.route.send(tstpck)
}
hardware.route.subscribe(127, testReturn)
function testReturn(msg){
state.message = 'test OK'
console.log('test returns with msg', msg)
}
return hardware
}
module.exports = Hardware