Movesense, системное время в миллисекундах

Как правильно получить текущее время в миллисекундах на платформе Movesense?

В симуляторе env ftime работает нормально, но не связывается в двоичный файл dfu (неопределенная ссылка на ftime):

struct time t_start;
ftime(& t_start)

Я попробовал также этот, но у меня не было нужного времени:

struct timeval te; 
gettimeofday(&te, NULL); // get current time

Вы получили ответ на свой вопрос в моем ответе или это что-то до сих пор не ясно? Если он отвечает на ваш вопрос, отметьте его как принятый ответ, если нет, уточните, чего еще не хватает, и, возможно, я смогу помочь.

Morten 15.04.2019 11:47
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
1
265
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Помните, что вы находитесь на встроенном устройстве, и не все функции доступны для использования

gettimeofday() является частью CTIME и, вероятно, недоступна в movesense, если только вы или команда Movesense не реализовали ее для этой платформы.

Чтобы узнать время устройства, используйте время API, предоставленный командой Movesense.

При запуске модуля

whiteboard::ResourceId mTimeResourceId;
getResource("Time",mTimeResourceId); // this returns a status HTTP status code

Затем, когда вам нужно время, получите его с помощью:

asyncGet(mTimeResourceId);

Тогда ответ может быть собран таким образом.

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 года, поэтому скрыто в мс путем деления на 1000.

Также имейте в виду, что часы устанавливаются на 2015.01.01, если они не установлены, когда батарея извлечена или чип переведен в спящий режим.

Имейте в виду, что временные метки различаются для разных сервисов, мс от эпохи, нас от эпохи, секунды от эпохи и т. д.

РЕДАКТИРОВАТЬ: Как упоминал пользователь1987093 (я думаю, работающий в команде Movesense), вы также можете получить дополнительную информацию, выполнив запрос GET к /Time/Detailed, это дает текущее время UTC [нас], RelativeTime, т.е. Временная метка [мс с момента сброса] (такая же, как временная метка в службах датчиков), разрешение [тиков в секунду], а также точность [ppm]

Хороший ответ Мортен. Также /Время/Подробно дает текущее время UTC [нас], относительное время, т.е. Отметка времени [мс с момента сброса] (то же, что и метка времени в службах датчиков), разрешение [количество тактов в секунду], а также Точность [ppm].

PetriL 12.04.2019 07:35

Другие вопросы по теме