Exemplo n.º 1
0
 private Color GetOutlineColor(SignalToNoiseRatio signal)
 {
     if (signal.Value < 10)
     {
         return(_OutlineNone[signal.Value]);
     }
     else if (signal.Value < 20)
     {
         return(_OutlinePoor[signal.Value - 10]);
     }
     else if (signal.Value < 30)
     {
         return(_OutlineModerate[signal.Value - 20]);
     }
     else if (signal.Value < 40)
     {
         return(_OutlineGood[signal.Value - 30]);
     }
     else if (signal.Value < 50)
     {
         return(_OutlineExcellent[signal.Value - 40]);
     }
     else
     {
         return(_OutlineExcellent[9]);
     }
 }
Exemplo n.º 2
0
 private Color GetFillColor(SignalToNoiseRatio signal)
 {
     if (signal.Value < 10)
     {
         return(_FillNone[signal.Value]);
     }
     else if (signal.Value < 20)
     {
         return(_FillPoor[signal.Value - 10]);
     }
     else if (signal.Value < 30)
     {
         return(_FillModerate[signal.Value - 20]);
     }
     else if (signal.Value < 40)
     {
         return(_FillGood[signal.Value - 30]);
     }
     else if (signal.Value < 50)
     {
         return(_FillExcellent[signal.Value - 40]);
     }
     else
     {
         return(_FillExcellent[9]);
     }
 }
Exemplo n.º 3
0
 private Color GetOutlineColor(SignalToNoiseRatio signal)
 {
     if (signal.Value < 10)
         return _outlineNone[signal.Value];
     if (signal.Value < 20)
         return _outlinePoor[signal.Value - 10];
     if (signal.Value < 30)
         return _outlineModerate[signal.Value - 20];
     if (signal.Value < 40)
         return _outlineGood[signal.Value - 30];
     if (signal.Value < 50)
         return _outlineExcellent[signal.Value - 40];
     return _outlineExcellent[9];
 }
Exemplo n.º 4
0
 private Color GetFillColor(SignalToNoiseRatio signal)
 {
     if (signal.Value < 10)
         return _fillNone[signal.Value];
     if (signal.Value < 20)
         return _fillPoor[signal.Value - 10];
     if (signal.Value < 30)
         return _fillModerate[signal.Value - 20];
     if (signal.Value < 40)
         return _fillGood[signal.Value - 30];
     if (signal.Value < 50)
         return _fillExcellent[signal.Value - 40];
     return _fillExcellent[9];
 }
Exemplo n.º 5
0
 /// <summary>
 /// Creates a new instance of the event args
 /// </summary>
 /// <param name="signalToNoiseRatio">The signal to noise ratio.</param>
 public SignalToNoiseRatioEventArgs(SignalToNoiseRatio signalToNoiseRatio)
 {
     SignalToNoiseRatio = signalToNoiseRatio;
 }
 public static RFDevice WithSignalToNoiseRatio_dB(this RFDevice instance, SignalToNoiseRatio value)
 {
     instance.SignalToNoiseRatio_dB = value;
     return(instance);
 }
