Пример #1
0
        public void SetValue(byte fieldNum, object value)
        {
            //Type objType = value.GetType();
            switch (fieldNum)
            {
            case RecordMesg.FieldDefNum.PositionLat:
                positionLat = FitConvert.ToDegrees((int)value);     //Int32
                break;

            case RecordMesg.FieldDefNum.PositionLong:
                positionLong = FitConvert.ToDegrees((int)value);     //Int32
                break;

            case RecordMesg.FieldDefNum.Altitude:
                altitude = Convert.ToSingle(value);     //Single
                break;

            case RecordMesg.FieldDefNum.HeartRate:
                heartRate = Convert.ToByte(value);     //Byte
                break;

            case RecordMesg.FieldDefNum.Cadence:
                cadence = Convert.ToByte(value);     //Byte
                break;

            case RecordMesg.FieldDefNum.Distance:
                distance = FitConvert.ToKm((float)value);     //Single
                break;

            case RecordMesg.FieldDefNum.Speed:
                speed = FitConvert.ToKmPerHour((float)value);     //Single
                break;

            case RecordMesg.FieldDefNum.Power:
                power = Convert.ToUInt16(value);     //UInt16
                break;

            case RecordMesg.FieldDefNum.Grade:
                grade = Convert.ToSingle(value);     //Single
                break;

            case RecordMesg.FieldDefNum.Temperature:
                temperature = Convert.ToSByte(value);
                break;

            case RecordMesg.FieldDefNum.LeftRightBalance:
                leftRightBalance = Convert.ToByte(value);     //Byte
                break;

            case RecordMesg.FieldDefNum.LeftTorqueEffectiveness:
                leftTorqueEffectiveness = Convert.ToSingle(value);     //Single
                break;

            case RecordMesg.FieldDefNum.RightTorqueEffectiveness:
                rightTorqueEffectiveness = Convert.ToSingle(value);     //Single
                break;

            case RecordMesg.FieldDefNum.LeftPedalSmoothness:
                leftPedalSmoothness = Convert.ToSingle(value);     //Single
                break;

            case RecordMesg.FieldDefNum.RightPedalSmoothness:
                rightPedalSmoothness = Convert.ToSingle(value);     //Single
                break;

            case RecordMesg.FieldDefNum.Timestamp:
                timestamp = FitConvert.ToLocalDateTime((uint)value);     //UInt32
                break;

            case RecordMesg.FieldDefNum.GpsAccuracy:
            case RecordMesg.FieldDefNum.EnhancedSpeed:
            case RecordMesg.FieldDefNum.EnhancedAltitude:
            case RecordMesg.FieldDefNum.BatterySoc:
                break;

            default:
                break;
            }
        }
