Помните, что вы используете встроенное устройство и не все функции доступны для использования.
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, если не установлены, когда аккумулятор извлечен или чип переведен в спящий режим.
Имейте в виду, что отметки времени различаются для разных сервисов: мс от эпохи, нас от эпохи, секунды от эпохи и т. Д.
РЕДАКТИРОВАТЬ: как упомянул user1987093 (я думаю, работая в команде Movesense), вы также можете получить дополнительную информацию, выполнив запрос GET в / Time / Detail, это дает текущее время UTC [нас], RelativeTime т.е. Отметка времени [мс с момента сброса] (такая же, как отметка времени в сервисах датчиков), разрешение [тиков в секунду], а также точность [ppm]
person
Morten
schedule
11.04.2019