public override void FillFITStepMessage(FITMessage message) { FITMessageField durationType = message.GetExistingOrAddField((Byte)FITWorkoutStepFieldIds.DurationType); FITMessageField durationValue = message.GetExistingOrAddField((Byte)FITWorkoutStepFieldIds.DurationValue); durationType.SetEnum((Byte)FITWorkoutStepDurationTypes.Calories); durationValue.SetUInt32((UInt32)CaloriesToSpend); }
public override void FillFITStepMessage(FITMessage message) { FITMessageField durationType = message.GetExistingOrAddField((Byte)FITWorkoutStepFieldIds.DurationType); FITMessageField repeatCount = message.GetExistingOrAddField((Byte)FITWorkoutStepFieldIds.TargetValue); durationType.SetEnum((Byte)FITWorkoutStepDurationTypes.RepeatCount); repeatCount.SetUInt32((UInt32)RepetitionCount); }
public override void FillFITStepMessage(FITMessage message) { FITMessageField powerZone = message.GetExistingOrAddField((Byte)FITWorkoutStepFieldIds.TargetValue); FITMessageField minPower = message.GetExistingOrAddField((Byte)FITWorkoutStepFieldIds.TargetCustomValueLow); FITMessageField maxPower = message.GetExistingOrAddField((Byte)FITWorkoutStepFieldIds.TargetCustomValueHigh); powerZone.SetUInt32(0); if (IsPercentFTP) { minPower.SetUInt32((UInt32)MinPower); maxPower.SetUInt32((UInt32)MaxPower); } else { minPower.SetUInt32((UInt32)MinPower + 1000); maxPower.SetUInt32((UInt32)MaxPower + 1000); } }
public override void FillFITStepMessage(FITMessage message) { FITMessageField HRZone = message.GetExistingOrAddField((Byte)FITWorkoutStepFieldIds.TargetValue); FITMessageField minHR = message.GetExistingOrAddField((Byte)FITWorkoutStepFieldIds.TargetCustomValueLow); FITMessageField maxHR = message.GetExistingOrAddField((Byte)FITWorkoutStepFieldIds.TargetCustomValueHigh); bool exportAsPercentMax = Options.Instance.ExportSportTracksHeartRateAsPercentMax; float lastMaxHR = GarminProfileManager.Instance.UserProfile.GetProfileForActivity(Options.Instance.GetGarminCategory(BaseTarget.ParentStep.ParentWorkout.Category)).MaximumHeartRate; HRZone.SetUInt32(0); if (float.IsNaN(lastMaxHR)) { exportAsPercentMax = false; } if (exportAsPercentMax) { float baseMultiplier = Constants.MaxHRInPercentMax / lastMaxHR; minHR.SetUInt32((UInt32)Math.Max(Constants.MinHRInPercentMax, Math.Round(Zone.Low * baseMultiplier, 0, MidpointRounding.AwayFromZero))); maxHR.SetUInt32((UInt32)Math.Min(Constants.MaxHRInPercentMax, Math.Round(Zone.High * baseMultiplier, 0, MidpointRounding.AwayFromZero))); } else { minHR.SetUInt32((UInt32)Utils.Clamp(Zone.Low, Constants.MinHRInBPM, Constants.MaxHRInBPM) + 100); maxHR.SetUInt32((UInt32)Utils.Clamp(Zone.High, Constants.MinHRInBPM, Constants.MaxHRInBPM) + 100); } }
public override void FillFITStepMessage(FITMessage message) { FITMessageField durationType = message.GetExistingOrAddField((Byte)FITWorkoutStepFieldIds.DurationType); FITMessageField durationValue = message.GetExistingOrAddField((Byte)FITWorkoutStepFieldIds.DurationValue); durationType.SetEnum((Byte)FITWorkoutStepDurationTypes.PowerLessThan); if (IsPercentFTP) { durationValue.SetUInt32((UInt32)MinPower); } else { durationValue.SetUInt32((UInt32)MinPower + 1000); } }
public override void FillFITStepMessage(FITMessage message) { FITMessageField speedZone = message.GetExistingOrAddField((Byte)FITWorkoutStepFieldIds.TargetValue); FITMessageField minSpeed = message.GetExistingOrAddField((Byte)FITWorkoutStepFieldIds.TargetCustomValueLow); FITMessageField maxSpeed = message.GetExistingOrAddField((Byte)FITWorkoutStepFieldIds.TargetCustomValueHigh); speedZone.SetUInt32(0); minSpeed.SetUInt32((UInt32)(MinMetersPerSecond * 1000)); maxSpeed.SetUInt32((UInt32)(MaxMetersPerSecond * 1000)); }
public override void FillFITStepMessage(FITMessage message) { FITMessageField speedZone = message.GetExistingOrAddField((Byte)FITWorkoutStepFieldIds.TargetValue); FITMessageField minSpeed = message.GetExistingOrAddField((Byte)FITWorkoutStepFieldIds.TargetCustomValueLow); FITMessageField maxSpeed = message.GetExistingOrAddField((Byte)FITWorkoutStepFieldIds.TargetCustomValueHigh); speedZone.SetUInt32(0); minSpeed.SetUInt32((UInt32)(Utils.Clamp(Zone.Low, Constants.MinSpeedMetersPerSecond, Constants.MaxSpeedMetersPerSecond) * 1000)); maxSpeed.SetUInt32((UInt32)(Utils.Clamp(Zone.High, Constants.MinSpeedMetersPerSecond, Constants.MaxSpeedMetersPerSecond) * 1000)); }
public override void FillFITStepMessage(FITMessage message) { FITMessageField durationType = message.GetExistingOrAddField((Byte)FITWorkoutStepFieldIds.DurationType); FITMessageField durationValue = message.GetExistingOrAddField((Byte)FITWorkoutStepFieldIds.DurationValue); durationType.SetEnum((Byte)FITWorkoutStepDurationTypes.Distance); durationValue.SetUInt32((UInt32)GetDistanceInUnits(Length.Units.Centimeter)); }
public override void FillFITStepMessage(FITMessage message) { FITMessageField HRZone = message.GetExistingOrAddField((Byte)FITWorkoutStepFieldIds.TargetValue); HRZone.SetUInt32(Zone); }
public override void FillFITStepMessage(FITMessage message) { base.FillFITStepMessage(message); FITMessageField stepName = message.GetExistingOrAddField((Byte)FITWorkoutStepFieldIds.StepName); FITMessageField intensity = message.GetExistingOrAddField((Byte)FITWorkoutStepFieldIds.Intensity); if (!String.IsNullOrEmpty(Name)) { stepName.SetString(Name, (Byte)(Constants.MaxNameLength + 1)); } Duration.FillFITStepMessage(message); Target.FillFITStepMessage(message); intensity.SetEnum((Byte)Intensity); }
public override void FillFITStepMessage(FITMessage message) { FITMessageField HRZone = message.GetExistingOrAddField((Byte)FITWorkoutStepFieldIds.TargetValue); FITMessageField minHR = message.GetExistingOrAddField((Byte)FITWorkoutStepFieldIds.TargetCustomValueLow); FITMessageField maxHR = message.GetExistingOrAddField((Byte)FITWorkoutStepFieldIds.TargetCustomValueHigh); HRZone.SetUInt32(0); if (IsPercentMaxHeartRate) { minHR.SetUInt32((UInt32)MinHeartRate); maxHR.SetUInt32((UInt32)MaxHeartRate); } else { minHR.SetUInt32((UInt32)MinHeartRate + 100); maxHR.SetUInt32((UInt32)MaxHeartRate + 100); } }
public override void FillFITStepMessage(FITMessage message) { base.FillFITStepMessage(message); FITMessageField repeatFromStep = message.GetExistingOrAddField((Byte)FITWorkoutStepFieldIds.DurationValue); FITMessageField targetType = message.GetExistingOrAddField((Byte)FITWorkoutStepFieldIds.TargetType); repeatFromStep.SetUInt32((UInt32)(ParentWorkout.GetStepExportId(this) - StepCount)); targetType.SetEnum((Byte)FITWorkoutStepTargetTypes.NoTarget); Duration.FillFITStepMessage(message); }
public override void FillFITStepMessage(FITMessage message) { FITMessageField cadenceZone = message.GetExistingOrAddField((Byte)FITWorkoutStepFieldIds.TargetValue); FITMessageField minCadence = message.GetExistingOrAddField((Byte)FITWorkoutStepFieldIds.TargetCustomValueLow); FITMessageField maxCadence = message.GetExistingOrAddField((Byte)FITWorkoutStepFieldIds.TargetCustomValueHigh); cadenceZone.SetUInt32(0); minCadence.SetUInt32((UInt32)MinCadence); maxCadence.SetUInt32((UInt32)MaxCadence); }
public override void FillFITStepMessage(FITMessage message) { FITMessageField targetType = message.GetExistingOrAddField((Byte)FITWorkoutStepFieldIds.TargetType); targetType.SetEnum((Byte)FITWorkoutStepTargetTypes.Cadence); ConcreteTarget.FillFITStepMessage(message); }
public override void FillFITStepMessage(FITMessage message) { FITMessageField durationType = message.GetExistingOrAddField((Byte)FITWorkoutStepFieldIds.DurationType); FITMessageField repeatTime = message.GetExistingOrAddField((Byte)FITWorkoutStepFieldIds.TargetValue); durationType.SetEnum((Byte)FITWorkoutStepDurationTypes.RepeatUntilTime); repeatTime.SetUInt32((UInt32)TimeInSeconds * 1000); }
public override void FillFITStepMessage(FITMessage message) { FITMessageField durationType = message.GetExistingOrAddField((Byte)FITWorkoutStepFieldIds.DurationType); FITMessageField repeatPower = message.GetExistingOrAddField((Byte)FITWorkoutStepFieldIds.TargetValue); durationType.SetEnum((Byte)FITWorkoutStepDurationTypes.RepeatUntilHeartRateGreaterThan); if (IsPercentageMaxHeartRate) { repeatPower.SetUInt32((UInt32)MaxHeartRate); } else { repeatPower.SetUInt32((UInt32)MaxHeartRate + 100); } }
public virtual void FillFITStepMessage(FITMessage message) { FITMessageField stepId = message.GetExistingOrAddField((Byte)FITWorkoutStepFieldIds.MessageIndex); stepId.SetUInt16((UInt16)(ParentWorkout.GetStepExportId(this) - 1)); }
public override void FillFITStepMessage(FITMessage message) { FITMessageField powerZone = message.GetExistingOrAddField((Byte)FITWorkoutStepFieldIds.TargetValue); FITMessageField minPower = message.GetExistingOrAddField((Byte)FITWorkoutStepFieldIds.TargetCustomValueLow); FITMessageField maxPower = message.GetExistingOrAddField((Byte)FITWorkoutStepFieldIds.TargetCustomValueHigh); bool exportAsPercentFTP = Options.Instance.ExportSportTracksPowerAsPercentFTP; GarminCategories category = Options.Instance.GetGarminCategory(BaseTarget.ParentStep.ParentWorkout.Category); float lastFTP = 0; if (category == GarminCategories.Biking) { GarminBikingActivityProfile profile = (GarminBikingActivityProfile)GarminProfileManager.Instance.UserProfile.GetProfileForActivity(category); lastFTP = profile.FTP; } else { exportAsPercentFTP = false; } powerZone.SetUInt32(0); if (exportAsPercentFTP) { float baseMultiplier = 100.0f / lastFTP; minPower.SetUInt32((UInt32)Utils.Clamp(Math.Round(Zone.Low * baseMultiplier, 0, MidpointRounding.AwayFromZero), Constants.MinPowerInPercentFTP, Constants.MaxPowerInPercentFTP)); maxPower.SetUInt32((UInt32)Utils.Clamp(Math.Round(Zone.High * baseMultiplier, 0, MidpointRounding.AwayFromZero), Constants.MinPowerInPercentFTP, Constants.MaxPowerInPercentFTP)); } else { minPower.SetUInt32((UInt32)Utils.Clamp(Zone.Low, Constants.MinPowerInWatts, Constants.MaxPowerWorkoutInWatts) + 1000); maxPower.SetUInt32((UInt32)Utils.Clamp(Zone.High, Constants.MinPowerInWatts, Constants.MaxPowerWorkoutInWatts) + 1000); } }
public override void FillFITStepMessage(FITMessage message) { FITMessageField durationType = message.GetExistingOrAddField((Byte)FITWorkoutStepFieldIds.DurationType); durationType.SetEnum((Byte)FITWorkoutStepDurationTypes.Open); }