Exemplo n.º 7
0
        protected override void OnSentenceChanged()
        {
            // Parse the basic sentence information
            base.OnSentenceChanged();

            // Cache the words
            string[] words     = base.Words;
            int      wordCount = words.Length;

            /*  $GPGSV
             *
             *  GPS Satellites in view
             *
             *  eg. $GPGSV,3,1,11,03,03,111,00,04,15,270,00,06,01,010,00,13,06,292,00*74
             *  $GPGSV,3,2,11,14,25,170,00,16,57,208,39,18,67,296,40,19,40,246,00*74
             *  $GPGSV,3,3,11,22,42,067,42,24,14,311,43,27,05,244,00,,,,*4D
             *
             *
             *  $GPGSV,1,1,13,02,02,213,,03,-3,000,,11,00,121,,14,13,172,05*62
             *
             *
             *  1    = Total number of messages of this type in this cycle
             *  2    = Message number
             *  3    = Total number of SVs in view
             *  4    = SV PRN number
             *  5    = Elevation in degrees, 90 maximum
             *  6    = Azimuth, degrees from true north, 000 to 359
             *  7    = SNR, 00-99 dB (null when not tracking)
             *  8-11 = Information about second SV, same as field 4-7
             *  12-15= Information about third SV, same as field 4-7
             *  16-19= Information about fourth SV, same as field 4-7
             */

            // Example (signal not acquired): $GPGSV,1,1,01,21,00,000,*4B
            // Example (signal acquired): $GPGSV,3,1,10,20,78,331,45,01,59,235,47,22,41,069,,13,32,252,45*70

            // Get the total message count
            if (wordCount > 1 && words[1].Length != 0)
            {
                _totalMessageCount = int.Parse(words[0], NmeaCultureInfo);
            }

            // Get the current message number
            if (wordCount > 2 && words[2].Length != 0)
            {
                _currentMessageNumber = int.Parse(words[1], NmeaCultureInfo);
            }

            // Get the total message count
            if (wordCount > 3 && words[3].Length != 0)
            {
                _satellitesInView = int.Parse(words[2], NmeaCultureInfo);
            }

            // Make a new list of satellites
            _satellites = new List <Satellite>();

            // Now process each satellite
            for (int index = 0; index < 6; index++)
            {
                int CurrentWordIndex = index * 4 + 3;
                // Are we past the length of words?
                if (CurrentWordIndex > wordCount - 1)
                {
                    break;
                }
                // No.  Get the unique code for the satellite
                if (words[CurrentWordIndex].Length == 0)
                {
                    continue;
                }

                int                pseudorandomNumber = int.Parse(words[CurrentWordIndex], NmeaCultureInfo);
                Elevation          newElevation;
                Azimuth            newAzimuth;
                SignalToNoiseRatio newSignalToNoiseRatio;

                // Update the elevation
                if (wordCount > CurrentWordIndex + 1 && words[CurrentWordIndex + 1].Length != 0)
                {
                    newElevation = Elevation.Parse(words[CurrentWordIndex + 1], NmeaCultureInfo);
                }
                else
                {
                    newElevation = Elevation.Empty;
                }

                // Update the azimuth
                if (wordCount > CurrentWordIndex + 2 && words[CurrentWordIndex + 2].Length != 0)
                {
                    newAzimuth = Azimuth.Parse(words[CurrentWordIndex + 2], NmeaCultureInfo);
                }
                else
                {
                    newAzimuth = Azimuth.Empty;
                }

                // Update the signal strength
                if (wordCount > CurrentWordIndex + 3 && words[CurrentWordIndex + 3].Length != 0)
                {
                    newSignalToNoiseRatio = SignalToNoiseRatio.Parse(words[CurrentWordIndex + 3], NmeaCultureInfo);
                }
                else
                {
                    newSignalToNoiseRatio = SignalToNoiseRatio.Empty;
                }

                // Add the satellite to the collection
                _satellites.Add(new Satellite(pseudorandomNumber, newAzimuth, newElevation, newSignalToNoiseRatio, false));
            }
        }
		private Color GetOutlineColor(SignalToNoiseRatio signal)
		{
			if (signal.Value < 10)
				return _OutlineNone[signal.Value];
			else if (signal.Value < 20)
				return _OutlinePoor[signal.Value - 10];
			else if (signal.Value < 30)
				return _OutlineModerate[signal.Value - 20];
			else if (signal.Value < 40)
				return _OutlineGood[signal.Value - 30];
			else if (signal.Value < 50)
				return _OutlineExcellent[signal.Value - 40];
			else
				return _OutlineExcellent[9];
		}
		private Color GetFillColor(SignalToNoiseRatio signal)
		{
			if (signal.Value < 10)
				return _FillNone[signal.Value];
			else if (signal.Value < 20)
				return _FillPoor[signal.Value - 10];
			else if (signal.Value < 30)
				return _FillModerate[signal.Value - 20];
			else if (signal.Value < 40)
				return _FillGood[signal.Value - 30];
			else if (signal.Value < 50)
				return _FillExcellent[signal.Value - 40];
			else
				return _FillExcellent[9];
		}
        /// <summary>
        /// Gets the property.
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="eParent">The e parent.</param>
        /// <param name="strElementName">Name of the string element.</param>
        /// <param name="tDefault">The t default.</param>
        /// <returns></returns>
        /// <exception cref="NotSupportedException"></exception>
        public static T GetProperty <T>(this XElement eParent, string strElementName, T tDefault)
        {
            Type t = typeof(T);

            if (t.IsEnum)
            {
                return(GetEnumFromNode(eParent, strElementName, tDefault));
            }

            //-----------------------------------------------------------------

            // Standard DataTypes

            if (t == typeof(string))
            {
                string xDefault = (string)((object)tDefault);
                return((T)((object)GetStringFromNode(eParent, strElementName) ?? xDefault));
            }

            if (t == typeof(bool))
            {
                bool xDefault = (bool)((object)tDefault);
                return((T)((object)GetBoolFromNode(eParent, strElementName) ?? xDefault));
            }

            if (t == typeof(double))
            {
                double xDefault = (double)((object)tDefault);
                return((T)((object)GetDoubleFromNodePoint(eParent, strElementName) ?? xDefault));
            }

            if (t == typeof(uint))
            {
                uint xDefault = (uint)((object)tDefault);
                return((T)((object)GetUInt32FromNode(eParent, strElementName) ?? xDefault));
            }

            if (t == typeof(int))
            {
                int xDefault = (int)((object)tDefault);
                return((T)((object)GetInt32FromNode(eParent, strElementName) ?? xDefault));
            }

            if (t == typeof(byte))
            {
                byte xDefault = (byte)((object)tDefault);
                return((T)((object)((byte)(GetUInt32FromNode(eParent, strElementName) ?? xDefault))));
            }

            if (t == typeof(ulong))
            {
                ulong xDefault = (ulong)((object)tDefault);
                return((T)((object)(GetUInt32FromNode(eParent, strElementName) ?? xDefault)));
            }

            //-----------------------------------------------------------------

            // Standard Classes && Structs ...

            if (t == typeof(Guid))
            {
                Guid xDefault = (Guid)((object)tDefault);
                return((T)((object)(GetGuidFromNode(eParent, strElementName) ?? xDefault)));
            }

            if (t == typeof(DateTime))
            {
                DateTime xDefault = (DateTime)((object)tDefault);
                return((T)((object)(GetDateTimeFromNodeUTC(eParent, strElementName) ?? xDefault)));
                //return tDefault; ;
            }

            if (t == typeof(Color))
            {
                Color xDefault = (Color)((object)tDefault);
                return((T)((object)GetColorFromNode(eParent, strElementName, xDefault)));
            }

            if (t == typeof(FileInfo))
            {
                FileInfo xDefault = (FileInfo)((object)tDefault);
                return((T)((object)GetFileInfoFromNode(eParent, strElementName, xDefault)));
            }

            if (t == typeof(DirectoryInfo))
            {
                DirectoryInfo xDefault = (DirectoryInfo)((object)tDefault);
                return((T)((object)GetDirectoryInfoFromNode(eParent, strElementName, xDefault)));
            }

            //-----------------------------------------------------------------

            //// ESRI DataTypes ...
            //if (t == typeof(MapPoint))
            //{
            //    MapPoint xDefault = (MapPoint)((object)tDefault);
            //    return (T)((object)((MapPoint)(GetMapPointFromNode(eParent, strElementName) ?? xDefault)));
            //}

            //if (t == typeof(Viewpoint))
            //{
            //    Viewpoint xDefault = (Viewpoint)((object)tDefault);
            //    return (T)((object)((Viewpoint)(GetViewpointFromNode(eParent, strElementName) ?? xDefault)));
            //}

            if (t == typeof(BitmapSource))
            {
                BitmapSource xDefault = (BitmapSource)((object)tDefault);
                return((T)((object)(GetBitmapSourceFromNode(eParent, strElementName) ?? xDefault)));
            }

            //-----------------------------------------------------------------

            if (t == typeof(Latitude))
            {
                Latitude xDefault = (Latitude)((object)tDefault);
                return((T)((object)new Latitude(GetDoubleFromNodePoint(eParent, strElementName) ?? xDefault)));
            }

            if (t == typeof(Longitude))
            {
                Longitude xDefault = (Longitude)((object)tDefault);
                return((T)((object)new Longitude(GetDoubleFromNodePoint(eParent, strElementName) ?? xDefault)));
            }

            if (t == typeof(Altitude))
            {
                Altitude xDefault = (Altitude)((object)tDefault);
                return((T)((object)new Altitude(GetInt32FromNode(eParent, strElementName) ?? xDefault)));
            }

            //-----------------------------------------------------------------

            if (t == typeof(RxTxType))
            {
                RxTxType xDefault = (RxTxType)((object)tDefault);
                return((T)((object)RxTxTypes.FromString(GetStringFromNode(eParent, strElementName))));
            }


            if (t == typeof(Bandwidth))
            {
                Bandwidth xDefault = (Bandwidth)((object)tDefault);
                return((T)((object)new Bandwidth(GetDoubleFromNodePoint(eParent, strElementName) ?? xDefault)));
            }

            if (t == typeof(Frequency))
            {
                Frequency xDefault = (Frequency)((object)tDefault);
                return((T)((object)new Frequency(GetDoubleFromNodePoint(eParent, strElementName) ?? xDefault)));
            }

            if (t == typeof(Gain))
            {
                Gain xDefault = (Gain)((object)tDefault);
                return((T)((object)new Gain(GetDoubleFromNodePoint(eParent, strElementName) ?? xDefault)));
            }

            if (t == typeof(SignalToNoiseRatio))
            {
                SignalToNoiseRatio xDefault = (SignalToNoiseRatio)((object)tDefault);
                return((T)((object)new SignalToNoiseRatio(GetDoubleFromNodePoint(eParent, strElementName) ?? xDefault)));
            }

            //-----------------------------------------------------------------

            throw new NotSupportedException();
        }