From 1a9ac504b06de6d5218a1429d01968a31dbd9a53 Mon Sep 17 00:00:00 2001 From: Aki Date: Tue, 7 Jun 2022 17:15:31 +0200 Subject: Cleaned up sinewave example --- examples/sinewave/sinewave.cpp | 36 ++++++++++++++---------------------- 1 file changed, 14 insertions(+), 22 deletions(-) diff --git a/examples/sinewave/sinewave.cpp b/examples/sinewave/sinewave.cpp index 519ed46..398fa3c 100644 --- a/examples/sinewave/sinewave.cpp +++ b/examples/sinewave/sinewave.cpp @@ -2,47 +2,40 @@ #include #include -#include #include #include -#include #include #include -volatile sig_atomic_t keep_running {1}; +using seconds = std::chrono::duration; + + +volatile sig_atomic_t keep_running {true}; -void termination_handler(int signum) +void termination_handler(int) { keep_running = false; } -using seconds = std::chrono::duration; -using Clock = std::chrono::high_resolution_clock; - - int main(int argc, char* argv[]) { struct sigaction int_action; - int_action.sa_handler = termination_handler; sigemptyset(&int_action.sa_mask); int_action.sa_flags = 0; - sigaction(SIGINT, &int_action, NULL); - - seconds interval{ 0.01 }; - int i = 0; + sigaction(SIGINT, &int_action, nullptr); + seconds interval {0.01}; int samples = 0; - int opt = 0; - + int opt = 0; try { while ((opt = getopt(argc, argv, "n:i:")) != -1) { switch (opt) { case 'i': - interval = seconds{ std::stod(optarg) }; + interval = seconds {std::stod(optarg)}; break; case 'n': samples = std::stoi(optarg); @@ -57,14 +50,13 @@ int main(int argc, char* argv[]) std::cerr << "Invalid argument: " << ia.what() << std::endl; return 1; } - + int i = 1; while (keep_running) { - if (samples != 0 && i >= samples) break; - i++; - const auto endTime = Clock::now() + interval; + if (samples != 0 && i++ > samples) + break; + const auto end_time = std::chrono::high_resolution_clock::now() + interval; std::cout << hwd::sinewave::get_point() << std::endl; - std::this_thread::sleep_until(endTime); + std::this_thread::sleep_until(end_time); } - return 0; } -- cgit v1.1