class Neoclock::Clock
Attributes
lights[R]
Public Class Methods
minute_block(pin, figure, ground)
click to toggle source
# File lib/neoclock/clock.rb, line 45 def self.minute_block pin, figure, ground h = {} h[pin] = figure before = pin - 1 if before < 0 before = Config.instance.config.minutes['pins'] - 1 end h[before] = figure after = pin + 1 if after >= Config.instance.config.minutes['pins'] after = pin - Config.instance.config.minutes['pins'] + 1 end h[after] = figure h end
new(options = {})
click to toggle source
# File lib/neoclock/clock.rb, line 5 def initialize options = {} @config = Config.instance.config @figure = Config.instance.colours[@config.colours['figure']] @ground = Config.instance.colours[@config.colours['ground']] @total_size = @config.minutes['pins'] + @config.hours['pins'] @rings = PixelPi::Leds.new \ @total_size, @config.led['pin'], frequency: @config.led['freq'], dma: @config.led['dma'], brightness: @config.led['brightness'], invert: @config.led['invert'] end
Public Instance Methods
time()
click to toggle source
# File lib/neoclock/clock.rb, line 22 def time dt = DateTime.now @lights = [] minutes = ((@config.minutes['pins'] / 60.0) * dt.minute).round hours = (dt.hour % 12) + @config.minutes['pins'] @total_size.times do @lights.push @ground end @lights[hours] = @figure Clock.minute_block(minutes, @figure, @ground).each_pair do |index, colour| @lights[index] = colour end @lights.each_with_index do |colour, i| @rings[i] = PixelPi::Color *colour end @rings.show end