lib/cosmos/processors/statistics_processor.rb in cosmos-3.0.1 vs lib/cosmos/processors/statistics_processor.rb in cosmos-3.1.0
- old
+ new
@@ -1,65 +1,65 @@
-# encoding: ascii-8bit
-
-# Copyright 2014 Ball Aerospace & Technologies Corp.
-# All Rights Reserved.
-#
-# This program is free software; you can modify and/or redistribute it
-# under the terms of the GNU General Public License
-# as published by the Free Software Foundation; version 3 with
-# attribution addendums as found in the LICENSE.txt
-
-require 'cosmos/processors/processor'
-
-module Cosmos
-
- class StatisticsProcessor < Processor
-
- # @return [Array] The set of samples stored by the processor
- attr_accessor :samples
-
- # @param item_name [String] The name of the item to gather statistics on
- # @param samples_to_average [Integer] The number of samples to store for calculations
- # @param value_type #See Processor::initialize
- def initialize(item_name, samples_to_average, value_type = :CONVERTED)
- super(value_type)
- @item_name = item_name.to_s.upcase
- @samples_to_average = Integer(samples_to_average)
- reset()
- end
-
- # Run statistics on the item
- #
- # See Processor#call
- def call(packet, buffer)
- value = packet.read(@item_name, @value_type, buffer)
- @samples << value
- @samples = @samples[-@samples_to_average..-1] if @samples.length > @samples_to_average
- mean, stddev = Math.stddev_sample(@samples)
- @results[:MAX] = @samples.max
- @results[:MIN] = @samples.min
- @results[:MEAN] = mean
- @results[:STDDEV] = stddev
- end
-
- # Reset any state
- def reset
- @samples = []
- @results[:MAX] = nil
- @results[:MIN] = nil
- @results[:MEAN] = nil
- @results[:STDDEV] = nil
- end
-
- # Make a light weight clone of this processor. This only creates a new hash of results
- #
- # @return [Processor] A copy of the processor with a new hash of results
- def clone
- processor = super()
- processor.samples = processor.samples.clone
- processor
- end
- alias dup clone
-
- end # class StatisticsProcessor
-
-end # module Cosmos
+# encoding: ascii-8bit
+
+# Copyright 2014 Ball Aerospace & Technologies Corp.
+# All Rights Reserved.
+#
+# This program is free software; you can modify and/or redistribute it
+# under the terms of the GNU General Public License
+# as published by the Free Software Foundation; version 3 with
+# attribution addendums as found in the LICENSE.txt
+
+require 'cosmos/processors/processor'
+
+module Cosmos
+
+ class StatisticsProcessor < Processor
+
+ # @return [Array] The set of samples stored by the processor
+ attr_accessor :samples
+
+ # @param item_name [String] The name of the item to gather statistics on
+ # @param samples_to_average [Integer] The number of samples to store for calculations
+ # @param value_type #See Processor::initialize
+ def initialize(item_name, samples_to_average, value_type = :CONVERTED)
+ super(value_type)
+ @item_name = item_name.to_s.upcase
+ @samples_to_average = Integer(samples_to_average)
+ reset()
+ end
+
+ # Run statistics on the item
+ #
+ # See Processor#call
+ def call(packet, buffer)
+ value = packet.read(@item_name, @value_type, buffer)
+ @samples << value
+ @samples = @samples[-@samples_to_average..-1] if @samples.length > @samples_to_average
+ mean, stddev = Math.stddev_sample(@samples)
+ @results[:MAX] = @samples.max
+ @results[:MIN] = @samples.min
+ @results[:MEAN] = mean
+ @results[:STDDEV] = stddev
+ end
+
+ # Reset any state
+ def reset
+ @samples = []
+ @results[:MAX] = nil
+ @results[:MIN] = nil
+ @results[:MEAN] = nil
+ @results[:STDDEV] = nil
+ end
+
+ # Make a light weight clone of this processor. This only creates a new hash of results
+ #
+ # @return [Processor] A copy of the processor with a new hash of results
+ def clone
+ processor = super()
+ processor.samples = processor.samples.clone
+ processor
+ end
+ alias dup clone
+
+ end # class StatisticsProcessor
+
+end # module Cosmos