public GPSSource()
 {
     GpsPos              = new GPSPositionVariables();
     GeoFence            = new GPSGeoFenceData();
     GeoFence.arrayLat   = new ArrayList();
     GeoFence.arrayLon   = new ArrayList();
     GeoFence.SourcesIn  = new ArrayList();
     GeoFence.SourcesOut = new ArrayList();
     GeoFence.sEmail     = "";
     GeoFence.sName      = "";
     GeoFence.sSound     = GpsTrackerPlugin.m_sPluginDirectory + "\\GeoFence.wav";
     GeoFence.sSoundOut  = GpsTrackerPlugin.m_sPluginDirectory + "\\GeoFenceOut.wav";
     GeoFence.bEmailIn   = false;
     GeoFence.bEmailOut  = false;
     GeoFence.bMsgBoxIn  = false;
     GeoFence.bMsgBoxOut = false;
     GeoFence.bSoundIn   = true;
     GeoFence.bSoundOut  = true;
 }
        public string ConvertToGPGGA(GPSPositionVariables gpsPos)
        {
            string sGPGGA = "";

            try
            {
                sGPGGA = "$GPGGA,"; //GpGGA
                sGPGGA += String.Format("{0:00}", gpsPos.m_iHour) + String.Format("{0:00}", gpsPos.m_iMin) + String.Format("{0:00}", gpsPos.m_iSec) + ","; //Time of fix

                String sLat = Convert.ToString(gpsPos.m_fLat);
                String sNMEALat;
                String sNMEALatMin;
                String sNMEALatNS;
                int iIndex1 = sLat.IndexOf(CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator);
                if (iIndex1 == -1)
                    sLat = sLat + CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator + "0";
                iIndex1 = sLat.IndexOf(CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator);
                if (sLat.StartsWith("-"))
                {
                    sNMEALatNS = "S";
                    sNMEALat = sLat.Substring(1, iIndex1 - 1);
                }
                else
                {
                    sNMEALatNS = "N";
                    sNMEALat = sLat.Substring(0, iIndex1);
                }
                if (sNMEALat.Length == 1)
                    sNMEALat = "0" + sNMEALat;
                else
                    if (sNMEALat.Length == 0)
                        sNMEALat = "00";
                double dLatMin = Convert.ToDouble(sLat.Substring(iIndex1)) * 60;
                sNMEALatMin = Convert.ToString(decimal.Round(Convert.ToDecimal(dLatMin), 3));
                iIndex1 = sNMEALatMin.IndexOf(CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator);
                if (iIndex1 == -1)
                    sNMEALatMin = sNMEALatMin + ".0";
                iIndex1 = sNMEALatMin.IndexOf(CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator);
                if (iIndex1 == 1)
                    sNMEALatMin = "0" + sNMEALatMin;
                sNMEALatMin = sNMEALatMin.Replace(Convert.ToChar(CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator), '.');
                sNMEALat += sNMEALatMin;

                sGPGGA += sNMEALat + "," + sNMEALatNS + ","; //Lat

                String sLon = Convert.ToString(gpsPos.m_fLon);
                String sNMEALon;
                String sNMEALonMin;
                String sNMEALonEW;
                iIndex1 = sLon.IndexOf(CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator);
                if (iIndex1 == -1)
                    sLon = sLon + CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator + "0";
                iIndex1 = sLon.IndexOf(CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator);
                if (sLon.StartsWith("-"))
                {
                    sNMEALonEW = "W";
                    sNMEALon = sLon.Substring(1, iIndex1 - 1);
                }
                else
                {
                    sNMEALonEW = "E";
                    sNMEALon = sLon.Substring(0, iIndex1);
                }
                if (sNMEALon.Length == 1)
                    sNMEALon = "00" + sNMEALon;
                else
                    if (sNMEALon.Length == 2)
                        sNMEALon = "0" + sNMEALon;
                    else
                        if (sNMEALon.Length == 0)
                            sNMEALon = "000";
                double dLonMin = Convert.ToDouble(sLon.Substring(iIndex1)) * 60;
                sNMEALonMin = Convert.ToString(decimal.Round(Convert.ToDecimal(dLonMin), 3));
                iIndex1 = sNMEALonMin.IndexOf(CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator);
                if (iIndex1 == -1)
                    sNMEALonMin = sNMEALonMin + ".0";
                iIndex1 = sNMEALonMin.IndexOf(CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator);
                if (iIndex1 == 1)
                    sNMEALonMin = "0" + sNMEALonMin;
                sNMEALonMin = sNMEALonMin.Replace(Convert.ToChar(CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator), '.');
                sNMEALon += sNMEALonMin;

                sGPGGA += sNMEALon + "," + sNMEALonEW + ","; //Lon

                sGPGGA += "1,"; //Gps Fix
                sGPGGA += "12,"; //satellites in view
                sGPGGA += "0.5,"; //Horizontal Dilution of Precision, 0.5 to 99.9

                sGPGGA += String.Format("{0:0000.0}", gpsPos.m_fAlt) + ",M,"; //altitud

                sGPGGA += "0,M,";
                sGPGGA += ",,,";
                //Checksum
                int iChecksum = Convert.ToByte(sGPGGA[1]);
                for (int iGPGGA = 2; iGPGGA < sGPGGA.Length; iGPGGA++)
                    iChecksum ^= Convert.ToByte(sGPGGA[iGPGGA]);

                sGPGGA += "*" + iChecksum.ToString("X2");
            }
            catch (Exception)
            {
                sGPGGA = "";
            }

            return sGPGGA;
        }
	    public GPSSource()
	    {
            GpsPos = new GPSPositionVariables();
            GeoFence = new GPSGeoFenceData();
            GeoFence.arrayLat = new ArrayList();
            GeoFence.arrayLon = new ArrayList();
            GeoFence.SourcesIn = new ArrayList();
            GeoFence.SourcesOut = new ArrayList();
            GeoFence.sEmail = "";
            GeoFence.sName = "";
            GeoFence.sSound = GpsTrackerPlugin.m_sPluginDirectory + "\\GeoFence.wav";
            GeoFence.sSoundOut = GpsTrackerPlugin.m_sPluginDirectory + "\\GeoFenceOut.wav";
            GeoFence.bEmailIn=false;
            GeoFence.bEmailOut=false;
            GeoFence.bMsgBoxIn=false;
            GeoFence.bMsgBoxOut=false;
            GeoFence.bSoundIn=true;
            GeoFence.bSoundOut=true;
	    }