Visual Servoing Platform version 3.7.0
Loading...
Searching...
No Matches
vpTime.h
1/*
2 * ViSP, open source Visual Servoing Platform software.
3 * Copyright (C) 2005 - 2024 by Inria. All rights reserved.
4 *
5 * This software is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 * See the file LICENSE.txt at the root directory of this source
10 * distribution for additional information about the GNU GPL.
11 *
12 * For using ViSP with software that can not be combined with the GNU
13 * GPL, please contact Inria about acquiring a ViSP Professional
14 * Edition License.
15 *
16 * See https://visp.inria.fr for more information.
17 *
18 * This software was developed at:
19 * Inria Rennes - Bretagne Atlantique
20 * Campus Universitaire de Beaulieu
21 * 35042 Rennes Cedex
22 * France
23 *
24 * If you have questions regarding the use of this file, please contact
25 * Inria at visp@inria.fr
26 *
27 * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
28 * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
29 *
30 * Description:
31 * Time management and measurement.
32 */
33
38
39#ifndef VP_TIME_H
40#define VP_TIME_H
41
42#include <iostream>
43#include <string>
44#include <visp3/core/vpConfig.h>
45#if VISP_CXX_STANDARD >= VISP_CXX_STANDARD_11
46#include <chrono>
47#endif
48
49#include <visp3/core/vpException.h>
50
76
77namespace vpTime
78{
79VISP_EXPORT std::string getDateTime(const std::string &format = "%Y/%m/%d %H:%M:%S");
80VISP_EXPORT double getMinTimeForUsleepCall();
81VISP_EXPORT double measureTimeSecond();
82VISP_EXPORT double measureTimeMs();
83VISP_EXPORT double measureTimeMicros();
84VISP_EXPORT void sleepMs(double t);
85VISP_EXPORT int wait(double t0, double t);
86VISP_EXPORT void wait(double t);
87} // namespace vpTime
88
89class VISP_EXPORT vpChrono
90{
91public:
92 vpChrono();
93
94 double getDurationMicros();
95 double getDurationMs();
96 double getDurationSeconds();
97 void start(bool reset = true);
98 void stop();
99
100private:
101 double m_durationMs;
102#if (VISP_CXX_STANDARD > VISP_CXX_STANDARD_98) && (defined(_MSC_VER) && _MSC_VER >= 1900 /* VS2015 */ || !defined(_MSC_VER))
103 std::chrono::steady_clock::time_point m_lastTimePoint;
104#else
105 double m_lastTimePoint;
106#endif
107};
108END_VISP_NAMESPACE
109#endif
void start(bool reset=true)
Definition vpTime.cpp:411
void stop()
Definition vpTime.cpp:426
double getDurationSeconds()
Definition vpTime.cpp:405
double getDurationMs()
Definition vpTime.cpp:400
double getDurationMicros()
Definition vpTime.cpp:395
Time management and measurement.
Definition vpTime.h:78
VISP_EXPORT double measureTimeMs()
VISP_EXPORT int wait(double t0, double t)
VISP_EXPORT double measureTimeMicros()
VISP_EXPORT double getMinTimeForUsleepCall()
VISP_EXPORT double measureTimeSecond()
VISP_EXPORT void sleepMs(double t)
VISP_EXPORT std::string getDateTime(const std::string &format="%Y/%m/%d %H:%M:%S")