Beispiel #1
0
        public IGPSSatelliteVehicle[] GetSatelliteData()
        {
            GPSSatDataType[] iQueSatData = new GPSSatDataType[maxSatellites];
            ushort           err         = GPSGetSatellites(iQueSatData);

            if (err == 0)
            {
                // Work out how many satellites are in view.
                int numSatellitesInView = 0;
                for (int i = 0; i < maxSatellites; i++)
                {
                    if (iQueSatData[i].svid != 255)
                    {
                        numSatellitesInView++;
                    }
                }

                // Construct the satellite data class.
                IGPSSatelliteVehicle[] satelliteVehicles = new IGPSSatelliteVehicle[numSatellitesInView];
                int index = 0;
                for (int i = 0; i < maxSatellites; i++)
                {
                    if (iQueSatData[i].svid != 255)
                    {
                        GPSSatelliteVehicle vehicle = new GPSSatelliteVehicle();
                        vehicle.PRN                        = iQueSatData[i].svid;
                        vehicle.AziumthDegrees             = (int)Math.Round(iQueSatData[i].azimuth * 180 / Math.PI);
                        vehicle.ElevationDegrees           = (int)Math.Round(iQueSatData[i].elevation * 180 / Math.PI);
                        vehicle.SNRdB                      = iQueSatData[i].snr / 100;
                        vehicle.HaveEphemerisData          = (iQueSatData[i].status & gpsSatEphMask) > 0;
                        vehicle.HaveDifferentialCorrection = (iQueSatData[i].status & gpsSatDifMask) > 0;
                        vehicle.UsedInFix                  = (iQueSatData[i].status & gpsSatUsedMask) > 0;
                        vehicle.IsRising                   = (iQueSatData[i].status & gpsSatRisingMask) > 0;
                        satelliteVehicles[index++]         = vehicle;
                    }
                }

                // Return the result.
                return(satelliteVehicles);
            }
            else
            {
                return(null);
            }
        }
		public IGPSSatelliteVehicle[] GetSatelliteData()
		{
			GPSSatDataType[] iQueSatData = new GPSSatDataType[maxSatellites];
			ushort err = GPSGetSatellites(iQueSatData);
			if (err == 0)
			{
				// Work out how many satellites are in view.
				int numSatellitesInView = 0;
				for (int i = 0; i < maxSatellites; i++)
					if (iQueSatData[i].svid != 255)
						numSatellitesInView++;

				// Construct the satellite data class.
				IGPSSatelliteVehicle[] satelliteVehicles = new IGPSSatelliteVehicle[numSatellitesInView];
				int index = 0;
				for (int i = 0; i < maxSatellites; i++)
				{
					if (iQueSatData[i].svid != 255)
					{
						GPSSatelliteVehicle vehicle = new GPSSatelliteVehicle();
						vehicle.PRN = iQueSatData[i].svid;
						vehicle.AziumthDegrees = (int)Math.Round(iQueSatData[i].azimuth * 180 / Math.PI);
						vehicle.ElevationDegrees = (int)Math.Round(iQueSatData[i].elevation * 180 / Math.PI);
						vehicle.SNRdB = iQueSatData[i].snr / 100;
						vehicle.HaveEphemerisData = (iQueSatData[i].status & gpsSatEphMask) > 0;
						vehicle.HaveDifferentialCorrection = (iQueSatData[i].status & gpsSatDifMask) > 0;
						vehicle.UsedInFix = (iQueSatData[i].status & gpsSatUsedMask) > 0;
						vehicle.IsRising = (iQueSatData[i].status & gpsSatRisingMask) > 0;
						satelliteVehicles[index++] = vehicle;
					}
				}

				// Return the result.
				return satelliteVehicles;
			}
			else
			{
				return null;
			}
		}
		private static extern byte GPSGetSatellites(GPSSatDataType[] satData);
Beispiel #4
0
 private static extern QueErrT16 GPSGetSatellites(ref GPSSatDataType sat);