class Thermos
Attributes
blue[R]
green[R]
range[RW]
red[R]
relaisCooler[R]
relaisHeater[R]
target[RW]
temperature[R]
Public Class Methods
new(target, range)
click to toggle source
# File lib/thermos.rb, line 15 def initialize(target, range) @target = target @range = range reset_leds @relaisCooler = false; @relaisHeater = false; end
Public Instance Methods
get_hex_leds()
click to toggle source
# File lib/thermos.rb, line 72 def get_hex_leds "%02x%02x%02x" % [@red,@green,@blue] end
reset_leds()
click to toggle source
# File lib/thermos.rb, line 41 def reset_leds @red = 0.0 @green = 0.0 @blue = 0.0 end
set_celcius(temperature)
click to toggle source
# File lib/thermos.rb, line 23 def set_celcius (temperature) @temperature = temperature reset_leds set_leds end
set_fahrenheit(temperature)
click to toggle source
# File lib/thermos.rb, line 35 def set_fahrenheit (temperature) @temperature = (temperature - 32)/1.8 reset_leds set_leds end
set_kelvin(temperature)
click to toggle source
# File lib/thermos.rb, line 29 def set_kelvin (temperature) @temperature = temperature - 273.15 reset_leds set_leds end
set_leds()
click to toggle source
# File lib/thermos.rb, line 47 def set_leds if(@temperature < (@target - @range)) multiplier = ( (@target - @temperature) / (5 * @range)) #5 times the range from the target is very blue multiplier > 1 ? multiplier = 1 : multiplier = multiplier @blue = 255*multiplier @relaisHeater = true; @relaisCooler = false; elsif(@temperature > (@target + @range)) multiplier = ( (@temperature - @target) / (5 * @range)) #5 times the range from the target is very red multiplier > 1 ? multiplier = 1 : multiplier = multiplier @red = 255*multiplier @relaisHeater = false; @relaisCooler = true; else multiplier = ((@temperature - @target).abs / @range ) #0 time the range from the target is very green @green = 255*(1-multiplier) @relaisHeater = false; @relaisCooler = false; end end