public void Test1Second()
        {
            TcxTrackpoint c = new TcxTrackpoint();

            c.IsTimeDefined           = true;
            c.Time                    = new DateTime(2017, 07, 01, 11, 10, 10);
            c.IsAltitudeMetersDefined = false;

            TcxTrackpoint p = new TcxTrackpoint();

            p.IsTimeDefined           = true;
            p.Time                    = new DateTime(2017, 07, 01, 11, 10, 09);
            p.IsAltitudeMetersDefined = true;
            p.AltitudeMeters          = 100;

            TcxTrackpoint n = new TcxTrackpoint();

            n.IsTimeDefined           = true;
            n.Time                    = new DateTime(2017, 07, 01, 11, 10, 11);
            n.IsAltitudeMetersDefined = true;
            n.AltitudeMeters          = 103;

            List <TcxTrackpoint> next = new List <TcxTrackpoint>();

            next.Add(n);
            var result = c.CombineTrackpoint(p, next);

            Assert.AreEqual(101, result.AltitudeMeters, 0.5);
        }
示例#2
0
        public static List <TcxActivity> Convert(string xmlFilePath)
        {
            List <TcxActivity> result = new List <TcxActivity>();

            string      xmlContent = File.ReadAllText(xmlFilePath);
            XmlDocument doc        = new XmlDocument();

            doc.LoadXml(xmlContent);    // full document
            if (doc.HasChildNodes)
            {
                var trainingCenterDatabase = doc.GetElementsByTagName("TrainingCenterDatabase");
                foreach (XmlNode trainingCenterDatabaseNode in trainingCenterDatabase)
                {
                    var activities = GetChildren(trainingCenterDatabaseNode, "Activities");
                    foreach (XmlNode act in activities)
                    {
                        var activitiesChildren = GetChildren(act, "Activity");
                        foreach (XmlNode activity in activitiesChildren)
                        {
                            TcxActivity tcxAct = new TcxActivity();

                            var sport    = activity.Attributes["Sport"];
                            var idChild  = GetChildren(activity, "Id");
                            var lapChild = GetChildren(activity, "Lap");

                            tcxAct.Id    = GetChildValue(activity, "Id");
                            tcxAct.Sport = sport.Value;
                            tcxAct.Laps  = new List <TcxLap>();

                            foreach (XmlNode lapNode in lapChild)
                            {
                                TcxLap lap = new TcxLap();
                                lap.StartTime         = lapNode.Attributes["StartTime"].Value;
                                lap.Track             = new TcxTrack();
                                lap.Track.TrackPoints = new List <TcxTrackpoint>();

                                var trackNodes = GetChildren(lapNode, "Track");
                                foreach (var trackNode in trackNodes)
                                {
                                    var trackPointsNodes = GetChildren(trackNode, "Trackpoint");
                                    foreach (var trackPointNode in trackPointsNodes)
                                    {
                                        TcxTrackpoint point = LoadTrackpoint(trackPointNode);

                                        lap.Track.TrackPoints.Add(point);
                                    }
                                }

                                tcxAct.Laps.Add(lap);
                            }

                            result.Add(tcxAct);
                        }
                    }
                }
            }


            return(result);
        }
示例#3
0
        public void TestNextMoreDiff()
        {
            TcxTrackpoint c = new TcxTrackpoint();

            c.IsTimeDefined     = true;
            c.Time              = new DateTime(2017, 07, 01, 11, 10, 10);
            c.IsPositionDefined = false;

            TcxTrackpoint p = new TcxTrackpoint();

            p.IsTimeDefined     = true;
            p.Time              = new DateTime(2017, 07, 01, 11, 10, 09);
            p.IsPositionDefined = true;
            p.Position          = new TcxPosition(51.085341, 17.043303);

            TcxTrackpoint n = new TcxTrackpoint();

            n.IsTimeDefined     = true;
            n.Time              = new DateTime(2017, 07, 01, 11, 10, 15);
            n.IsPositionDefined = true;
            n.Position          = new TcxPosition(51.085286, 17.043645);

            List <TcxTrackpoint> next = new List <TcxTrackpoint>();

            next.Add(n);
            var result = c.CombineTrackpoint(p, next);

            double lat = 51.0853318;
            double lon = 17.04336;

            Assert.AreEqual(lat, result.Position.Latitude, 0.000001);
            Assert.AreEqual(lon, result.Position.Longitude, 0.000001);
        }
