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); }
/// <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 }