intval3/tests/gpio.js

86 lines
1.8 KiB
JavaScript
Raw Normal View History

2017-09-16 18:47:33 +00:00
'use strict'
const Gpio = require('onoff').Gpio
2017-09-22 04:29:31 +00:00
function releaseTest () {
2017-09-23 12:53:48 +00:00
const PIN = 5
const btn = Gpio(PIN, 'in', 'both')
console.log(`Watching input on GPIO 0${PIN}`)
2017-09-22 04:29:31 +00:00
let saveTime = 0
let active = false
btn.watch((err, val) => {
const NOW = +new Date()
/* Button + 10K ohm resistor */
/* 1 = open */
/* 0 = closed */
if (err) {
return console.error(err)
}
2017-09-22 04:29:31 +00:00
console.log(`Release switch val: ${val}`)
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
}
}
2017-09-22 04:29:31 +00:00
})
}
function microTest () {
2017-09-23 12:56:29 +00:00
const PIN = 6
2017-09-23 12:53:48 +00:00
const btn = Gpio(PIN, 'in', 'both')
console.log(`Watching input on GPIO 0${PIN}`)
2017-09-22 04:29:31 +00:00
let saveTime = 0
2017-09-23 12:53:48 +00:00
let frameActive = true //this._state.frame.active
2017-09-22 04:29:31 +00:00
let primed = false //this._state.primed
btn.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')
}
2017-09-23 12:53:48 +00:00
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)
}
2017-09-22 04:29:31 +00:00
}
})
}
2017-09-22 04:29:31 +00:00
//releaseTest()
microTest()