Ich versuche, mein eigenes Modul für die GPIO-Pins eines Raspberry Pi zu erstellen, aber ich möchte .on('something', function() { })
Ereignisse erhalten, wenn sich etwas geändert hat (wie eine Taste gedrückt/losgelassen wird).node.js Module - EventEmitter
Das Python-Skript sendet alle 0,01 Sekunden einen Wert wie wahr oder falsch.
module.js
var PythonShell = require('python-shell');
module.exports = {
switch_live: function(pin) {
var status = false;
this.get = (function(){
return status;
});
var options = {
mode: 'text',
args: [pin],
pythonOptions: ['-u']
};
var pyshell = new PythonShell('./data/switch_loop.py', options);
pyshell.on('message', function(message) {
if (message == 'false') {
if (status) {
// EMIT: button released
}
status = false;
} else {
if (!status) {
// EMIT: button pressed
}
status = true;
}
});
return this.status;
},
some_other_funcs: function(pin) {
// ...
}
}
app.js
var module = require('./module.js');
var button = new module.switch_live(10);
Das Modul können Sie den Status der Taste zeigen:
// get status of button
var status = button.get(); // returns "true" or "false"
Aber ich möchte etwas wie folgt aus:
button.on('pressed', function() {
// call this function every time when button is pressed
});
button.on('released', function() {
// call this function every time when button is released
});
Danke :)
EDIT: Ich habe keine Lösung gefunden, weil ich die Funktionen innerhalb der "module.exports" brauche.
Danke, dass mir geholfen :) – user2850375
@ user2850375 sicher. Vergessen Sie nicht, die Antwort als "akzeptiert" zu markieren! –
Ich schrieb eine andere Antwort, um meine Lösung zu teilen. Ich habe deine Antwort gewählt :) – user2850375