protected bool CorrectGpsData(GPSData data) { GPSData[] refgpsdatas; System.Collections.ArrayList list = new System.Collections.ArrayList(); lock (((UbloxGPSController)controller).refGpsDataQueue) { refgpsdatas = ((UbloxGPSController)controller).refGpsDataQueue.ToArray(); } //if (data.TimeStamp > refgpsdatas[0].TimeStamp) //{ // lock (refgpsdatas) // { // System.Threading.Monitor.Wait(refgpsdatas); // } //} for (int i = 0; i < refgpsdatas.Length; i++) { if (refgpsdatas[i].TimeStamp != null && data.TimeStamp == refgpsdatas[i].TimeStamp) { // data.SetPrrOffset(refgpsdatas[i].PrOffset,refgpsdatas[i].CPrOffset); data.SetPrsmOffset(refgpsdatas[i], refgpsdatas[i].PrOffset, refgpsdatas[i].CPrOffset); if (data.satelliteIds.Length < 5) //有效衛星數至少5顆 return false; return true; } } return false; }