fsfw/src/fsfw/timemanager/TimeStamper.cpp

24 lines
611 B
C++

#include "fsfw/timemanager/TimeStamper.h"
#include <cstring>
#include "fsfw/timemanager/Clock.h"
TimeStamper::TimeStamper(object_id_t objectId) : SystemObject(objectId) {}
ReturnValue_t TimeStamper::addTimeStamp(uint8_t* buffer, const uint8_t maxSize) {
if (maxSize < TimeStamperIF::MISSION_TIMESTAMP_SIZE) {
return returnvalue::FAILED;
}
timeval now;
Clock::getClock_timeval(&now);
CCSDSTime::CDS_short cds;
ReturnValue_t result = CCSDSTime::convertToCcsds(&cds, &now);
if (result != returnvalue::OK) {
return result;
}
std::memcpy(buffer, &cds, sizeof(cds));
return result;
}