/// <summary> /// /// </summary> /// <param name="modPacket"></param> void addPacketToModuleList(SMP_Packet modPacket) { try { moduleList[modPacket.getID()].hasData = true; moduleList[modPacket.getID()].add_SMP_Packet(modPacket); dataIsSaved = false; } catch(Exception error) { debugText = error.Message; } this.Invoke(new EventHandler(DisplayText)); }
/// <summary> /// /// </summary> /// <param name="packetLength"></param> void validPacket(int packetLength) { try { SMP_Packet tempPacket = new SMP_Packet(); tempPacket.setID(dataRXBuffer[1]); //ID byte tempPacket.setLength(dataRXBuffer[2]); //Length byte for (int i = 3; i < 3 + dataRXBuffer[2]; i++) { tempPacket.pushDataByte(dataRXBuffer[i]); //Data bytes } tempPacket.setReceiveTime(); addPacketToModuleList(tempPacket); } catch(Exception error) { debugText = error.Message; this.Invoke(new EventHandler(DisplayText)); } }
/// <summary> /// Adds a SMP_Packet to the list packetsReceived /// </summary> /// <param name="packet"></param> public void add_SMP_Packet(SMP_Packet packet) { this.hasData = true; this.packetsReceived.Add(packet); }
/// <summary> /// /// </summary> /// <param name="packet"></param> /// <returns></returns> string getGPSLocationString(SMP_Packet packet) { int longitude = 0; int latitude = 0; byte longDir; byte latDir; double longDeg; double longMin; double longSec; double latDeg; double latMin; double latSec; double dtemp; string longSign; string latSign; string longString; string latString; string location; string stemp; latDir = packet.dataBytes[5]; longDir = packet.dataBytes[0]; int long0 = packet.dataBytes[1]; int long1 = packet.dataBytes[2]; int long2 = packet.dataBytes[3]; int long3 = packet.dataBytes[4]; longitude = long0 * 16777216 + long1 * 65536 + long2 * 256 + long3; int lat0 = packet.dataBytes[6]; int lat1 = packet.dataBytes[7]; int lat2 = packet.dataBytes[8]; int lat3 = packet.dataBytes[9]; latitude = lat0 * 16777216 + lat1 * 65536 + lat2 * 256 + lat3; longDeg = longitude / 1000000; longMin = (longitude / 10000) % 100; stemp = ((longitude % 10000) * 6 / 1000).ToString() + "." + (((longitude % 10000) * 6 / 10) % 100).ToString(); longSec = double.Parse(stemp); latDeg = latitude / 1000000; latMin = (latitude / 10000) % 100; stemp = ((latitude % 10000) * 6 / 1000).ToString() + "." + (((latitude % 10000) * 6 / 10) % 100).ToString(); latSec = double.Parse(stemp); if((char)latDir == 'N') { latSign = "+"; } else { latSign = "-"; } if((char)longDir == 'E') { longSign = "+"; } else { longSign = "-"; } dtemp = (longDeg + longMin / 60 + longSec / 3600); dtemp = Math.Round(dtemp, 6); longString = longSign + dtemp.ToString(); dtemp = (latDeg + latMin / 60 + latSec / 3600); dtemp = Math.Round(dtemp, 6); latString = latSign + dtemp.ToString(); location = latString + "," + longString; return location; }