Example #1
0
 public Geocoordinate(
     double latitude,
     double longitude,
     double accuracy,
     DateTimeOffset timestamp,
     Geopoint point,
     double?altitude                          = null,
     double?altitudeAccuracy                  = null,
     double?heading                           = null,
     double?speed                             = null,
     PositionSource positionSource            = PositionSource.Default,
     GeocoordinateSatelliteData satelliteData = null,
     DateTimeOffset?positionSourceTimestamp   = null
     )
 {
     Latitude                = latitude;
     Longitude               = longitude;
     Accuracy                = accuracy;
     Timestamp               = timestamp;
     Point                   = point;
     Altitude                = altitude;
     AltitudeAccuracy        = altitudeAccuracy;
     Heading                 = heading;
     Speed                   = speed;
     PositionSource          = positionSource;
     SatelliteData           = satelliteData;
     PositionSourceTimestamp = positionSourceTimestamp;
 }
Example #2
0
        public void UpdateUI(DateTimeOffset datetime, string nmea, double lat, double lon,
                             string speed, string accuracy, PositionSource source)
        {
            //try
            //{
            window.SetLocationLog(datetime.ToString() + " sending NMEA:");
            window.SetLocationLog(nmea);

            window.SetLatLon(lat, lon);
            if (speed == "")
            {
                speed = "n/a";
            }
            else
            {
                speed += "kn";
            }
            window.SetSpeed(speed);
            window.SetDatetime(datetime.ToString());
            window.SetAccuracy(accuracy + "m");

            window.SetSource(source.ToString());
            //}
            //catch (Exception ex) {
            //    throw ex;
            //}
        }
Example #3
0
 internal Location(double latitude, double longitude, double altitude, double speed, double heading, double accuracy,
                   double altitudeAccuracy, PositionSource positionSource)
 {
     Latitude         = latitude;
     Longitude        = longitude;
     Altitude         = altitude;
     Speed            = speed;
     Heading          = heading;
     Accuracy         = accuracy;
     AltitudeAccuracy = altitudeAccuracy;
     Source           = positionSource;
 }
Example #4
0
 public override void DrawGUI(IntelligenceState parentState, Intelligence intelligence, CallbackCollection callbacks)
 {
     #if UNITY_EDITOR
     posVarSource = (PositionSource)UnityEditor.EditorGUILayout.EnumPopup("Position source:", posVarSource);
     if (posVarSource == PositionSource.VarValue)
     {
         UnityEditor.EditorGUILayout.BeginHorizontal();
         GUILayout.Label("Postion var name:");
         posVarName = UnityEditor.EditorGUILayout.TextField(posVarName);
         UnityEditor.EditorGUILayout.EndHorizontal();
     }
     saveAsVar = UnityEditor.EditorGUILayout.Toggle("Save as var:", saveAsVar);
     if (saveAsVar)
     {
         UnityEditor.EditorGUILayout.BeginHorizontal();
         GUILayout.Label("Save var name:");
         saveVarName = UnityEditor.EditorGUILayout.TextField(saveVarName);
         UnityEditor.EditorGUILayout.EndHorizontal();
     }
     #endif
 }
Example #5
0
 public static Core.Geolocation.PositionSource AsTackTimerModel(this PositionSource source)
 {
     return((Core.Geolocation.PositionSource)(int) source);
 }
Example #6
0
        public void StartTracking()
        {
            window.SetStatus(loc.LocationStatus.ToString());
            if (positionChangedHandler == null)
            {
                positionChangedHandler = (geo, e) =>
                {
                    Geoposition pos = e.Position;

                    DateTimeOffset datetime = pos.Coordinate.Timestamp;
                    String         time     = pos.Coordinate.Timestamp.UtcDateTime.ToString("hhmmss");
                    String         date     = pos.Coordinate.Timestamp.UtcDateTime.ToString("dMMyy");
                    double         lat      = (double)pos.Coordinate.Point.Position.Latitude;
                    double         lon      = (double)pos.Coordinate.Point.Position.Longitude;
                    string         accuracy = pos.Coordinate.Accuracy.ToString();

                    String heading = "0.0";
                    if (pos.Coordinate.Heading != null)
                    {
                        heading = pos.Coordinate.Heading.Value.ToString("00.00");
                    }

                    String speed = "0.0";
                    if (pos.Coordinate.Speed != null)
                    {
                        double kn = (double)pos.Coordinate.Speed / 0.514444;
                        speed = kn.ToString("00.00");
                    }

                    String coords = decimalToNMEA(lat, lon);

                    String sentence = String.Format("$GPRMC,{0},A,{1},{2},{3},{4},,",
                                                    time, coords, speed, heading, date);
                    String nmea = sentence + "*" + getChecksum(sentence);
                    //Console.WriteLine("Sent NMEA sentence {0}", nmea);

                    Report(nmea);

                    PositionSource source = e.Position.Coordinate.PositionSource;
                    UpdateUI(datetime, nmea, lat, lon, speed, accuracy, source);
                };
            }


            if (statusChangedHandler == null)
            {
                statusChangedHandler = (geo, e) =>
                {
                    PositionStatus status = e.Status;
                    try
                    {
                        window.SetStatus(status.ToString());
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex);
                    }
                };
            }
            // this implicitly starts the tracking operation
            loc.PositionChanged += positionChangedHandler;
            loc.StatusChanged   += statusChangedHandler;
        }