Beispiel #1
0
 /**
  * Read lap
  */
 protected function readLap()
 {
     $Lap = new Lap($this->TrackdataLoop->difference(Trackdata\Object::TIME), $this->TrackdataLoop->difference(Trackdata\Object::DISTANCE));
     $Lap->setTrackDuration($this->TrackdataLoop->time());
     $Lap->setTrackDistance($this->TrackdataLoop->distance());
     $Lap->setHR($this->TrackdataLoop->average(Trackdata\Object::HEARTRATE), $this->TrackdataLoop->max(Trackdata\Object::HEARTRATE));
     $this->addElevationFor($Lap);
     $this->Laps->add($Lap);
 }
    /**
     * Display activity data point
     */
    protected function displayActivityDataPoint()
    {
        // TODO: Elevation?
        //$elevation = ...
        $pace = $this->TrackdataLoop->average(Model\Trackdata\Entity::PACE);
        echo '
<meta property="fitness:metrics:location:latitude"  content="' . $this->RouteLoop->latitude() . '">
<meta property="fitness:metrics:location:longitude" content="' . $this->RouteLoop->longitude() . '">
<meta property="fitness:metrics:timestamp" content="' . date('Y-m-d\\TH:i', $this->Context->activity()->timestamp() + $this->TrackdataLoop->time()) . '">
<meta property="fitness:metrics:distance:value" content="' . $this->TrackdataLoop->distance() . '">
<meta property="fitness:metrics:distance:units" content="km">
<meta property="fitness:metrics:pace:value" content="' . $pace / 1000 . '">
<meta property="fitness:metrics:pace:units" content="s/m">
<meta property="fitness:metrics:speed:value" content="' . ($pace > 0 ? 1000 / $pace : 0) . '">
<meta property="fitness:metrics:speed:units" content="m/s">';
    }
 /**
  * Add all laps to xml 
  */
 protected function setLaps()
 {
     $Starttime = $this->Context->activity()->timestamp();
     $Loop = new Trackdata\Loop($this->Context->trackdata());
     while (!$Loop->isAtEnd()) {
         $Loop->nextKilometer();
         $TimeInSeconds = $Loop->difference(Trackdata\Object::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\Object::DISTANCE));
         if ($this->Context->trackdata()->has(Trackdata\Object::HEARTRATE)) {
             $AvgBpm = $Lap->addChild('AverageHeartRateBpm');
             $AvgBpm->addChild('Value', $Loop->average(Trackdata\Object::HEARTRATE));
             $MaxBpm = $Lap->addChild('MaximumHeartRateBpm');
             $MaxBpm->addChild('Value', $Loop->max(Trackdata\Object::HEARTRATE));
         }
         $Lap->addChild('Intensity', 'Active');
         $Lap->addChild('TriggerMethod', 'Distance');
         $Lap->addChild('Track');
         // TODO: Calories?
     }
     $this->setTrack();
 }
Beispiel #4
0
 /**
  * @param \Runalyze\Model\Trackdata\Entity $Object
  * @param array $AdditionalData
  */
 protected function addTrackdataAveragesToDataFrom(Trackdata\Entity $Object, array &$AdditionalData)
 {
     $KeysToAverage = array(Activity\Entity::CADENCE => Trackdata\Entity::CADENCE, Activity\Entity::STRIDE_LENGTH => Trackdata\Entity::STRIDE_LENGTH, Activity\Entity::GROUNDCONTACT => Trackdata\Entity::GROUNDCONTACT, Activity\Entity::GROUNDCONTACT_BALANCE => Trackdata\Entity::GROUNDCONTACT_BALANCE, Activity\Entity::VERTICAL_OSCILLATION => Trackdata\Entity::VERTICAL_OSCILLATION, Activity\Entity::VERTICAL_RATIO => Trackdata\Entity::VERTICAL_RATIO, Activity\Entity::POWER => Trackdata\Entity::POWER);
     $NewLoop = new Trackdata\Loop($Object);
     $NewLoop->goToEnd();
     foreach ($KeysToAverage as $objectKey => $trackdataKey) {
         if ($Object->has($trackdataKey)) {
             $AdditionalData[$objectKey] = $NewLoop->average($trackdataKey);
         }
     }
 }
Beispiel #5
0
 /**
  * @param \Runalyze\Model\Trackdata\Object $Object
  * @param array $AdditionalData
  */
 protected function addTrackdataAveragesToDataFrom(Trackdata\Object $Object, array &$AdditionalData)
 {
     $KeysToAverage = array(Activity\Object::CADENCE => Trackdata\Object::CADENCE, Activity\Object::GROUNDCONTACT => Trackdata\Object::GROUNDCONTACT, Activity\Object::VERTICAL_OSCILLATION => Trackdata\Object::VERTICAL_OSCILLATION);
     $NewLoop = new Trackdata\Loop($Object);
     $NewLoop->goToEnd();
     foreach ($KeysToAverage as $objectKey => $trackdataKey) {
         if ($Object->has($trackdataKey)) {
             $AdditionalData[$objectKey] = $NewLoop->average($trackdataKey);
         }
     }
 }