コード例 #1
0
        /// <summary>
        /// Build the list of columns for the given profile
        /// </summary>
        private void AddColumnsAndDependents(IList <LogColumn> columns, LogProfile newProfile)
        {
            List <LogColumn> dependencies = new List <LogColumn>();

            foreach (LogColumn column in newProfile.Columns)
            {
                Parameter  parameter  = column.Parameter;
                Conversion conversion = column.Conversion;

                DependencyMap dependencyMap = null;

                if (parameter.IsCalculated)
                {
                    dependencyMap = new DependencyMap();

                    foreach (Parameter dependency in parameter.Dependencies)
                    {
                        string     depencencyKey;
                        Conversion dependencyConversion;

                        InternalLogProfile.GetDependencyConversion(
                            dependency,
                            conversion,
                            out dependencyConversion,
                            out depencencyKey);

                        this.VerifyParameter(dependency);

                        LogColumn dependencyColumn = LogColumn.GetInstance(
                            dependency,
                            dependencyConversion,
                            null,
                            true);
                        dependencyMap[depencencyKey] = dependencyColumn;
                        dependencies.Add(dependencyColumn);
                    }
                }

                this.VerifyParameter(parameter);
                LogColumn newColumn = LogColumn.GetInstance(parameter, conversion, dependencyMap, false);
                columns.Add(newColumn);
            }

            if (dependencies != null)
            {
                foreach (LogColumn dependency in dependencies)
                {
                    columns.Add(dependency);
                }
            }
        }
コード例 #2
0
ファイル: LogFilters.cs プロジェクト: walterstypula/SSM
        /// <summary>
        /// Log when knock sum value changes.
        /// </summary>
        protected override bool ShouldLog(LogColumn column)
        {
            if (!initialized)
            {
                this.lastValue = column.ValueAsDouble;
                return(false);
            }

            if (column.ValueAsDouble != this.lastValue)
            {
                this.lastValue = column.ValueAsDouble;
                return(true);
            }

            return(false);
        }
コード例 #3
0
        public void Add(Parameter parameter, Conversion conversion)
        {
            LogColumn column = LogColumn.GetInstance(parameter, conversion, null, false);

            for (int i = 0; i < this.columns.Count; i++)
            {
/* Not sure what I had in mind for this, but it breaks the SawMill UI:
 *              LogColumn candidate = this.columns[i];
 *              if (string.Compare(
 *                  parameter.Name,
 *                  candidate.Parameter.Name,
 *                  StringComparison.OrdinalIgnoreCase) < 0)
 *              {
 *                  this.columns.Insert(i, column);
 *                  return;
 *              }
 */
            }
            this.columns.Add(column);
        }
コード例 #4
0
 /// <summary>
 /// Base class will always log (unless testing is underway)
 /// </summary>
 protected virtual bool ShouldLog(LogColumn column)
 {
     return(LogFilter.defaultBehavior);
 }
コード例 #5
0
ファイル: LogFilters.cs プロジェクト: walterstypula/SSM
 protected override bool ShouldLog(LogColumn column)
 {
     return(state);
 }
コード例 #6
0
ファイル: LogFilters.cs プロジェクト: walterstypula/SSM
 protected override bool ShouldLog(LogColumn column)
 {
     return(column.ValueAsString == requiredValue);
 }
コード例 #7
0
ファイル: LogFilters.cs プロジェクト: walterstypula/SSM
 /// <summary>
 /// Log when throttle is maxed out
 /// </summary>
 protected override bool ShouldLog(LogColumn column)
 {
     return(column.ValueAsDouble > 98.0d);
 }
コード例 #8
0
ファイル: LogFilters.cs プロジェクト: walterstypula/SSM
 /// <summary>
 /// Log when in closed loop
 /// </summary>
 protected override bool ShouldLog(LogColumn column)
 {
     return(string.Compare(column.ValueAsString, "8", StringComparison.OrdinalIgnoreCase) == 0);
 }
コード例 #9
0
        /// <summary>
        /// Convert the given value and store it on the column
        /// </summary>
        private static void ConvertAndStoreValue(Parameter parameter, double rawValue, Conversion conversion, LogColumn column)
        {
            double valueAsDouble;
            string valueAsString;

            try
            {
                conversion.Convert(rawValue, out valueAsString, out valueAsDouble);
            }
            catch (InvalidOperationException)
            {
                Trace.WriteLine("Evaluation failed for parameter " + parameter.Id + " / " + parameter.Name);
                valueAsString = string.Empty;
                valueAsDouble = 0;
            }

            column.ValueAsDouble = valueAsDouble;
            column.ValueAsString = valueAsString;
        }