ADD Thread sleep
This commit is contained in:
		| @@ -174,12 +174,18 @@ void BikeSystem::temperatureTask() { | ||||
|  | ||||
|     tr_warn("Tick2 %" PRIu64, _timer.elapsed_time().count()); | ||||
|  | ||||
|     ThisThread::sleep_for( | ||||
|         std::chrono::duration_cast<std::chrono::milliseconds>( | ||||
|             kTemperatureTaskComputationTime - (_timer.elapsed_time() - taskStartTime) | ||||
|         ) | ||||
|     ); | ||||
|  | ||||
|     // simulate task computation by waiting for the required task computation time | ||||
|  | ||||
|     std::chrono::microseconds elapsedTime = std::chrono::microseconds::zero(); | ||||
|     while (elapsedTime < kTemperatureTaskComputationTime) { | ||||
|         elapsedTime = _timer.elapsed_time() - taskStartTime; | ||||
|     } | ||||
| //    std::chrono::microseconds elapsedTime = std::chrono::microseconds::zero(); | ||||
| //    while (elapsedTime < kTemperatureTaskComputationTime) { | ||||
| //        elapsedTime = _timer.elapsed_time() - taskStartTime; | ||||
| //    } | ||||
|  | ||||
|     _taskLogger.logPeriodAndExecutionTime( | ||||
|         _timer, advembsof::TaskLogger::kTemperatureTaskIndex, taskStartTime); | ||||
| @@ -206,12 +212,18 @@ void BikeSystem::displayTask1() { | ||||
|     _displayDevice.displaySpeed(_currentSpeed); | ||||
|     _displayDevice.displayDistance(_traveledDistance); | ||||
|  | ||||
|     ThisThread::sleep_for( | ||||
|         std::chrono::duration_cast<std::chrono::milliseconds>( | ||||
|             kDisplayTask1ComputationTime - (_timer.elapsed_time() - taskStartTime) | ||||
|         ) | ||||
|     ); | ||||
|  | ||||
|     // simulate task computation by waiting for the required task computation time | ||||
|  | ||||
|     std::chrono::microseconds elapsedTime = std::chrono::microseconds::zero(); | ||||
|     while (elapsedTime < kDisplayTask1ComputationTime) { | ||||
|         elapsedTime = _timer.elapsed_time() - taskStartTime; | ||||
|     } | ||||
| //    std::chrono::microseconds elapsedTime = std::chrono::microseconds::zero(); | ||||
| //    while (elapsedTime < kDisplayTask1ComputationTime) { | ||||
| //        elapsedTime = _timer.elapsed_time() - taskStartTime; | ||||
| //    } | ||||
|  | ||||
|     _taskLogger.logPeriodAndExecutionTime( | ||||
|         _timer, advembsof::TaskLogger::kDisplayTask1Index, taskStartTime); | ||||
| @@ -222,12 +234,18 @@ void BikeSystem::displayTask2() { | ||||
|  | ||||
|     _displayDevice.displayTemperature(_currentTemperature); | ||||
|  | ||||
|     ThisThread::sleep_for( | ||||
|         std::chrono::duration_cast<std::chrono::milliseconds>( | ||||
|             kDisplayTask2ComputationTime - (_timer.elapsed_time() - taskStartTime) | ||||
|         ) | ||||
|     ); | ||||
|  | ||||
|     // simulate task computation by waiting for the required task computation time | ||||
|  | ||||
|     std::chrono::microseconds elapsedTime = std::chrono::microseconds::zero(); | ||||
|     while (elapsedTime < kDisplayTask2ComputationTime) { | ||||
|         elapsedTime = _timer.elapsed_time() - taskStartTime; | ||||
|     } | ||||
| //    std::chrono::microseconds elapsedTime = std::chrono::microseconds::zero(); | ||||
| //    while (elapsedTime < kDisplayTask2ComputationTime) { | ||||
| //        elapsedTime = _timer.elapsed_time() - taskStartTime; | ||||
| //    } | ||||
|     _taskLogger.logPeriodAndExecutionTime( | ||||
|         _timer, advembsof::TaskLogger::kDisplayTask2Index, taskStartTime); | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user