首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >移动,系统时间(毫秒)

移动,系统时间(毫秒)
EN

Stack Overflow用户
提问于 2019-04-10 13:03:08
回答 1查看 296关注 0票数 0

在Movesense平台上以毫秒为单位获取当前时间的正确方法是什么?

在模拟器env中,ftime工作正常,但它没有链接到dfu二进制文件(未定义的ftime引用):

代码语言:javascript
复制
struct time t_start;
ftime(& t_start)

我也试过这个,但我没有得到一个合适的时间:

代码语言:javascript
复制
struct timeval te; 
gettimeofday(&te, NULL); // get current time
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-11 09:55:04

请记住,您是在嵌入式设备上,并不是所有的功能都可用。

gettimeofday()是CTIME的一部分,在movesense上可能不可用,除非您或Movesense团队已经为这个平台实现了它。

要获得设备时间,请使用Movesense团队提供的时间API

启动模块时

代码语言:javascript
复制
whiteboard::ResourceId mTimeResourceId;
getResource("Time",mTimeResourceId); // this returns a status HTTP status code

当你想要时间的时候,把它拿出来:

代码语言:javascript
复制
asyncGet(mTimeResourceId);

这样就可以收集响应。

代码语言:javascript
复制
void OverskuddService::onGetResult(whiteboard::RequestId requestID,
                               whiteboard::ResourceId resourceId,
                               whiteboard::Result resultCode,
                               const whiteboard::Value& rResultData)
{
    switch(resourceId.localResourceId)
    {
        case WB_RES::LOCAL::TIME::LID:
        {
          if(resultCode == wb::HTTP_CODE_OK)
          {
             int64_t currentTime = rResultData.convertTo<int64_t>();
          }
        }
    }
}

这将返回自1970年以来的uSec数,因此可以通过除以1,000来隐藏到ms中。

此外,请注意,时钟被设置为2015.01.01,如果没有设置时,电池被删除或芯片被放入睡眠模式。

请注意,对于不同的服务,不同服务的时间戳是不同的,从时代的ms,从时代的秒到时代的我们,等等。

编辑:正如user1987093 (我认为为Movesense团队工作)所提到的,您也可以通过对/ time /Detailed执行get请求来获得更多信息,这将给出当前的UTC time us,RelativeTime。时间戳ms自复位,每秒分辨率滴答,以及精确度ppm

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55613283

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档