// business const Reps = require('./reps.js') const Programs = require('./programs.js') // the program object: real simple, just has a description, and a 'modules' var program = Programs.new('new program') var link = Programs.loadModuleFromSource(program, './modules/hardware/atkseriallink.js') link.startUp() link.state.log = false Programs.setUI(link, 1050, 50) var mrbot = Programs.loadModuleFromSource(program, './modules/hardware/atkmrobot.js') Programs.setUI(mrbot, 600, 50) var button = Programs.loadModuleFromSource(program, './modules/ui/button.js') var delay = Programs.loadModuleFromSource(program, './modules/util/delay.js') var gate = Programs.loadModuleFromSource(program, './modules/util/gate.js') //delay.outputs.out.attach(gate.inputs.thru) //gate.outputs.out.attach(delay.inputs.thru) Programs.setUI(button, 90, 50) Programs.setUI(delay, 90, 250) Programs.setUI(gate, 90, 400) button.outputs.whammy.attach(mrbot.inputs.get_pos) button.outputs.whammy.attach(delay.inputs.thru) delay.outputs.out.attach(gate.inputs.thru) gate.outputs.out.attach(button.inputs.thru) var log = Programs.loadModuleFromSource(program, './modules/util/log.js') log.state.prefix = "jnt1:" Programs.setUI(log, 840, 520) mrbot.outputs.pos.attach(log.inputs.thru) var canvas = Programs.loadModuleFromSource(program, './modules/ui/threeCanvas.js') Programs.setUI(canvas, 600, 650) /* var stest = Programs.loadModuleFromSource(program, './modules/ui/stest.js') var rep = Reps.makeFromModule(stest) console.log('rep', rep) /* example program-like-an-api // load some modules var multiline = Programs.loadModuleFromSource(program, './modules/ui/multiline.js') var gcode = Programs.loadModuleFromSource(program, './modules/parsing/gcode.js') // attaching: always like outputs to inputs multiline.outputs.lineOut.attach(gcode.inputs.lineIn) // we can move things around here as well multiline.description.position = { left: 50, top: 50 } gcode.description.position = { left: 500, top: 100 } // if I have a public function in a module, I can also use that multiline.load('./files/dogbone.gcode') */ // UI const View = require('./views.js') View.startHttp() View.startWs() Programs.assignSocket(View.uiSocket) View.assignProgram(program)