首页 > 其他分享 >Cyber-时间相关API

Cyber-时间相关API

时间:2023-09-18 13:56:29浏览次数:49  
标签:using Time cyber API 时间 Cyber time 相关 apollo

 

/*
    时间相关API
        Time是一个用来管理时间的类;可用于当前时间的获取、耗时计算、时间转换等
        Duration相关接口,用于表示时间间隔,可以按照指定的纳秒或者秒进行初始化
        Rate接口一般用于休眠操作(会自动将频率换算成休眠时间)
        Timer可用于创建定时任务以周期性的运行,或者只运行一次
*/
#include "cyber/cyber.h" 
// #include "cyber/time/time.h"  因为cyber中已经include了time.h,所以直接写cyber.h也是可以

using apollo::cyber::Time;
using apollo::cyber::Duration;
using apollo::cyber::Rate;
using apollo::cyber::Timer;

int main(int argv, char* argv[])
{
    /////////////////////////////////////Time/////////////////////////////////////////
    // 创建时间对象(构造函数)
    Time t1; // 1970-01-01 08:00:00 原点时间
    Time t2 = Time(100); // 以纳秒为单位(可以查看Time中封装的函数重载,参数为整数时,为纳秒)
    Time t3 = Time(100.0); // 以秒为单位
    Time right_now = Time::Now(); //获取当前时刻
    Time mono_time = Time::MonoTime(); //获取系统启动到当前的时间

    // 操作时间
    AINFO << "t1 = " << t1;
    AINFO << "t2 = " << t2;
    AINFO << "t3 = " << t3;    
    AINFO << "right_now = " << right_now;
    AINFO << "mono_time = " << mono_time;

    // 时间转换
    AINFO << "t3(s): " << t3.ToSecond();
    AINFO << "t3(ms): " << t3.ToMicrosecond();
    AINFO << "t3(ns): " << t3.ToNanosecond();
    AINFO << "t3(str): " << t3.ToString();
    AINFO << "t3 is zero: " << t3.IsZero(); // 是否是原点时间
    AINFO << "t1 is zero: " << t1.IsZero();


    // 静态字段  静态函数
    AINFO  << "时间可用最小值:" << Time::MIN.toNanosecond();
    AINFO  << "时间可用最大值:" << Time::MAX.toNanosecond();

    // 通过SleepUntil休眠10s
    // 先获取当前时间
    Time rn = Time::Now();
    // 再创建10s之后的时间对象
    Time fu = Time(rn.ToSecond() + 10);
    // 再调用休眠函数
    AINFO << "休眠前:"  << rn;
    Time::SleepUntil(fu);
    AINFO << "休眠后:" << Time::Now();
    //////////////////////////////////////////////////////////////////////////////////


    /////////////////////////////////////Duration////////////////////////////////////
    
    Duration du1(100); // 100ns
    Duration du2(5.0); // 5s
    Duration du3(3, 1000000); // 3.0001s
    Duration d4;
    AINFO << "du2(s): " << du2.ToSecond();
    AINFO << "du2(ns): " << du2.ToNanosecond();
    AINFO << "is zero: " << du2.IsZero();

    // 休眠5s
    du2.Sleep(); 
    ///////////////////////////运算符重载///////////////////////////////////////////
    /*
        重载了- + += -= == != > < >= <=等运算符   //具体请实际查看类中的定义
            - + += -= 用于Time与Duration的运算
            == != > < >= <= 用于Time之间的比较
    */

   ////////////////////////////////Rate休眠//////////////////////////////////////////////
    Rate r1(0.5); // 浮点:设置频率
    Rate r2(100); // 整型:设置休眠时间,单位是ns
    Duration du(2.0);
    Rate r3(du); // 也可以以持续时间为单位


    // 调用函数,休眠
    r1.Sleep();

   ////////////////////////////////Timer定时器///////////////////////////////////////////////////

    /*
        Timer(param1, param2, param3);
        param1:设置时间间隔(循环频率),单位ns
        param2:回调函数,无参数 无返回值
        param3:是否只运行一次
            true->一次
            flase->循环执行
    */
    // 定义定时器
    Timer timer(100, cb, false);
    // 启动定时器
    time.Start();

    // 关闭定时器
    time.Stop();


    return 0;
}

 

