1
0
forked from fsfw/fsfw

added precision for double output

This commit is contained in:
2020-04-08 19:05:21 +02:00
parent 3dbf353385
commit da9bb97b23
2 changed files with 22 additions and 8 deletions

View File

@ -6,10 +6,11 @@
#include <framework/timemanager/Stopwatch.h>
#include <framework/serviceinterface/ServiceInterfaceStream.h>
#include <iomanip>
Stopwatch::Stopwatch(bool displayOnDestruction,
StopwatchDisplayMode displayMode):
displayOnDestruction(displayOnDestruction) {
StopwatchDisplayMode displayMode, uint8_t precision):
displayOnDestruction(displayOnDestruction), outputPrecision(precision) {
// Measures start time on initialization.
Clock::getUptime(&startTime);
}
@ -31,8 +32,9 @@ ms_double_t Stopwatch::stopPrecise() {
void Stopwatch::display() {
if(displayMode == StopwatchDisplayMode::MS_DOUBLE) {
info << "Stopwatch: Operation took " <<
elapsedTimeMsDouble << " milliseconds" << std::endl;
info << "Stopwatch: Operation took "
<< std::setprecision(outputPrecision) << elapsedTimeMsDouble
<< " milliseconds" << std::endl;
}
else {
info << "Stopwatch: Operation took " << elapsedTime.tv_sec * 1000 +
@ -56,6 +58,8 @@ StopwatchDisplayMode Stopwatch::getDisplayMode() const {
return displayMode;
}
void Stopwatch::stopInternal() {
elapsedTime = Clock::getUptime() - startTime;
elapsedTimeMsDouble = timevalOperations::toDouble(elapsedTime) * 1000.0;