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