Я пытаюсь отправить полезную нагрузку, когда вход изменяется на цифровом входном порте. Я не понимаю, как правильно это сделать .. Я использую стандартный gpio Linux, считывая значения из / sys / class / gpio ..
В node.js я использую файл fs.readfile. Но я могу прочитать значение только вручную. Как мне запустить его при изменении события, чтобы я мог отправлять полезную нагрузку каждый раз, когда входной контакт меняется с 0 на 1?





Вы пробовали этот пакет npm? https://www.npmjs.com/package/gpio
Он использует EventEmitter узла, чтобы сообщить вам, когда что-то изменилось. Вот фрагмент кода получения события, когда что-то изменилось -> https://snipp.ly/bVk3GCBy
Можете ли вы ответить на свой вопрос и опубликовать фрагмент кода, который вы использовали для его решения, на случай, если кто-то еще столкнется с этой проблемой
Мое решение:
watcher = fs.watch('./some/path'); //returns an eventEmitter
watcher.addListener('change', (event, filename) => {
if (event === 'change') {
fs.readFile('./some/path/', 'utf8', (err, data) => {
if (err) throw err;
if (data) {
//Do something
}
})
}
Спасибо. Я решил проблему. Я использовал fs.watch и добавил слушателя. Каждый раз, когда файл изменяется, я использовал функцию обратного вызова, чтобы делать все, что я хотел.