Привет, у меня есть файл шаблона для считывания данных с моего ультразвукового c датчика. Все работает нормально, но только когда я распечатываю эти данные в консоли. Проблема в том, чтобы сохранить эти данные и вернуть их из функции "watchHCSR04". Мне странно, что функция, которая вызывается один раз, регистрирует результаты каждую 1 секунду, так как этот интервал находится в самом конце. Может ли кто-нибудь объяснить код? Моя цель - иметь одну функцию, которая возвращает результаты, потому что я хочу экспортировать эту функцию в свой основной файл «app. js», а затем отправить его на мой HTML через socket.io
const Gpio = require('pigpio').Gpio;
// The number of microseconds it takes sound to travel 1cm at 20 degrees celcius
const MICROSECDONDS_PER_CM = 1e6/34321;
const trigger = new Gpio(23, {mode: Gpio.OUTPUT});
const echo = new Gpio(18, {mode: Gpio.INPUT, alert: true});
trigger.digitalWrite(0); // Make sure trigger is low
const watchHCSR04 = () => {
let startTick;
echo.on('alert', (level, tick) => {
if (level == 1) {
startTick = tick;
} else {
const endTick = tick;
const diff = (endTick >> 0) - (startTick >> 0); // Unsigned 32 bit arithmetic
console.log(diff / 2 / MICROSECDONDS_PER_CM);
Вот результат, который я хотел бы вернуть одной конкретной c функцией, которую я могу экспортировать в свой основной файл
}
});
};
watchHCSR04(); // Calling that function
// Trigger a distance measurement once per second
setInterval(() => {
trigger.trigger(10, 1); // Set trigger high for 10 microseconds
}, 1000);