示例#4
0
        private void button1_Click_1(object sender, EventArgs e)
        {
            TcxTrackpoint c = new TcxTrackpoint();

            c.IsTimeDefined     = true;
            c.Time              = new DateTime(2017, 07, 01, 11, 10, 10);
            c.IsPositionDefined = false;

            TcxTrackpoint p = new TcxTrackpoint();

            c.IsTimeDefined     = true;
            c.Time              = new DateTime(2017, 07, 01, 11, 10, 09);
            c.IsPositionDefined = true;
            c.Position          = new TcxPosition(51.085341, 17.043303);

            TcxTrackpoint n = new TcxTrackpoint();

            c.IsTimeDefined     = true;
            c.Time              = new DateTime(2017, 07, 01, 11, 10, 11);
            c.IsPositionDefined = true;
            c.Position          = new TcxPosition(51.085286, 17.043645);

            List <TcxTrackpoint> next = new List <TcxTrackpoint>();

            next.Add(n);
            var result = c.CombineTrackpoint(p, next);

            double lat = (51.085341 + 51.085286) / 2;
            double lon = (17.043303 + 17.043645) / 2;
        }
示例#5
0
        private static TcxTrackpoint LoadTrackpoint(XmlNode trackpointNode)
        {
            TcxTrackpoint trackpoint = new TcxTrackpoint();

            var time = GetDateTimeChildValue(trackpointNode, TcxTrackpoint.ATTR_TIME);

            trackpoint.IsTimeDefined = time.HasValue;
            if (time != null)
            {
                trackpoint.Time = time.Value;
            }

            var altitudeMeters = GetDoubleChildValue(trackpointNode, TcxTrackpoint.ATTR_ALTITUDE_METERS);

            trackpoint.IsAltitudeMetersDefined = altitudeMeters.HasValue;
            if (altitudeMeters.HasValue)
            {
                trackpoint.AltitudeMeters = altitudeMeters.Value;
            }

            var distanceMeters = GetDoubleChildValue(trackpointNode, TcxTrackpoint.ATTR_DISTANCE_METERS);

            trackpoint.IsDistanceMetersDefined = distanceMeters.HasValue;
            if (distanceMeters.HasValue)
            {
                trackpoint.DistanceMeters = distanceMeters.Value;
            }

            var cadence = GetDoubleChildValue(trackpointNode, TcxTrackpoint.ATTR_CADENCE);

            trackpoint.IsCadenceDefined = cadence.HasValue;
            if (cadence.HasValue)
            {
                trackpoint.Cadence = cadence.Value;
            }

            var sensorState = GetChildValue(trackpointNode, TcxTrackpoint.ATTR_SENSOR_STATE);

            trackpoint.IsSensorStateDefined = (sensorState != null);
            if (sensorState != null)
            {
                trackpoint.SensorState = sensorState;
            }

            var heartRateNode = GetChild(trackpointNode, TcxTrackpoint.ATTR_HEART_RATE_BPM);

            trackpoint.IsHeartRateBpmDefined = heartRateNode != null;
            if (heartRateNode != null)
            {
                var heartRateValue = GetDoubleChildValue(heartRateNode, TcxTrackpoint.ATTR_VALUE);
                trackpoint.IsHeartRateBpmDefined = heartRateValue.HasValue;
                if (heartRateValue.HasValue)
                {
                    trackpoint.HeartRateBpm = heartRateValue.Value;
                }
            }

            return(trackpoint);
        }