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)); }
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); }
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); }
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)); }
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'); }
private decimal GetDireccion(string directionString) { return(AuxConvert.ToDecimal(directionString)); }
private decimal GetVelocidad(string speedString) { return(AuxConvert.ToDecimal(speedString)); }