12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- //
- // Created by zx on 2021/5/19.
- //
- #ifndef ROBOT_CONTROL_FEATURE_EXTRA_SRC_TICK_HPP_
- #define ROBOT_CONTROL_FEATURE_EXTRA_SRC_TICK_HPP_
- #include <chrono>
- class Tick
- {
- public:
- Tick()
- {
- m_start=std::chrono::steady_clock::now();
- m_last_tick=m_start;
- }
- Tick(const Tick& tick)= default;
- Tick& operator=(const Tick& tick)= default;
- double tic()
- {
- auto tic=std::chrono::steady_clock::now();
- m_last_tick=tic;
- auto duration = std::chrono::duration_cast<std::chrono::microseconds>(tic - m_start);
- return double(duration.count()) * std::chrono::microseconds::period::num /
- std::chrono::microseconds::period::den;
- }
- double tic_relatively()
- {
- auto tic=std::chrono::steady_clock::now();
- auto duration = std::chrono::duration_cast<std::chrono::microseconds>(tic - m_last_tick);
- m_last_tick=tic;
- return double(duration.count()) * std::chrono::microseconds::period::num /
- std::chrono::microseconds::period::den;
- }
- private:
- std::chrono::steady_clock::time_point m_start;
- std::chrono::steady_clock::time_point m_last_tick;
- };
- #endif //ROBOT_CONTROL_FEATURE_EXTRA_SRC_TICK_HPP_
|