summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAki <please@ignore.pl>2022-06-07 17:15:31 +0200
committerAki <please@ignore.pl>2022-06-07 17:17:03 +0200
commit1a9ac504b06de6d5218a1429d01968a31dbd9a53 (patch)
tree8825bf2ab3412ca57d0660043c1bf76963d0abca
parent468794d920178be595d120c91bb1b6759df6321e (diff)
downloadhwd-1a9ac504b06de6d5218a1429d01968a31dbd9a53.zip
hwd-1a9ac504b06de6d5218a1429d01968a31dbd9a53.tar.gz
hwd-1a9ac504b06de6d5218a1429d01968a31dbd9a53.tar.bz2
Cleaned up sinewave example
-rw-r--r--examples/sinewave/sinewave.cpp36
1 files 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 <unistd.h>
#include <chrono>
-#include <functional>
#include <iostream>
#include <stdexcept>
-#include <string>
#include <thread>
#include <hwd.h>
-volatile sig_atomic_t keep_running {1};
+using seconds = std::chrono::duration<double>;
+
+
+volatile sig_atomic_t keep_running {true};
-void termination_handler(int signum)
+void termination_handler(int)
{
keep_running = false;
}
-using seconds = std::chrono::duration<double>;
-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;
}