class Apa102Rbpi::Apa102
Attributes
brightness[RW]
end_frame[R]
interface[R]
led_frame_rgb_offsets[RW]
led_frames[RW]
num_leds[R]
simulate[R]
spi_hz[RW]
start_frame[R]
Public Class Methods
new()
click to toggle source
# File lib/apa102_rbpi/apa102.rb, line 7 def initialize @num_leds = 1 # default brightness, must be within 0-31 @brightness = 31 # some strips may have different led frame specs # set offsets if using a non-default strip # offset: 0 1 2 3 # frame = [header|blue|green|red], @led_frame_rgb_offsets = { red: 3, green: 2, blue: 1 } @spi_hz = 8000000 @simulate = false @interface = PiPiper::Spi @start_frame = [0x00] * 4 @end_frame = calculate_end_frame @led_frames = [] end
Public Instance Methods
num_leds=(num)
click to toggle source
# File lib/apa102_rbpi/apa102.rb, line 41 def num_leds=(num) @num_leds = num @end_frame = calculate_end_frame end
print()
click to toggle source
# File lib/apa102_rbpi/apa102.rb, line 53 def print ::Apa102Rbpi::SpiSimulator.display(@led_frames) end
show!()
click to toggle source
# File lib/apa102_rbpi/apa102.rb, line 46 def show! @interface.begin do |s| s.clock(@spi_hz) s.write(@start_frame + @led_frames + @end_frame) end end
simulate=(bool)
click to toggle source
# File lib/apa102_rbpi/apa102.rb, line 32 def simulate=(bool) @simulate = bool if @simulate @interface = ::Apa102Rbpi::SpiSimulator else @interface = PiPiper::Spi end end
Private Instance Methods
calculate_end_frame()
click to toggle source
# File lib/apa102_rbpi/apa102.rb, line 59 def calculate_end_frame [0x00] * (@num_leds / 2.0).ceil end