initial
This commit is contained in:
46
node_modules/onoff/test/performance-interrupt.js
generated
vendored
Normal file
46
node_modules/onoff/test/performance-interrupt.js
generated
vendored
Normal file
@ -0,0 +1,46 @@
|
||||
"use strict";
|
||||
|
||||
/*
|
||||
* In this test, GPIO7 is connected to one end of a 1kΩ current limiting
|
||||
* resistor and GPIO8 is connected to the other end of the resistor. GPIO7 is
|
||||
* an interrupt generating input and GPIO8 is an output. By toggling the state
|
||||
* of the output an interrupt is generated. The output is toggled as often as
|
||||
* possible to determine the maximum rate at which interrupts can be handled.
|
||||
*/
|
||||
const Gpio = require('../onoff').Gpio;
|
||||
const input = new Gpio(7, 'in', 'both');
|
||||
const output = new Gpio(8, 'out');
|
||||
|
||||
let irqCount = 0;
|
||||
let iv;
|
||||
|
||||
// Exit handler
|
||||
function exit() {
|
||||
input.unexport();
|
||||
output.unexport();
|
||||
|
||||
clearInterval(iv);
|
||||
}
|
||||
process.on('SIGINT', exit);
|
||||
|
||||
// Interrupt handler
|
||||
input.watch((err, value) => {
|
||||
if (err) {
|
||||
exit();
|
||||
}
|
||||
|
||||
irqCount += 1;
|
||||
|
||||
// Trigger next interrupt by toggling output.
|
||||
output.writeSync(value === 0 ? 1 : 0);
|
||||
});
|
||||
|
||||
// Print number of interrupts once a second.
|
||||
iv = setInterval(() => {
|
||||
console.log(irqCount);
|
||||
irqCount = 0;
|
||||
}, 1000);
|
||||
|
||||
// Trigger first interrupt by toggling output.
|
||||
output.writeSync(output.readSync() === 0 ? 1 : 0);
|
||||
|
Reference in New Issue
Block a user