Exemple #1
0
        void UpdateGpsData(object sender, System.EventArgs args)
        {
            if (gps.Opened)
            {
                if (position != null && position.LatitudeValid && position.LongitudeValid)
                {
                    if (position.SatellitesInSolutionValid &&
                        position.SatellitesInViewValid &&
                        position.SatelliteCountValid)
                    {
                        lbGpsState.Text = string.Format("Satellite(s): {0}", position.SatelliteCount);
                    }
                    string s = string.Format("{0};{1}", position.Latitude.ToString("0.0000"), position.Longitude.ToString("0.0000"));
                    lbGeocode.Text = s;

                    if (done)
                    {
                        if (session.Schedule != null && !session.Schedule[(int)(DateTime.Now.Ticks / TimeSpan.TicksPerHour) % 24])
                        {
                            return;
                        }

                        done = false;
                        WaypointOperation result = null;
                        if (position.SpeedValid)
                        {
                            result = session.Waypoint(position.Latitude, position.Longitude, (long)position.Speed);
                        }
                        else
                        {
                            result = session.Waypoint(position.Latitude, position.Longitude, 0);
                        }
                        if (result.OK)
                        {
                            log("Waypoint successed: " + result.Result);
                        }
                        else
                        {
                            log(result.Message);
                        }
                        done = true;
                    }
                }
            }
            else
            {
                log(string.Format("GPS state: {0}", device.DeviceState));
            }
        }
Exemple #2
0
 private void _timerInsert_Tick(object sender, EventArgs e)
 {
     if (done)
     {
         done = false;
         if (geocodeQueue.Count > 0 && listGeocode.Items.Count > 0)
         {
             Geocode geocode = geocodeQueue.Dequeue();
             Console.WriteLine("Milliseconds: " + (DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond));
             long             time = DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond - millisecond;
             NumberFormatInfo info = new NumberFormatInfo();
             info.PercentDecimalSeparator = ".";
             text.WriteLine(string.Format("\t<waypoint time=\"{0}\" latitude=\"{1}\" longitude=\"{2}\" altitude=\"{3}\" />", time, geocode.Latitude.ToString(info), geocode.Longitude.ToString(info), millisecond % 50));
             Invoke(new ListGeocodeRemoveDelegate(listGeocode.Items.RemoveAt), listGeocode.Items.Count - 1);
             try
             {
                 WaypointOperation result = session.Waypoint(geocode);
                 if (result.OK)
                 {
                     output("Waypoint: " + result.Result);
                     updateTrackID(result.Result.TrackID + "");
                 }
                 else
                 {
                     output("Waypoint: failed : " + geocode);
                 }
             }
             catch (Exception ex)
             {
                 output(ex.Message);
             }
             millisecond = DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond;
         }
         done = true;
     }
 }