class SSD1306::Cursor

Attributes

size[RW]
x_pos[RW]
y_pos[RW]

Public Class Methods

new() click to toggle source
# File lib/SSD1306/cursor.rb, line 5
def initialize
  @size = 1
  @x_pos = 0
  @y_pos = 0
end

Public Instance Methods

buffer_index(page_offset = 0) click to toggle source
# File lib/SSD1306/cursor.rb, line 43
def buffer_index(page_offset = 0)
  page = @y_pos / 8
  index = (page*128 + page_offset*128) + @x_pos
end
increment() click to toggle source
# File lib/SSD1306/cursor.rb, line 25
def increment
  if @x_pos >= (127 - 6*@size)
    newline
  else
    @x_pos += (6*@size)
  end
end
newline() click to toggle source
# File lib/SSD1306/cursor.rb, line 33
def newline
  @x_pos = 0
  @y_pos += 8*@size
end
position_in_buffer() click to toggle source
# File lib/SSD1306/cursor.rb, line 48
def position_in_buffer
  index = buffer_index
  page = @y_pos / 8
  offset = @y_pos % 8
  {index: index, x: @x_pos, page: page, page_offset: offset}
end
reset() click to toggle source
# File lib/SSD1306/cursor.rb, line 11
def reset
  reset_pos
  reset_size
end
reset_pos() click to toggle source
# File lib/SSD1306/cursor.rb, line 16
def reset_pos
  @x_pos = 0
  @y_pos = 0
end
reset_size() click to toggle source
# File lib/SSD1306/cursor.rb, line 21
def reset_size
  @size = 1
end
set_pos(x, y) click to toggle source
# File lib/SSD1306/cursor.rb, line 38
def set_pos(x, y)
  @x_pos = x
  @y_pos = y
end