libxr  1.0
Want to be the best embedded framework
Loading...
Searching...
No Matches
libxr_time.hpp
1#pragma once
2
3#include <cstdint>
4
5#include "libxr_assert.hpp"
6#include "libxr_def.hpp"
7
8extern uint64_t libxr_timebase_max_valid_us; // NOLINT
9extern uint32_t libxr_timebase_max_valid_ms; // NOLINT
10
11namespace LibXR
12{
13
19{
20 public:
26
32 MicrosecondTimestamp(uint64_t microsecond);
33
38 operator uint64_t() const;
39
45 {
46 public:
52 Duration(uint64_t diff);
53
58 operator uint64_t() const;
59
64 [[nodiscard]] double ToSecond() const;
65
70 [[nodiscard]] float ToSecondf() const;
71
76 [[nodiscard]] uint64_t ToMicrosecond() const;
77
82 [[nodiscard]] uint32_t ToMillisecond() const;
83
84 private:
85 uint64_t diff_;
86 };
87
94 Duration operator-(const MicrosecondTimestamp &old_microsecond) const;
95
103
104 private:
105 uint64_t microsecond_;
106};
107
113{
114 public:
116 MillisecondTimestamp(uint32_t millisecond);
117 operator uint32_t() const;
118
124 {
125 public:
131 Duration(uint32_t diff);
132
137 operator uint32_t() const;
138
143 [[nodiscard]] double ToSecond() const;
144
149 [[nodiscard]] float ToSecondf() const;
150
155 [[nodiscard]] uint32_t ToMillisecond() const;
156
161 [[nodiscard]] uint64_t ToMicrosecond() const;
162
163 private:
164 uint32_t diff_;
165 };
166
173 [[nodiscard]] Duration operator-(const MillisecondTimestamp &old_millisecond) const;
174
175 private:
176 uint32_t millisecond_;
177};
178
179} // namespace LibXR
表示微秒级时间差的类。Class representing a time difference in microseconds.
uint64_t ToMicrosecond() const
以微秒返回时间差。 Returns the time difference in microseconds.
float ToSecondf() const
以秒返回时间差(float 类型)。 Returns the time difference in seconds as a float.
Duration(uint64_t diff)
构造函数,初始化时间差。 Constructor initializing the time difference.
double ToSecond() const
以秒返回时间差(double 类型)。 Returns the time difference in seconds as a double.
uint64_t diff_
存储时间差(微秒)。Time difference stored in microseconds.
uint32_t ToMillisecond() const
以毫秒返回时间差。 Returns the time difference in milliseconds.
表示微秒级时间戳的类。Class representing a timestamp in microseconds.
MicrosecondTimestamp()
默认构造函数,初始化时间戳为 0。 Default constructor initializing the timestamp to 0.
Definition libxr_time.cpp:8
MicrosecondTimestamp & operator=(const MicrosecondTimestamp &other)
赋值运算符重载。 Assignment operator overload.
uint64_t microsecond_
以微秒存储的时间戳。Timestamp stored in microseconds.
Duration operator-(const MicrosecondTimestamp &old_microsecond) const
计算两个时间戳之间的时间差。 Computes the time difference between two timestamps.
表示毫秒级时间差的类。Class representing a time difference in milliseconds.
uint64_t ToMicrosecond() const
以微秒返回时间差。 Returns the time difference in microseconds.
uint32_t ToMillisecond() const
以毫秒返回时间差。 Returns the time difference in milliseconds.
float ToSecondf() const
以秒返回时间差(float 类型)。 Returns the time difference in seconds as a float.
uint32_t diff_
存储时间差(毫秒)。Time difference stored in milliseconds.
Duration(uint32_t diff)
构造函数,初始化时间差。 Constructor initializing the time difference.
double ToSecond() const
以秒返回时间差(double 类型)。 Returns the time difference in seconds as a double.
表示毫秒级时间戳的类。Class representing a timestamp in milliseconds.
Duration operator-(const MillisecondTimestamp &old_millisecond) const
计算两个时间戳之间的时间差。 Computes the time difference between two timestamps.
uint32_t millisecond_
以毫秒存储的时间戳。Timestamp stored in milliseconds.
LibXR 命名空间
Definition ch32_gpio.hpp:9