Comments (3)
Possibly related to fivdi/epoll#26 ?
@edit: I tried to keep application working and looks like after long idle time I still missing 1/2 interrupts on first data broadcast. Just like described in epoll issue linked above
from onoff.
Possibly related to fivdi/epoll#26 ?
This could very well be the case.
I have never used the Wiegand protocol, but googling says the Wiegand pulse width time is between 20 uS and 100 uS, and the pulse interval time between 200 uS and 20 mS.
If the pulse interval time for your reader is close to 200 uS, I can imagine interrupts being missed, especially at the start of the first read. For example, the JavaScript interpreter may have a lot of work to do for the initial few bits compared to later bits.
from onoff.
Refreshing timer without allocating a new object thus minimalizing time spent in the watch
function seems to help:
const Gpio = require('onoff').Gpio
var data = [];
var timeout = setTimeout(() => {
if(data.length == 0)
return;
console.log(data.join(""));
data = []
}, 30);
function handleBit(pin, val) {
pin.watch((_, value) => {
data.push(val)
timeout.refresh();
});
}
var d0 = new Gpio(23, 'in', 'rising', {debounceTimeout: 0});
var d1 = new Gpio(24, 'in', 'rising', {debounceTimeout: 0});
handleBit(d0, 0);
handleBit(d1, 1);
Initially I tried to set one interval and save date of last bit broadcasted, but timeout = Date.now()
seems to be not fast enough and still caused interrupts to be missed.
from onoff.
Related Issues (20)
- UncaughtException: EPERM: operation not permitted HOT 12
- Bug or Design? Noticed that unexport() leaves given pin in a floating state? This is typically not a best practice? HOT 7
- Just a question: Now to test of new GPIO pin assignment fails? HOT 3
- Pi hangs w/ buster when pin value changes HOT 6
- Watch is not working on a button but readSync is HOT 2
- fs.js:114 throw err; ^ Error: EBUSY: resource busy or locked, write HOT 5
- Nvidia jetsons compatibiity HOT 5
- Problem using watch function with relay HOT 10
- Initialize GPIO without change pin status. HOT 6
- GPIO not working in a worker_thread - nodejs 14.15 HOT 2
- EACCES: permission denied, open '/sys/class/gpio/export' as superuser HOT 2
- Cannot run on non Rpi system HOT 1
- TypeError: writeSync is not a function HOT 4
- Raspberry Pi GPIO control in electron App HOT 8
- My computer does not have a /sys/class/gpio directory, but has /dev/gpiochip* HOT 1
- Raspberry 4 - malloc(): corrupted top size HOT 3
- Error: EPERM: operation not permitted, write HOT 4
- Does not work with Compute Module 4. HOT 2
- Event is fired multiple times
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from onoff.