Example #1
0
 /// <summary>
 /// Gets a system date/time from a Dynastream date/time.
 /// </summary>
 /// <param name="dateTime">Dynastream date/time.</param>
 /// <returns>System date/time.</returns>
 public static System.DateTime?GetDateTime(Dynastream.Fit.DateTime dateTime)
 {
     if (dateTime != null)
     {
         return(dateTime.GetDateTime().ToLocalTime());
     }
     return(null);
 }
Example #2
0
        static void OnMesg(object sender, MesgEventArgs e)
        {
            string activityType = e.mesg.Name;

            Console.WriteLine("OnMesg: Received Mesg with global ID#{0}, its name is {1}", e.mesg.Num, activityType);

            Trackpoint tp = new Trackpoint();

            for (byte i = 0; i < e.mesg.GetNumFields(); i++)
            {
                foreach (var field in e.mesg.fields)
                {
                    string fieldValue = field.GetValue().ToString();
                    string fieldName  = field.GetName().ToString();
                    string recordType = e.mesg.fields[i].Num.ToString();
                    Console.WriteLine("\tField{0} Index{1} (\"{2}\" Field#{4}) Value: {3}", i, 0, fieldName, fieldValue, recordType);

                    if (activityType == "FileId")
                    {
                        switch (fieldName)
                        {
                        case "TimeCreated":
                            Dynastream.Fit.DateTime dt = new Dynastream.Fit.DateTime(uint.Parse(fieldValue));
                            tcx.Id        = Trackpoint.ConvertDate(dt.GetDateTime());
                            tcx.StartTime = dt.GetDateTime();
                            break;

                        default:
                            break;
                        }
                    }

                    if (activityType == "Record")
                    {
                        switch (fieldName)
                        {
                        case "Timestamp":
                            Dynastream.Fit.DateTime dt = new Dynastream.Fit.DateTime(uint.Parse(fieldValue));
                            tp.Time = dt.GetDateTime();
                            break;

                        case "HeartRate":
                            tp.HeartRateBpm = int.Parse(fieldValue);
                            break;

                        case "PositionLat":
                            tp.LatitudeDegrees = double.Parse(fieldValue);
                            break;

                        case "PositionLong":
                            tp.LongitudeDegrees = double.Parse(fieldValue);
                            break;

                        case "Altitude":
                            tp.AltitudeMeters = 300;    //double.Parse(fieldValue);
                            break;

                        default:
                            break;
                        }
                    }
                }
            }

            if (activityType == "Record")
            {
                tcx.TrackpointList.Add(tp);
            }
        }