module Apa102Rbpi::SpiSimulator
Public Class Methods
base()
click to toggle source
# File lib/apa102_rbpi/spi_simulator.rb, line 47 def base Apa102Rbpi.base end
begin() { |self| ... }
click to toggle source
# File lib/apa102_rbpi/spi_simulator.rb, line 6 def begin yield self end
clock(data)
click to toggle source
Placeholder method, no-op
# File lib/apa102_rbpi/spi_simulator.rb, line 11 def clock(data) end
display(led_frames)
click to toggle source
Prints a strip on its own line
# File lib/apa102_rbpi/spi_simulator.rb, line 26 def display(led_frames) puts "[#{extract_pixels(led_frames)}]" end
extract_pixels(led_frames)
click to toggle source
# File lib/apa102_rbpi/spi_simulator.rb, line 30 def extract_pixels(led_frames) pixels = "" (led_frames.size / 4).times do |idx| idx *= 4 # frame data is 32 bytes: # first byte is brightness (unused) # next 3 bytes depend on the frame offsets r = led_frames[idx + base.led_frame_rgb_offsets[:red]] || 0 g = led_frames[idx + base.led_frame_rgb_offsets[:green]] || 0 b = led_frames[idx + base.led_frame_rgb_offsets[:blue]] || 0 pixels << Paint['•', [r, g, b]] end pixels end
write(data)
click to toggle source
Prints a strip in place
# File lib/apa102_rbpi/spi_simulator.rb, line 15 def write(data) # strip off header frame bytes base.start_frame.size.times { data.shift } # strip off end frame byes base.end_frame.size.times { data.pop } # carriage return at the end lets us update strip display in place print "[#{extract_pixels(data)}]\r" end