Ejemplo n.º 1
0
        private int GetChecksum(byte[] bytes)
        {
            var calculatedChecksum = MeiligaoChecksum.CalculaChecksum(bytes, 0, bytes.Length - 4);
            var checksumInPacket   = new[] { bytes[bytes.Length - 4], bytes[bytes.Length - 3] };
            var c = BitConverter.ToUInt16(calculatedChecksum, 0);
            var d = BitConverter.ToUInt16(checksumInPacket, 0);

            if (c != d)
            {
                return(0);
            }
            return(AuxConvert.ToInt(c));
        }
Ejemplo n.º 2
0
        private decimal GetLatitud(string stringPart, string hemisphere)
        {
            int hemIndicator = 1;

            if (hemisphere.ToLowerInvariant() == "s")
            {
                hemIndicator = -1;
            }

            decimal deg = AuxConvert.ToDecimal(stringPart.Substring(0, 2));
            decimal min = AuxConvert.ToDecimal(stringPart.Substring(2));
            decimal lat = (deg + (min / 60)) * hemIndicator;

            return(lat);
        }
Ejemplo n.º 3
0
        private decimal GetLongitud(string stringPart, string sideofMeridian)
        {
            int sideIndicator = 1;

            if (sideofMeridian.ToLowerInvariant() == "w")
            {
                sideIndicator = -1;
            }


            decimal deg    = AuxConvert.ToDecimal(stringPart.Substring(0, 3));
            decimal min    = AuxConvert.ToDecimal(stringPart.Substring(3));
            decimal longit = (deg + (min / 60)) * sideIndicator;

            return(longit);
        }
Ejemplo n.º 4
0
        private DateTime GetDateTime(string datePart, string timePart)
        {
            //hhmmss
            var hour       = AuxConvert.ToInt(timePart.Substring(0, 2));
            var min        = AuxConvert.ToInt(timePart.Substring(2, 2));
            var secParts   = timePart.Substring(4, 4).Split('.');
            var sec        = AuxConvert.ToInt(secParts[0]);
            var secDecimal = AuxConvert.ToInt(secParts[1]) * 10;

            //ddmmyy
            var day   = AuxConvert.ToInt(datePart.Substring(0, 2));
            var month = AuxConvert.ToInt(datePart.Substring(2, 2));
            var year  = AuxConvert.ToInt("20" + datePart.Substring(4, 2));

            return(new DateTime(year, month, day, hour, min, sec, secDecimal));
        }
Ejemplo n.º 5
0
        private void GetGPSData(byte[] datos, int offset = 0)
        {
            var dataSection    = this.GetDataSection(datos, offset);
            var dataComponents = dataSection.Split('|');

            if (dataComponents.Length == 0)
            {
                return;
            }

            this.GetGPRMC(dataComponents[0]);
            this.mp.HDOP    = dataComponents[1];
            this.mp.Altitud = AuxConvert.ToDecimal(dataComponents[2]);

            this.mp.DataBytes = Convert.ToString(Convert.ToInt32(dataComponents[3], 16), 2).PadLeft(16, '0');
        }
Ejemplo n.º 6
0
 private decimal GetDireccion(string directionString)
 {
     return(AuxConvert.ToDecimal(directionString));
 }
Ejemplo n.º 7
0
 private decimal GetVelocidad(string speedString)
 {
     return(AuxConvert.ToDecimal(speedString));
 }