标签:using,Time,cyber,API,时间,Cyber,time,相关,apollo
From: https://www.cnblogs.com/WTSRUVF/p/17543111.html

相关文章

  • 在k8s中,如果要启用API聚合功能,需要配置哪些参数?
    为了能够将用户自定义的API注册到master的apiserver上,需要在kube-apiserver服务中,启用下面的参数: --proxy-client-cert-file=/etc/kubernetes/pki/front-proxy-client.crt--proxy-client-key-file=/etc/kubernetes/pki/front-proxy-client.key--requestheader-allowed-na......
  • 4-微信小程序 相关知识点代码示例
    基于上篇文章的理论文本的介绍来进行相关代码的演示和例子该篇文章需注意,在微信小程序的使用时,应先熟悉里面每个文件的作用,在第二篇文章有详细记载,一般用的比较多的是wxml、wxss、ws.js对应网站的开发就是html、css、js、页面的内容及框架、页面的美化、页面的基本功能1.数据......
  • Playwright测试REST API
    Playwright不仅可以测试Web应用,也可以访问RESTAPI进行测试。考虑以下应用场景:测试服务器端API。在进行Web应用测试前,调用一些API探测服务器状态。在Web应用测试后,调用一些API服务来进行数据验证。后面的2个选项意味着可以在测试用例中组合Web和API的测试。举例测试流程如......
  • 一统天下 flutter - dart: dart 3 新特性(类相关)
    源码https://github.com/webabcd/flutter_demo作者webabcd一统天下flutter-dart:dart3新特性(类相关)示例如下:lib\dart\dart3feature2.dart/**dart3新特性(类相关)***升级dart需要先在pubspec.yaml中做如下配置,然后flutterupgrade*environment:......
  • protobuf转java文件时相关配置
    optionjava_multiple_files=true;作用和意义:此选项指示生成的Java代码将被分割成多个文件而不是一个文件。每个消息类型都会生成一个单独的Java类文件。示例:如果有两个消息类型:MessageA和MessageB,则生成的Java文件为MessageA.java和MessageB.java。optionjava_packa......
  • 二分图相关结论
    最小点覆盖:定义:选择最少的点,使得每条边都有一端被选。结论:二分图的最小点覆盖等于二分图最大匹配构造方案:从所有左侧未匹配的点出发,先走一条未匹配边,然后走一条匹配边,把所有走过的点标记,选择左边所有未标记的点和右边所有标记的点。最大独立集定义:选择最多的点,使得他们之间两......
  • Postman测试金蝶云星空Webapi【协同开发云下的本地环境】
    业务背景:基于金蝶云星空提供的接口测试,交付之前或者联调之前开发者先自测,即使纠错,提高效率。  大致流程:先请求登录接口,获得token后再请求标准webapi或者自定义接口,这样上下文才不会空。 说明: 金蝶的接口格式一般为:http://ServerIp/K3Cloud/接口命名空间.接口实现类名......
  • 学习后的顺序表(结点内容只设学号、姓名),表内采用数组,数组0位存放数据,相关的函数均按此
    #include<iostream>#include<string.h>usingnamespacestd;typedefstruct{ intid; stringname;}Node;//结点定义typedefstruct{ Node*element;//基地址(动态长度) intlength;//表长}Linklist;#defineMAXSIZE100//最大长度voidmenu();//声明菜单函数voidCreatelist(Lin......
  • wireshark流量分析相关命令
    对于大量的数据,一般先用Wireshark软件先进行,然后在用tshark或pyshark分析#过滤出所有有uri请求的响应file_datatshark-nr[pcap文件]-Y'http.request.full_uri'-Tfields-ehttp.file_datapysharkimportpysharkinput_file="./ant/Ant.pcapng"pcap=pyshar......
  • Cucumber自动化相关
    1)githubaddresshttps://github.com/shaikuba/bdd-cucumber-examples 2)Codesexample: 3)CucumberExpression: ......