跳到主要内容

时间戳与时间差

本模块定义了微秒级和毫秒级的时间戳类型 TimestampUSTimestampMS,用于表示系统时钟时间,并可计算两个时间点之间的时间差。适用于定时器、延迟控制、性能分析等场景。

TimestampUS

class TimestampUS {
public:
TimestampUS();
TimestampUS(uint64_t microsecond);
operator uint64_t() const;
TimeDiffUS operator-(const TimestampUS &old) const;
};

表示微秒级时间戳,支持隐式转换为 uint64_t,可计算时间差。

TimeDiffUS

class TimeDiffUS {
public:
TimeDiffUS(uint64_t diff);
operator uint64_t() const;
double ToSecond() const;
float ToSecondf() const;
uint64_t ToMicrosecond() const;
uint32_t ToMillisecond() const;
};

表示两个 TimestampUS 之间的差值,单位为微秒。支持以秒/毫秒返回差值。

TimestampMS

class TimestampMS {
public:
TimestampMS();
TimestampMS(uint32_t millisecond);
operator uint32_t() const;
TimeDiffMS operator-(TimestampMS &old);
};

表示毫秒级时间戳,支持隐式转换为 uint32_t,可计算时间差。

TimeDiffMS

class TimeDiffMS {
public:
TimeDiffMS(uint32_t diff);
operator uint32_t() const;
double ToSecond();
float ToSecondf();
uint64_t ToMicrosecond() const;
uint32_t ToMillisecond() const;
};

表示两个 TimestampMS 之间的差值,单位为毫秒。支持以秒/微秒返回差值。

溢出处理

时间差计算中已考虑时间戳回绕(如溢出),可用于嵌入式平台上的系统时钟处理。


本模块是 LibXR 时间处理的基础,可结合 IO、调度器、定时器等模块使用,确保时间相关操作的精度与可移植性。