Files
PiAlive/node_modules/onoff/test/change-configuration.js
2018-05-16 10:10:23 +02:00

60 lines
1.4 KiB
JavaScript

"use strict";
const assert = require('assert');
const Gpio = require('../onoff').Gpio;
let output = new Gpio(8, 'out');
let input = new Gpio(7, 'in', 'both');
function watchWithSecondConfiguration() {
input.watch((err, value) => {
assert(!err, 'error during interrupt detection');
assert(value === 1, 'expected interrupt on rising edge');
setTimeout(() => {
input.unexport();
output.unexport();
console.log('ok - ' + __filename);
}, 10);
});
output.writeSync(1);
}
function changeConfiguration() {
input.unwatchAll();
let temp = output;
temp.setDirection('in');
output = input;
input = temp;
output.setEdge('none');
output.setDirection('out');
output.writeSync(0);
assert(output.direction() === 'out', 'expected direction to be out');
assert(output.edge() === 'none', 'expected edge to be none');
assert(output.readSync() === 0, 'expected value to be 0');
input.setEdge('rising');
assert(input.direction() === 'in', 'expected direction to be in');
assert(input.edge() === 'rising', 'expected edge to be rising');
assert(input.readSync() === 0, 'expected value to be 0');
watchWithSecondConfiguration();
}
function watchWithFirstConfiguration() {
input.watch((err, value) => {
assert(!err, 'error during interrupt detection');
assert(value === 1, 'expected interrupt on rising edge');
setTimeout(changeConfiguration, 10);
});
output.writeSync(1);
}
watchWithFirstConfiguration();