Skip to content
Snippets Groups Projects
atkunit.js 1.56 KiB
Newer Older
  • Learn to ignore specific revisions
  • Jake Read's avatar
    Jake Read committed
    // 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
    
    
    Jake Read's avatar
    Jake Read committed
    // interface elements
    const JSUI = require('./jsui.js')
    let UI = JSUI.UI 
    
    
    Jake Read's avatar
    Jake Read committed
    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 
    
    
    Jake Read's avatar
    Jake Read committed
    	state.message = 'click below to test network'
    
    Jake Read's avatar
    Jake Read committed
    	state.route = '0,0' // default  
    
    
    Jake Read's avatar
    Jake Read committed
    	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(){
    
    Jake Read's avatar
    Jake Read committed
    		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