Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: UAVCAN UAVCAN_Subscriber
libuavcan_drivers/linux/apps/test_clock.cpp
- Committer:
- RuslanUrya
- Date:
- 2018-04-14
- Revision:
- 0:dfe6edabb8ec
File content as of revision 0:dfe6edabb8ec:
/* * Copyright (C) 2014 Pavel Kirienko <pavel.kirienko@gmail.com> */ #include <iostream> #include <cerrno> #include <chrono> #include <uavcan_linux/uavcan_linux.hpp> static std::string systime2str(const std::chrono::system_clock::time_point& tp) { const auto tt = std::chrono::system_clock::to_time_t(tp); return std::ctime(&tt); } int main() { uavcan_linux::SystemClock clock; /* * Auto-detected clock adjustment mode */ std::cout << "Clock adjustment mode: "; switch (clock.getAdjustmentMode()) { case uavcan_linux::ClockAdjustmentMode::SystemWide: { std::cout << "SystemWide"; break; } case uavcan_linux::ClockAdjustmentMode::PerDriverPrivate: { std::cout << "PerDriverPrivate"; break; } default: { std::abort(); break; } } std::cout << std::endl; /* * Test adjustment */ double sec = 0; std::cout << "Enter system time adjustment in seconds (fractions allowed): " << std::endl; std::cin >> sec; const auto before = std::chrono::system_clock::now(); try { clock.adjustUtc(uavcan::UtcDuration::fromUSec(sec * 1e6)); } catch (const uavcan_linux::Exception& ex) { std::cout << ex.what() << std::endl; std::cout << strerror(ex.getErrno()) << std::endl; return 1; } const auto after = std::chrono::system_clock::now(); std::cout << "Time before: " << systime2str(before) << "\n" << "Time after: " << systime2str(after) << "\n" << "Millisecond diff (after - before): " << std::chrono::duration_cast<std::chrono::milliseconds>(after - before).count() << std::endl; return 0; }