From 62e9ad7fa6efed8d67c4baee7d6bdaedb0d3e790 Mon Sep 17 00:00:00 2001 From: Niellune Date: Tue, 31 Mar 2026 00:14:21 +0300 Subject: [PATCH] Adjusted keylistener --- examples/keylistener.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/examples/keylistener.cpp b/examples/keylistener.cpp index 9df92e6..1546868 100644 --- a/examples/keylistener.cpp +++ b/examples/keylistener.cpp @@ -195,14 +195,24 @@ double read_diff(int file_i2c, uint8_t mux) return static_cast(value) * 4.096 / 32768.0; } +bool running = true; + +void signal_handler(int signum) { + running = false; +} + int main() { signal(SIGPIPE, SIG_IGN); // ignore SIGPIPE globally + signal(SIGINT, signal_handler); + signal(SIGTERM, signal_handler); int file_i2c = open("/dev/i2c-1", O_RDWR); if (file_i2c < 0 || ioctl(file_i2c, I2C_SLAVE, ADS1115_ADDRESS) < 0) { std::cerr << "Failed to open I2C device\n"; + std::cout << "Executing script \n"; + std::system(WIFI_SCRIPT); return 1; } @@ -213,7 +223,7 @@ int main() std::cout << "Keylistener started with fifo " << FIFO_PATH << "\n"; - while (true) + while (running) { auto loop_start = std::chrono::steady_clock::now(); double v0 = read_diff(file_i2c, 0x04);