Пример #2
0
        public void SetValue(byte fieldNum, int index, object value)
        {
            Type objType = value.GetType();

            switch (fieldNum)
            {
            case SessionMesg.FieldDefNum.Event:
                break;

            case SessionMesg.FieldDefNum.EventType:
                break;

            case SessionMesg.FieldDefNum.StartTime:
                startTime = FitConvert.ToLocalDateTime((uint)value);     //UInt32
                break;

            case SessionMesg.FieldDefNum.StartPositionLat:
                break;

            case SessionMesg.FieldDefNum.StartPositionLong:
                break;

            case SessionMesg.FieldDefNum.Sport:
                sport = (Sport)value;
                break;

            case SessionMesg.FieldDefNum.SubSport:
                break;

            case SessionMesg.FieldDefNum.TotalElapsedTime:
                totalElapsedTime = Convert.ToSingle(value);     //Single
                break;

            case SessionMesg.FieldDefNum.TotalTimerTime:
                totalTimerTime = Convert.ToSingle(value);     //Single
                break;

            case SessionMesg.FieldDefNum.TotalDistance:
                totalDistance = Convert.ToSingle(value);     //Single
                break;

            case SessionMesg.FieldDefNum.TotalCalories:
                totalCalories = Convert.ToUInt16(value);     //UInt16
                break;

            case SessionMesg.FieldDefNum.AvgSpeed:
                avgSpeed = FitConvert.ToKmPerHour(Convert.ToSingle(value));     //Single
                break;

            case SessionMesg.FieldDefNum.MaxSpeed:
                maxSpeed = FitConvert.ToKmPerHour(Convert.ToSingle(value));     //Single
                break;

            case SessionMesg.FieldDefNum.AvgHeartRate:
                avgHeartRate = Convert.ToByte(value);     //Byte
                break;

            case SessionMesg.FieldDefNum.MaxHeartRate:
                maxHeartRate = Convert.ToByte(value);     //Byte
                break;

            case SessionMesg.FieldDefNum.AvgCadence:
                avgCadence = Convert.ToByte(value);     //Byte
                break;

            case SessionMesg.FieldDefNum.MaxCadence:
                maxCadence = Convert.ToByte(value);     //Byte
                break;

            case SessionMesg.FieldDefNum.AvgPower:
                avgPower = Convert.ToUInt16(value);     //UInt16
                break;

            case SessionMesg.FieldDefNum.MaxPower:
                maxPower = Convert.ToUInt16(value);     //UInt16
                break;

            case SessionMesg.FieldDefNum.TotalAscent:
                totalAscent = Convert.ToUInt16(value);     //UInt16
                break;

            case SessionMesg.FieldDefNum.TotalDescent:
                totalDescent = Convert.ToUInt16(value);     //UInt16
                break;

            case SessionMesg.FieldDefNum.NumLaps:
                numLaps = Convert.ToUInt16(value);     //UInt16
                break;

            case SessionMesg.FieldDefNum.NormalizedPower:
                normalizedPower = Convert.ToUInt16(value);     //UInt16
                break;

            case SessionMesg.FieldDefNum.TrainingStressScore:
                trainingStressScore = Convert.ToSingle(value);     //Single
                break;

            case SessionMesg.FieldDefNum.IntensityFactor:
                intensityFactor = Convert.ToSingle(value);     //Single
                break;

            case SessionMesg.FieldDefNum.LeftRightBalance:
                break;

            case SessionMesg.FieldDefNum.ThresholdPower:
                thresholdPower = Convert.ToUInt16(value);     //UInt16
                break;

            case SessionMesg.FieldDefNum.TotalWork:
                totalWork = Convert.ToUInt32(value);     //UInt32
                break;

            case SessionMesg.FieldDefNum.AvgAltitude:
                avgAltitude = Convert.ToSingle(value);     //Single
                break;

            case SessionMesg.FieldDefNum.MaxAltitude:
                maxAltitude = Convert.ToSingle(value);     //Single
                break;

            case SessionMesg.FieldDefNum.AvgGrade:
                avgGrade = Convert.ToSingle(value);     //Single
                break;

            case SessionMesg.FieldDefNum.MaxPosGrade:
                maxPosGrade = Convert.ToSingle(value);     //Single
                break;

            case SessionMesg.FieldDefNum.MaxNegGrade:
                maxNegGrade = Convert.ToSingle(value);     //Single
                break;

            case SessionMesg.FieldDefNum.AvgTemperature:
                avgTemperature = Convert.ToSByte(value);     //SByte
                break;

            case SessionMesg.FieldDefNum.MaxTemperature:
                maxTemperature = Convert.ToSByte(value);     //SByte
                break;

            case SessionMesg.FieldDefNum.MinHeartRate:
                minHeartRate = Convert.ToByte(value);     //Byte
                break;

            case SessionMesg.FieldDefNum.TimeInHrZone:
                float val = Convert.ToSingle(value);     //Single
                switch (index)
                {
                case 0:
                    timeInHrZone0 = val;
                    break;

                case 1:
                    timeInHrZone1 = val;
                    break;

                case 2:
                    timeInHrZone2 = val;
                    break;

                case 3:
                    timeInHrZone3 = val;
                    break;

                case 4:
                    timeInHrZone4 = val;
                    break;

                default:
                    break;
                }
                break;

            case SessionMesg.FieldDefNum.TimeInPowerZone:
                val = Convert.ToSingle(value);     //Single
                switch (index)
                {
                case 0:
                    timeInPowerZone0 = val;
                    break;

                case 1:
                    timeInPowerZone1 = val;
                    break;

                case 2:
                    timeInPowerZone2 = val;
                    break;

                case 3:
                    timeInPowerZone3 = val;
                    break;

                case 4:
                    timeInPowerZone4 = val;
                    break;

                case 5:
                    timeInPowerZone5 = val;
                    break;

                default:
                    break;
                }
                break;

            case SessionMesg.FieldDefNum.MinAltitude:
                minAltitude = Convert.ToSingle(value);     //Single
                break;

            case SessionMesg.FieldDefNum.Timestamp:
                timestamp = FitConvert.ToLocalDateTime((uint)value);     //UInt32
                break;

            case SessionMesg.FieldDefNum.EnhancedAvgSpeed:
            case SessionMesg.FieldDefNum.EnhancedMaxSpeed:
            case SessionMesg.FieldDefNum.EnhancedAvgAltitude:
            case SessionMesg.FieldDefNum.EnhancedMinAltitude:
            case SessionMesg.FieldDefNum.EnhancedMaxAltitude:
                break;

            default:
                break;
            }
        }