public AC12GPS(string portName) { myGPS = new SerialPort(); //Initialize Serial Port Parameters myGPS.PortName = portName; myGPS.BaudRate = DEFAULT_BAUD_RATE; myGPS.Parity = DEFAULT_PARITY; myGPS.DataBits = DEFAULT_DATA_BITS; myGPS.StopBits = DEFAULT_STOP_BITS; myGPS.Handshake = DEFAULT_HANDSHAKE; myGPS.ReadTimeout = DEFAULT_TIMEOUT; myGPS.WriteTimeout = DEFAULT_TIMEOUT; myGPS.Open(); //Initialize data myData = new UTMData(); myData.East = 0.0; myData.North = 0.0; myData.NumSat = 0; myData.Timestamp = 0.0; if (myGPS.IsOpen) { //Setup GPS Console.WriteLine("Sucessfully Connected!"); Console.WriteLine(myGPS.ToString()); myGPS.RtsEnable = true; command("$PASHS,PWR,ON"); System.Threading.Thread.Sleep(10); command("$PASHQ,PRT"); System.Threading.Thread.Sleep(10); command("$PASHQ,RID"); System.Threading.Thread.Sleep(10); command("$PASHS,OUT,A,NMEA"); /*System.Threading.Thread.Sleep(10); command("$PASHS,NME,GSV,A,ON");*/ /*System.Threading.Thread.Sleep(10); command("$PASHS,NME,GGA,A,ON");*/ /*System.Threading.Thread.Sleep(10); command("$PASHS,NME,GSA,A,ON"); System.Threading.Thread.Sleep(10); command("$PASHS,NME,VTG,A,ON");*/ System.Threading.Thread.Sleep(10); command("$PASHS,NME,UTM,A,ON"); //Make GPS send UTM coordinate string // Create a new mutex to make sure manual update and autoupdate don't conflict mut = new Mutex(); } else { Console.WriteLine("Connection Failed!"); //Oh Shit! } }