コード例 #1
0
ファイル: GPSDeviceBase.cs プロジェクト: ufjl0683/sshmc
        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;
        }