Example #1
0
 /**
  * @param int $duration [optional]
  * @param float $distance [optional]
  * @param enum $mode [optional]
  */
 public function __construct($duration = 0, $distance = 0, $mode = self::MODE_ACTIVE)
 {
     $this->setDuration($duration);
     $this->setDistance($distance);
     $this->setMode($mode);
     $this->Athlete = Context::Athlete();
 }
Example #2
0
 /**
  * Set manipulation facotr
  */
 protected function setManipulationFactor()
 {
     $this->Factor = 1;
     $this->HRmax = Configuration::Data()->HRmax();
     $this->HRrest = Configuration::Data()->HRrest();
     if (\Runalyze\Context::Athlete()->knowsMaximalHeartRate() && !Configuration::General()->heartRateUnit()->isBPM()) {
         if (\Runalyze\Context::Athlete()->knowsRestingHeartRate() && Configuration::General()->heartRateUnit()->isHRreserve()) {
             $this->Factor = false;
         } else {
             $this->Factor = 100 / Configuration::Data()->HRmax();
         }
     }
 }
Example #3
0
 /**
  * Calculate trimp
  * @return int
  */
 public function calculateTrimp()
 {
     if ($this->knowsTrackdata() && $this->Trackdata->has(Model\Trackdata\Object::HEARTRATE)) {
         $Collector = new Trimp\DataCollector($this->Trackdata->heartRate(), $this->Trackdata->time());
         $data = $Collector->result();
     } elseif ($this->Activity->hrAvg() > 0) {
         $data = array($this->Activity->hrAvg() => $this->Activity->duration());
     } else {
         $Factory = Context::Factory();
         if ($this->Activity->typeid() > 0) {
             $data = array($Factory->type($this->Activity->typeid())->hrAvg() => $this->Activity->duration());
         } else {
             $data = array($Factory->sport($this->Activity->sportid())->avgHR() => $this->Activity->duration());
         }
     }
     $Athlete = Context::Athlete();
     $Calculator = new Trimp\Calculator($Athlete, $data);
     return round($Calculator->value());
 }
Example #4
0
 /**
  * Average heart rate
  * @return \Runalyze\Activity\HeartRate
  */
 public function hrAvg()
 {
     return $this->object($this->HRavg, function ($Activity) {
         return new HeartRate($Activity->hrAvg(), GeneralContext::Athlete());
     });
 }