/** * Go to end and read last lap */ protected function finish() { $this->TrackdataLoop->goToEnd(); if (!is_null($this->RouteLoop)) { $this->RouteLoop->goToEnd(); } $this->readLap(); }
/** * Add all laps to xml */ protected function setLaps() { $Starttime = $this->Context->activity()->timestamp(); $Loop = new Trackdata\Loop($this->Context->trackdata()); while (!$Loop->isAtEnd()) { if ($this->TrackdataHas[Trackdata\Entity::DISTANCE]) { $Loop->nextKilometer(); } else { $Loop->goToEnd(); } $TimeInSeconds = $Loop->difference(Trackdata\Entity::TIME); $Lap = $this->Activity->addChild('Lap'); $Lap->addAttribute('StartTime', $this->timeToString($Starttime + $Loop->time() - $TimeInSeconds)); $Lap->addChild('TotalTimeSeconds', $TimeInSeconds); $Lap->addChild('DistanceMeters', 1000 * $Loop->difference(Trackdata\Entity::DISTANCE)); if ($this->TrackdataHas[Trackdata\Entity::HEARTRATE]) { $Lap->addChild('AverageHeartRateBpm')->addChild('Value', $Loop->average(Trackdata\Entity::HEARTRATE)); $Lap->addChild('MaximumHeartRateBpm')->addChild('Value', $Loop->max(Trackdata\Entity::HEARTRATE)); } $Lap->addChild('Intensity', 'Active'); $Lap->addChild('TriggerMethod', 'Distance'); $Lap->addChild('Track'); // TODO: Calories? } $this->setTrack(); }