'use strict' const Gpio = require('onoff').Gpio let release let micro let fwd let bwd process.on('SIGINT', () => { if (fwd && fwd.writeSync) { console.log(`Setting fwd to 0`) fwd.writeSync(0) } if (bwd && bwd.writeSync) { console.log(`Setting bwd to 0`) bwd.writeSync(0) } process.exit() }) function releaseTest () { const PIN = 6 release = Gpio(PIN, 'in', 'both') console.log(`Watching input on GPIO 0${PIN}`) let saveTime = 0 let active = false release.watch((err, val) => { const NOW = +new Date() /* Button + 10K ohm resistor */ /* 1 = open */ /* 0 = closed */ if (err) { return console.error(err) } //console.log(`Release switch val: ${val}`) //console.log(`RELEASE: ${val} ${active} ${NOW} ${saveTime}`) if (val === 0) { //console.log('closed') } else if (val === 1) { //console.log('open') } if (val === 0) { //closed if ((!active && saveTime === 0) || (active && NOW - saveTime > 10 * 1000)) { saveTime = NOW active = true //maybe unncecessary } else { //saveTime = 0 //active = false } } else if (val === 1) { //open if (active) { if (NOW - saveTime > 50 && NOW - saveTime < 1000) { console.log('Started Frame') } else if (NOW - saveTime >= 1000) { console.log('Started Sequence') } //console.log(`Release closed for ${NOW - saveTime}`) saveTime = 0 active = false } } }) } function microTest () { const PIN = 5 micro = Gpio(PIN, 'in', 'both') console.log(`Watching input on GPIO 0${PIN}`) let saveTime = 0 let frameActive = true //this._state.frame.active let primed = false //this._state.primed micro.watch((err, val) => { const NOW = +new Date() if (err) { return console.error(err) } console.log(`Micro switch val: ${val}`) if (val === 0) { //console.log('closed') } else if (val === 1) { //console.log('open') } if (val === 0 && frameActive) { if (!primed) { primed = true saveTime = NOW console.log('Primed') } } else if (val === 1 && frameActive) { if (primed) { primed = false setTimeout( () => { console.log(`Stop Frame after ${NOW - saveTime}`) }, 10) } } }) } //test stepping up of 3.3V RPI logic via //Sparkfun PRT-10968 (NPC1402) function stepupTest () { const FWD = 13 // RPIO PIN 13 const BWD = 19 fwd = Gpio(FWD, 'out') bwd = Gpio(BWD, 'out') console.log(`Setting pin ${BWD} high`) fwd.writeSync(0) bwd.writeSync(1) } releaseTest() microTest() //stepupTest()