【cartographer源码分析】系列的第一部分【common源码分析】很早就已经完毕。
现总结common文件夹涉及到的主要功能:
1,common/port.h:
- int RoundToInt(const float x); //四舍五入取整
- FastGzipString(const string& uncompressed, string* compressed); //压缩字符串string
- FastGunzipString(const string& compressed, string* decompressed); //解压缩字符串
2,common/time.h
主要功能是提供时间转换函数,UniversalTimeScaleClock类实现c++11的clock接口,以0.1us为时间精度。
定义2个别名:
using Duration = UniversalTimeScaleClock::duration;//微秒,0.1us
using Time = UniversalTimeScaleClock::time_point; //时间点
并提供多个函数方便时间转换.
- FromSeconds(double seconds); //秒数seconds转为c++的duration实例对象:
- FromMilliseconds(int64 milliseconds);
- ToSeconds(Duration duration); //将duration实例对象转为秒数s
- ToSeconds(Duration duration);
- ToUniversal(Time time);将c++的time_point对象转为TUC时间,单位是0.1us

本文总结了Cartographer源码分析的第一部分——common模块,涉及port.h、time.h、fixed_ratio_sampler.h、rate_timer.h等10个关键文件。主要内容包括时间转换、固定频率采样、速率计数、直方图计算、数学操作、智能指针封装、互斥锁、线程池和阻塞队列等实用工具类。
最低0.47元/天 解锁文章
940

被折叠的 条评论
为什么被折叠?



