'use strict' let Gpio try { Gpio = require('onoff').Gpio } catch (e) { console.warn('Failed including Gpio, using sim') Gpio = require('../../lib/onoffsim').Gpio } const PINS = { fwd : { pin : 4, dir : 'out' }, bwd : { pin : 5, dir : 'out' }, micro : { pin : 6, dir : 'in', edge : 'rising' }, release : { pin : 7, dir : 'in', edge : 'both' } } class Intval { constructor () { this._pin = {} this._startFrame = 0 this._declarePins() } _declarePins () { this._pin.fwd = Gpio(4, 'out') this._pin.bwd = Gpio(5, 'out') this._pin.micro = Gpio(6, 'in', 'rising') this._pin.release = Gpio(7, 'in', 'both') this._pin.release.watch(this._watchRelease) } _startFwd () { this._pin.fwd.set(1) this._pin.bwd.set(0) //start high-cpu watch } _startBwd () { this._pin.fwd.set(0) this._pin.bwd.set(1) } _watchRelease (err, val) { if (err) { console.error(err); } } frame (dir = true, time = 0, delay = 0) { if (delay !== 0) { setTimeout(function () { if (dir) { this._startFwd() } else { this._startBwd() } }, delay) } else { if (dir) { this._startFwd() } else { this._startBwd() } } } status () { return {} } } module.exports = new Intval()