Beispiel #1
0
        public static ConsoleColor ToConsoleColor(this Color thisValue)
        {
            EnumRange <ConsoleColor> consoleColors = new EnumRange <ConsoleColor>();
            ConsoleColor             result = consoleColors.Minimum;
            double red = thisValue.R, green = thisValue.G, blue = thisValue.B, delta = double.MaxValue;

            foreach (ConsoleColor consoleColor in consoleColors)
            {
                Color color = Color.FromName(consoleColor == ConsoleColor.DarkYellow
                                        ? nameof(Color.Orange)
                                        : consoleColor.GetName());
                double t = Math.Pow(color.R - red, 2.0) + Math.Pow(color.G - green, 2.0) + Math.Pow(color.B - blue, 2.0);
                if (t.IsEqual(0.0d))
                {
                    return(consoleColor);
                }

                if (t < delta)
                {
                    delta  = t;
                    result = consoleColor;
                }
            }

            return(result);
        }
Beispiel #2
0
        private static bool IsWellFormattedRangeString <T>(string value, out EnumRange <T> parsed)
            where T : struct, Enum, IComparable
        {
            parsed = null;
            if (string.IsNullOrEmpty(value))
            {
                return(false);
            }

            if (!value.Contains(Range.SPLIT))
            {
                if (!EnumHelper <T> .TryParse(value, true, out T p))
                {
                    return(false);
                }
                parsed = new EnumRange <T>(p, p);
                return(true);
            }

            string[] parts = value.Split(2, Range.SPLIT);
            if (parts.Length != 2 || parts.Any(string.IsNullOrEmpty))
            {
                return(false);
            }
            if (!EnumHelper <T> .TryParse(value, true, out T p1) || !EnumHelper <T> .TryParse(value, true, out T p2))
            {
                return(false);
            }
            parsed = new EnumRange <T>(p1, p2);
            return(true);
        }
Beispiel #3
0
        public void SetMeasurementRange(EnumChannel CH, EnumRange Range)
        {
            if (Range == EnumRange.AUTO)
            {
                Send(string.Format("AUTO_{0} 1", CH));
            }
            else
            {
                Send(string.Format("RANGE_{0} {1}", CH, (int)Range));
            }

            MetaProperties[(int)CH].Range = Range;
        }