initial
This commit is contained in:
7
node_modules/epoll/example/interrupts-per-second/export
generated
vendored
Executable file
7
node_modules/epoll/example/interrupts-per-second/export
generated
vendored
Executable file
@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
echo 7 > /sys/class/gpio/export
|
||||
echo 8 > /sys/class/gpio/export
|
||||
echo in > /sys/class/gpio/gpio7/direction
|
||||
echo both > /sys/class/gpio/gpio7/edge
|
||||
echo out > /sys/class/gpio/gpio8/direction
|
||||
|
45
node_modules/epoll/example/interrupts-per-second/interrupts-per-second.js
generated
vendored
Normal file
45
node_modules/epoll/example/interrupts-per-second/interrupts-per-second.js
generated
vendored
Normal file
@ -0,0 +1,45 @@
|
||||
'use strict';
|
||||
|
||||
var Epoll = require('../../build/Release/epoll').Epoll,
|
||||
fs = require('fs'),
|
||||
inputfd = fs.openSync('/sys/class/gpio/gpio7/value', 'r+'),
|
||||
outputfd = fs.openSync('/sys/class/gpio/gpio8/value', 'r+'),
|
||||
value = new Buffer(1), // The three Buffers here are global
|
||||
zero = new Buffer('0'), // to improve performance.
|
||||
one = new Buffer('1'),
|
||||
count = 0,
|
||||
time;
|
||||
|
||||
// Create a new Epoll. The callback is the interrupt handler.
|
||||
var poller = new Epoll(function (err, fd, events) {
|
||||
var nextValue;
|
||||
|
||||
count += 1;
|
||||
|
||||
// Read GPIO value file. Reading also clears the interrupt.
|
||||
fs.readSync(inputfd, value, 0, 1, 0);
|
||||
|
||||
// Toggle GPIO value. This will eventually result
|
||||
// in the next interrupt being triggered.
|
||||
nextValue = value[0] === zero[0] ? one : zero;
|
||||
fs.writeSync(outputfd, nextValue, 0, nextValue.length, 0);
|
||||
});
|
||||
|
||||
time = process.hrtime(); // Get start time.
|
||||
|
||||
// Start watching for interrupts. This will trigger the first interrupt
|
||||
// as the value file already has data waiting for a read.
|
||||
poller.add(inputfd, Epoll.EPOLLPRI);
|
||||
|
||||
// Print interrupt rate to console after 5 seconds.
|
||||
setTimeout(function () {
|
||||
var rate;
|
||||
|
||||
time = process.hrtime(time); // Get run time.
|
||||
rate = Math.floor(count / (time[0] + time[1] / 1E9));
|
||||
console.log(rate + ' interrupts per second');
|
||||
|
||||
// Stop watching.
|
||||
poller.remove(inputfd).close();
|
||||
}, 5000);
|
||||
|
4
node_modules/epoll/example/interrupts-per-second/unexport
generated
vendored
Executable file
4
node_modules/epoll/example/interrupts-per-second/unexport
generated
vendored
Executable file
@ -0,0 +1,4 @@
|
||||
#!/bin/sh
|
||||
echo 7 > /sys/class/gpio/unexport
|
||||
echo 8 > /sys/class/gpio/unexport
|
||||
|
5
node_modules/epoll/example/watch-button/export
generated
vendored
Executable file
5
node_modules/epoll/example/watch-button/export
generated
vendored
Executable file
@ -0,0 +1,5 @@
|
||||
#!/bin/sh
|
||||
echo 4 > /sys/class/gpio/export
|
||||
echo in > /sys/class/gpio/gpio4/direction
|
||||
echo both > /sys/class/gpio/gpio4/edge
|
||||
|
3
node_modules/epoll/example/watch-button/unexport
generated
vendored
Executable file
3
node_modules/epoll/example/watch-button/unexport
generated
vendored
Executable file
@ -0,0 +1,3 @@
|
||||
#!/bin/sh
|
||||
echo 4 > /sys/class/gpio/unexport
|
||||
|
26
node_modules/epoll/example/watch-button/watch-button.js
generated
vendored
Normal file
26
node_modules/epoll/example/watch-button/watch-button.js
generated
vendored
Normal file
@ -0,0 +1,26 @@
|
||||
'use strict';
|
||||
|
||||
var Epoll = require('../../build/Release/epoll').Epoll,
|
||||
fs = require('fs'),
|
||||
valuefd = fs.openSync('/sys/class/gpio/gpio4/value', 'r'),
|
||||
buffer = new Buffer(1);
|
||||
|
||||
// Create a new Epoll. The callback is the interrupt handler.
|
||||
var poller = new Epoll(function (err, fd, events) {
|
||||
// Read GPIO value file. Reading also clears the interrupt.
|
||||
fs.readSync(fd, buffer, 0, 1, 0);
|
||||
console.log(buffer.toString() === '1' ? 'pressed' : 'released');
|
||||
});
|
||||
|
||||
// Read the GPIO value file before watching to
|
||||
// prevent an initial unauthentic interrupt.
|
||||
fs.readSync(valuefd, buffer, 0, 1, 0);
|
||||
|
||||
// Start watching for interrupts.
|
||||
poller.add(valuefd, Epoll.EPOLLPRI);
|
||||
|
||||
// Stop watching after 30 seconds.
|
||||
setTimeout(function () {
|
||||
poller.remove(valuefd).close();
|
||||
}, 30000);
|
||||
|
Reference in New Issue
Block a user