コード例 #1
0
        private Color GetColorFromValue(Data15MinClass s)
        {
            // Data repeat flag is orange
            if (s.flags.dataRepeatFlag)
            {
                return(ConfigClass.colors.colorRepeat);
            }

            // Data duplicate flag is Olive, but CornflowerBlue if zero and Orchid if null
            if (s.flags.duplicateFlag)
            {
                if (s.Values.successfullyParsed)
                {
                    // This means its valid or zero

                    if (FloatHelper.CheckIfZero(s.Values)) // If zero color it with zero color
                    {
                        return(ConfigClass.colors.colorZero);
                    }
                    return(ConfigClass.colors.colorDuplicate);; // Otherwise color it with olive
                }
                else
                {
                    // This means its null
                    return(ConfigClass.colors.colorNull);
                }
            }

            // Missing flag is OrangeRed
            if (s.flags.missingFlag)
            {
                return(ConfigClass.colors.colorMissing);
            }

            // Null flag is Orchid
            if (s.flags.nullFlag)
            {
                return(ConfigClass.colors.colorNull);
            }

            // Zero flag is CornflowerBlue
            if (s.flags.zeroFlag)
            {
                return(ConfigClass.colors.colorZero);
            }

            // invalid flag is Red
            if (s.flags.invalidFlag)
            {
                return(ConfigClass.colors.colorInvalid);
            }

            // If no flags are active that means data is just valid
            return(ConfigClass.colors.colorValid);
        }
コード例 #2
0
        /// <summary>
        /// Analyze all 15min data points and rise internal flags based on values
        /// </summary>
        public void ProcessData()
        {
            lastFw = new FloatValues(); // Initialize with devil data
            foreach (var d in data)
            {
                if (d.valid == 1)
                {
                    // Data is valid
                    if (d.numberOfPoints != 0)
                    {
                        // First check if there is some data (null values)
                        if (d.Values == null)
                        {
                            d.flags.nullFlag = true;
                            continue;
                        }

                        // Check is it zero
                        d.flags.zeroFlag = FloatHelper.CheckIfZero(d.Values);

                        if (!d.flags.zeroFlag)
                        {
                            // Check if data is repeating, ignoring zero values
                            d.flags.dataRepeatFlag = FloatHelper.CompareDuplicateValues(lastFw, d.Values); // This duplicate is based on last storred value
                            lastFw = d.Values;                                                             // make sure next 15min point compares with this value
                        }

                        // Check if null
                        if (!d.Values.successfullyParsed) // Probably redundant
                        {
                            d.flags.nullFlag = true;
                        }

                        if (d.numberOfPoints > 1) // Is it duplicate (more data points arrived for this timestamp)
                        {
                            d.flags.duplicateFlag = true;
                        }
                    }
                    else
                    { // numberOfPoints = 0
                      // Data is missing
                        d.flags.missingFlag = true;
                    }
                }
                else
                { // Data is not valid
                    d.flags.invalidFlag = true;
                }
            } // foreach
        }