Merge pull request #15 from bkosciow/colors

Colors
This commit is contained in:
Bartosz 2017-07-09 10:01:48 +02:00 committed by GitHub
commit 6e9d056cd9
19 changed files with 377 additions and 250 deletions

View File

@ -31,13 +31,8 @@ class Chip(metaclass=abc.ABCMeta):
return self._width
@abc.abstractmethod
def _converted_background_color(self):
"""convert RGB background to available color"""
pass
@abc.abstractmethod
def _converted_color(self):
"""convert RGB color to available color"""
def _convert_color(self, color):
"""convert color to avaible one"""
pass
@property
@ -90,7 +85,7 @@ class Chip(metaclass=abc.ABCMeta):
pass
@abc.abstractmethod
def draw_pixel(self, pos_x, pos_y):
def draw_pixel(self, pos_x, pos_y, color=None):
"""draw a pixel at x,y"""
pass

View File

@ -21,8 +21,12 @@ def test1():
lcd = CharLCD(drv.width, drv.height, drv, 0, 0)
lcd.init()
lcd.write('-!Second blarg!')
lcd.write("-second line", 0, 1)
lcd.write('First Line')
lcd.write("This text is displayed", 2, 18)
lcd.write("via CharLCD package", 10, 20)
lcd.write('GfxLCD uses driver', 1, 22)
lcd.write('to be compatible with', 9, 24)
lcd.write('HD44780', 10, 26)
lcd.flush()
lcd.write('/* ', 19, 0)

View File

@ -0,0 +1,28 @@
import sys
sys.path.append("../../")
import RPi.GPIO # NOQA pylint: disable=I0011,F0401
from charlcd.buffered import CharLCD # NOQA
from gfxlcd.driver.nju6450.gpio import GPIO
from gfxlcd.driver.nju6450.nju6450 import NJU6450
from gfxlcd.driver.hd44780 import HD44780
RPi.GPIO.setmode(RPi.GPIO.BCM)
def test1():
"""demo """
lcd = NJU6450(122, 32, GPIO())
drv = HD44780(lcd, True)
print(drv.width, drv.height)
lcd = CharLCD(drv.width, drv.height, drv, 0, 0)
lcd.init()
lcd.write('First')
lcd.write('HD44780', 6, 3)
lcd.flush()
lcd.write('/* ', 12, 0)
lcd.write('|*|', 12, 1)
lcd.write(' */', 12, 2)
lcd.flush()
test1()

View File

@ -0,0 +1,28 @@
import sys
sys.path.append("../../")
import RPi.GPIO # NOQA pylint: disable=I0011,F0401
from charlcd.buffered import CharLCD # NOQA
from gfxlcd.driver.ssd1306.spi import SPI
from gfxlcd.driver.ssd1306.ssd1306 import SSD1306
from gfxlcd.driver.hd44780 import HD44780
RPi.GPIO.setmode(RPi.GPIO.BCM)
def test1():
"""demo """
lcd = SSD1306(128, 64, SPI())
drv = HD44780(lcd, True)
print(drv.width, drv.height)
lcd = CharLCD(drv.width, drv.height, drv, 0, 0)
lcd.init()
lcd.write('First')
lcd.write('HD44780', 6, 3)
lcd.flush()
lcd.write('/* ', 12, 0)
lcd.write('|*|', 12, 1)
lcd.write(' */', 12, 2)
lcd.flush()
test1()

View File

@ -13,22 +13,24 @@ class Area(Pixel):
"""additional initialization"""
pass
def draw_pixel(self, pos_x, pos_y):
def draw_pixel(self, pos_x, pos_y, color=None):
"""draw one pixel"""
if color is None:
color = self.options['color']
self._set_area(pos_x, pos_y, pos_x, pos_y)
self.driver.data(self._converted_color(), None)
self.driver.data(self._convert_color(color), None)
def _draw_vertical_line(self, pos_x, pos_y, length):
"""draw vertical line"""
self._set_area(pos_x, pos_y, pos_x, pos_y + length)
color = self._converted_color()
color = self._convert_color(self.options['color'])
for _ in itertools.repeat(None, length):
self.driver.data(color, None)
def _draw_horizontal_line(self, pos_x, pos_y, length):
"""draw horizontal line"""
self._set_area(pos_x, pos_y, pos_x + length, pos_y)
color = self._converted_color()
color = self._convert_color(self.options['color'])
for _ in itertools.repeat(None, length):
self.driver.data(color, None)
@ -94,7 +96,8 @@ class Area(Pixel):
max(pos_x1, pos_x2),
max(pos_y1, pos_y2)
)
color = self._converted_background_color()
# color = self._converted_background_color()
color = self._convert_color(self.options['background_color'])
for _ in range(0, size):
self.driver.data(color, None)
@ -131,7 +134,9 @@ class Area(Pixel):
self._set_area(*temporary_area)
temporary_area = None
self.color = (red, green, blue)
self.driver.data(self._converted_color(), None)
self.driver.data(
self._convert_color(self.options['color']), None
)
col += 1
if col > width - 1:
@ -155,3 +160,27 @@ class Area(Pixel):
return True
return False
def _draw_letter(self, pos_x, pos_y, letter, with_background=False):
"""draw a letter"""
if not with_background:
super()._draw_letter(pos_x, pos_y, letter, with_background)
else:
font = self.options['font']
self._set_area(
pos_x,
pos_y,
pos_x + font.size[0] - 1,
pos_y + font.size[1] - 1
)
bits = font.size[0]
color = self._convert_color(self.options['color'])
background_color = self._convert_color(self.options['background_color'])
for row, data in enumerate(font.get(letter)):
for bit in range(bits):
if data & 0x01:
self.driver.data(color, None)
else:
self.driver.data(background_color, None)
data >>= 1

View File

@ -16,9 +16,11 @@ class Page(Pixel, metaclass=abc.ABCMeta):
else:
self.buffer = [[0] * (self.width // 8) for x in range(self.height)]
def draw_pixel(self, pos_x, pos_y):
def draw_pixel(self, pos_x, pos_y, color=None):
"""draw a pixel at x,y"""
self.buffer[pos_x][pos_y//8] |= 1 << (pos_y % 8)
if color is None:
color = self.options['color']
self.buffer[pos_x][pos_y//8] |= self._convert_color(color) << (pos_y % 8)
self.flush()
def draw_line(self, pos_x1, pos_y1, pos_x2, pos_y2):

View File

@ -36,7 +36,7 @@ class Pixel(object):
"""set transparency color """
self.options['transparency_color'] = transparency_color
def draw_pixel(self, pos_x, pos_y):
def draw_pixel(self, pos_x, pos_y, color=None):
"""dummy function"""
pass
@ -137,21 +137,27 @@ class Pixel(object):
return appendix
def draw_text(self, pos_x, pos_y, text):
def draw_text(self, pos_x, pos_y, text, with_background=False):
"""draw a text"""
font = self.options['font']
idx = 0
for letter in text:
self._draw_letter(pos_x + idx, pos_y, letter)
self._draw_letter(pos_x + idx, pos_y, letter, with_background)
idx += font.size[0]
def _draw_letter(self, pos_x, pos_y, letter):
def _draw_letter(self, pos_x, pos_y, letter, with_background=False):
"""draw a letter"""
font = self.options['font']
bits = font.size[0]
for row, data in enumerate(font.get(letter)):
for bit in range(bits):
if data & 0x01:
self.draw_pixel(pos_x + bit, pos_y + row)
self.draw_pixel(
pos_x + bit, pos_y + row, self.color
)
elif with_background:
self.draw_pixel(
pos_x + bit, pos_y + row, self.background_color
)
data >>= 1

View File

@ -2,15 +2,16 @@
allows graphical LCD to work as character LCD
"""
from charlcd.drivers.base import BaseDriver
from charlcd.abstract import lcd as char_lcd
from charlcd.abstract.flush_event_interface import FlushEvent
class HD44780(BaseDriver):
def __init__(self, gfxlcd):
class HD44780(BaseDriver, FlushEvent):
def __init__(self, gfxlcd, lcd_flush=False):
"""Class init"""
self.gfxlcd = gfxlcd
self.mode = 0
self.initialized = False
self.lcd_flush = lcd_flush
self.font = self.gfxlcd.options['font']
self.width = self.gfxlcd.width // self.font.size[0]
self.height = self.gfxlcd.height // self.font.size[1]
@ -21,14 +22,14 @@ class HD44780(BaseDriver):
'x': 0,
'y': 0
}
self.address = []
def init(self):
"""init function"""
if self.initialized:
return
char_lcd.LCD_LINES = []
for address in range(self.height):
char_lcd.LCD_LINES.append(100 + (address * self.width))
self.address.append(100 + (address * self.width))
self.gfxlcd.init()
self.initialized = True
@ -60,7 +61,7 @@ class HD44780(BaseDriver):
def char(self, char, enable=0):
"""write char to lcd"""
self.gfxlcd.draw_text(
self.position['x'], self.position['y'], char
self.position['x'], self.position['y'], char, True
)
self._increase_x()
@ -71,3 +72,13 @@ class HD44780(BaseDriver):
def _increase_x(self):
self.position['x'] += self.font.size[0]
def get_line_address(self, idx):
return self.address[idx]
def pre_flush(self, buffer):
pass
def post_flush(self, buffer):
"""called after flush()"""
if self.lcd_flush:
self.gfxlcd.flush(True)

View File

@ -33,19 +33,11 @@ class ILI9325(Area, Chip):
Chip.__init__(self, width, height, driver, True)
Area.__init__(self, driver)
def _converted_background_color(self):
def _convert_color(self, color):
"""color from 8-8-8 to 5-6-5"""
rgb = self.options['background_color']['R'] << 16 | \
self.options['background_color']['G'] << 8 | \
self.options['background_color']['B']
return ((rgb & 0x00f80000) >> 8) |\
((rgb & 0x0000fc00) >> 5) | ((rgb & 0x000000f8) >> 3)
def _converted_color(self):
"""color from 8-8-8 to 5-6-5"""
rgb = self.options['color']['R'] << 16 | \
self.options['color']['G'] << 8 | \
self.options['color']['B']
rgb = color['R'] << 16 | \
color['G'] << 8 | \
color['B']
return ((rgb & 0x00f80000) >> 8) |\
((rgb & 0x0000fc00) >> 5) | ((rgb & 0x000000f8) >> 3)

View File

@ -12,19 +12,11 @@ class ILI9486(Area, Chip):
Chip.__init__(self, width, height, driver, True)
Area.__init__(self, driver)
def _converted_background_color(self):
def _convert_color(self, color):
"""color from 8-8-8 to 5-6-5"""
rgb = self.options['background_color']['R'] << 16 | \
self.options['background_color']['G'] << 8 | \
self.options['background_color']['B']
return ((rgb & 0x00f80000) >> 8) |\
((rgb & 0x0000fc00) >> 5) | ((rgb & 0x000000f8) >> 3)
def _converted_color(self):
"""color from 8-8-8 to 5-6-5"""
rgb = self.options['color']['R'] << 16 | \
self.options['color']['G'] << 8 | \
self.options['color']['B']
rgb = color['R'] << 16 | \
color['G'] << 8 | \
color['B']
return ((rgb & 0x00f80000) >> 8) |\
((rgb & 0x0000fc00) >> 5) | ((rgb & 0x000000f8) >> 3)

View File

@ -6,7 +6,7 @@ from gfxlcd.abstract.chip import Chip
class NJU6450(Page, Chip):
"""Class for an LCD with NJU6450 chip"""
def __init__(self, width, height, driver, auto_flush=True):
def __init__(self, width, height, driver, auto_flush=False):
Chip.__init__(self, width, height, driver, auto_flush)
Page.__init__(self, driver)
self.rotation = 0
@ -36,12 +36,11 @@ class NJU6450(Page, Chip):
self.driver.cmd(0xB8 | pos_y, 1)
self.driver.cmd(0x00 | (pos_x - width//2), 1)
def _converted_background_color(self):
"""convert RGB background to available color"""
return 1
def _convert_color(self, color):
"""convert color to avaiable one"""
if color['R'] == 0 and color['G'] == 0 and color['B'] == 0:
return 0
def _converted_color(self):
"""convert RGB color to available color"""
return 1
def flush(self, force=None):
@ -63,7 +62,7 @@ class NJU6450(Page, Chip):
else:
self.driver.data(self.get_page_value(i, j), 1)
def draw_pixel(self, pos_x, pos_y):
def draw_pixel(self, pos_x, pos_y, color=None):
"""draw a pixel at x,y"""
if self.rotation == 90:
pos_x, pos_y = self.height - pos_y - 1, pos_x
@ -71,7 +70,7 @@ class NJU6450(Page, Chip):
pos_x, pos_y = self.width - pos_x - 1, self.height - pos_y - 1
if self.rotation == 270:
pos_x, pos_y = pos_y, self.width - pos_x - 1
Page.draw_pixel(self, pos_x, pos_y)
Page.draw_pixel(self, pos_x, pos_y, color)
def fill_rect(self, pos_x1, pos_y1, pos_x2, pos_y2):
"""draw a filled rectangle"""

View File

@ -10,13 +10,9 @@ class NullArea(Area, Chip):
Area.__init__(self, driver)
self.rotation = 0
def _converted_background_color(self):
"""dummy background color"""
return 2
def _converted_color(self):
"""dummy color"""
return 1
def _convert_color(self, color):
"""color color"""
return color
def init(self):
"""init display"""

View File

@ -22,12 +22,11 @@ class NullPage(Page, Chip):
Page.init(self)
Chip.init(self)
def _converted_background_color(self):
"""convert RGB background to available color"""
return 1
def _convert_color(self, color):
"""convert color to avaiable one"""
if color['R'] == 0 and color['G'] == 0 and color['B'] == 0:
return 0
def _converted_color(self):
"""convert RGB color to available color"""
return 1
def flush(self, force=None):

View File

@ -24,7 +24,7 @@ class SSD1306(Page, Chip):
}
}
def __init__(self, width, height, driver, auto_flush=True):
def __init__(self, width, height, driver, auto_flush=False):
Chip.__init__(self, width, height, driver, auto_flush)
Page.__init__(self, driver)
self.rotation = 0
@ -76,12 +76,11 @@ class SSD1306(Page, Chip):
self.driver.cmd(0x14) # enable charge pump
self.driver.cmd(0xaf) # turn on panel
def _converted_background_color(self):
"""convert RGB background to available color"""
return 1
def _convert_color(self, color):
"""convert color to avaiable one"""
if color['R'] == 0 and color['G'] == 0 and color['B'] == 0:
return 0
def _converted_color(self):
"""convert RGB color to available color"""
return 1
def flush(self, force=None):
@ -108,8 +107,8 @@ class SSD1306(Page, Chip):
self.driver.cmd(pos_x1)
self.driver.cmd(pos_x2)
def draw_pixel(self, pos_x, pos_y):
def draw_pixel(self, pos_x, pos_y, color=None):
"""draw a pixel at x,y"""
if self.rotation == 90 or self.rotation == 270:
pos_x, pos_y = pos_y, pos_x
Page.draw_pixel(self, pos_x, pos_y)
Page.draw_pixel(self, pos_x, pos_y, color)

View File

@ -5,7 +5,10 @@ from gfxlcd.driver.null.null_area import NullArea
from gfxlcd.driver.null.area_driver import AreaDriver
class TestPageDrawing(object):
class TestAreaDrawing(object):
color_black = {'R': 0, 'G': 0, 'B': 0}
color_white = {'R': 255, 'G': 255, 'B':255}
def setUp(self):
self.drv = AreaDriver(10, 16)
self.lcd = NullArea(10, 16, self.drv, False)
@ -24,189 +27,189 @@ class TestPageDrawing(object):
def test_draw_pixel(self):
self.lcd.draw_pixel(1, 1)
buffer = self.get_buffer()
buffer[1][1] = 1
buffer[1][1] = self.color_white
assert_equal(self.drv.buffer, buffer)
def test_draw_two_pixel(self):
self.lcd.draw_pixel(1, 1)
self.lcd.draw_pixel(2, 2)
buffer = self.get_buffer()
buffer[1][1] = 1
buffer[2][2] = 1
buffer[1][1] = self.color_white
buffer[2][2] = self.color_white
assert_equal(self.drv.buffer, buffer)
def test_draw_horizontal_line(self):
self.lcd.draw_line(1, 1, 8, 1)
buffer = self.get_buffer()
buffer[1][1] = 1
buffer[2][1] = 1
buffer[3][1] = 1
buffer[4][1] = 1
buffer[5][1] = 1
buffer[6][1] = 1
buffer[7][1] = 1
buffer[8][1] = 1
buffer[1][1] = self.color_white
buffer[2][1] = self.color_white
buffer[3][1] = self.color_white
buffer[4][1] = self.color_white
buffer[5][1] = self.color_white
buffer[6][1] = self.color_white
buffer[7][1] = self.color_white
buffer[8][1] = self.color_white
assert_equal(self.drv.buffer, buffer)
def test_draw_vertical_line(self):
self.lcd.draw_line(1, 1, 1, 14)
buffer = self.get_buffer()
buffer[1][1] = 1
buffer[1][2] = 1
buffer[1][3] = 1
buffer[1][4] = 1
buffer[1][5] = 1
buffer[1][6] = 1
buffer[1][7] = 1
buffer[1][8] = 1
buffer[1][9] = 1
buffer[1][10] = 1
buffer[1][11] = 1
buffer[1][12] = 1
buffer[1][13] = 1
buffer[1][14] = 1
buffer[1][1] = self.color_white
buffer[1][2] = self.color_white
buffer[1][3] = self.color_white
buffer[1][4] = self.color_white
buffer[1][5] = self.color_white
buffer[1][6] = self.color_white
buffer[1][7] = self.color_white
buffer[1][8] = self.color_white
buffer[1][9] = self.color_white
buffer[1][10] = self.color_white
buffer[1][11] = self.color_white
buffer[1][12] = self.color_white
buffer[1][13] = self.color_white
buffer[1][14] = self.color_white
assert_equal(self.drv.buffer, buffer)
def test_draw_overlapping_lines(self):
self.lcd.draw_line(1, 1, 8, 1)
self.lcd.draw_line(1, 1, 1, 14)
buffer = self.get_buffer()
buffer[1][1] = 1
buffer[2][1] = 1
buffer[3][1] = 1
buffer[4][1] = 1
buffer[5][1] = 1
buffer[6][1] = 1
buffer[7][1] = 1
buffer[8][1] = 1
buffer[1][1] = 1
buffer[1][2] = 1
buffer[1][3] = 1
buffer[1][4] = 1
buffer[1][5] = 1
buffer[1][6] = 1
buffer[1][7] = 1
buffer[1][8] = 1
buffer[1][9] = 1
buffer[1][10] = 1
buffer[1][11] = 1
buffer[1][12] = 1
buffer[1][13] = 1
buffer[1][14] = 1
buffer[1][1] = self.color_white
buffer[2][1] = self.color_white
buffer[3][1] = self.color_white
buffer[4][1] = self.color_white
buffer[5][1] = self.color_white
buffer[6][1] = self.color_white
buffer[7][1] = self.color_white
buffer[8][1] = self.color_white
buffer[1][1] = self.color_white
buffer[1][2] = self.color_white
buffer[1][3] = self.color_white
buffer[1][4] = self.color_white
buffer[1][5] = self.color_white
buffer[1][6] = self.color_white
buffer[1][7] = self.color_white
buffer[1][8] = self.color_white
buffer[1][9] = self.color_white
buffer[1][10] = self.color_white
buffer[1][11] = self.color_white
buffer[1][12] = self.color_white
buffer[1][13] = self.color_white
buffer[1][14] = self.color_white
assert_equal(self.drv.buffer, buffer)
def test_draw_diagonal_line(self):
self.lcd.draw_line(0, 0, 9, 1)
buffer = self.get_buffer()
buffer[0][0] = 1
buffer[1][0] = 1
buffer[2][0] = 1
buffer[3][0] = 1
buffer[4][0] = 1
buffer[5][1] = 1
buffer[6][1] = 1
buffer[7][1] = 1
buffer[8][1] = 1
buffer[9][1] = 1
buffer[0][0] = self.color_white
buffer[1][0] = self.color_white
buffer[2][0] = self.color_white
buffer[3][0] = self.color_white
buffer[4][0] = self.color_white
buffer[5][1] = self.color_white
buffer[6][1] = self.color_white
buffer[7][1] = self.color_white
buffer[8][1] = self.color_white
buffer[9][1] = self.color_white
assert_equal(self.drv.buffer, buffer)
def test_draw_diagonal_line_even_steps(self):
self.lcd.draw_line(0, 0, 9, 15)
buffer = self.get_buffer()
buffer[0][0] = 1
buffer[1][1] = 1
buffer[2][2] = 1
buffer[2][3] = 1
buffer[3][4] = 1
buffer[3][5] = 1
buffer[4][6] = 1
buffer[4][7] = 1
buffer[5][8] = 1
buffer[5][9] = 1
buffer[6][10] = 1
buffer[6][11] = 1
buffer[7][12] = 1
buffer[7][13] = 1
buffer[8][14] = 1
buffer[9][15] = 1
buffer[0][0] = self.color_white
buffer[1][1] = self.color_white
buffer[2][2] = self.color_white
buffer[2][3] = self.color_white
buffer[3][4] = self.color_white
buffer[3][5] = self.color_white
buffer[4][6] = self.color_white
buffer[4][7] = self.color_white
buffer[5][8] = self.color_white
buffer[5][9] = self.color_white
buffer[6][10] = self.color_white
buffer[6][11] = self.color_white
buffer[7][12] = self.color_white
buffer[7][13] = self.color_white
buffer[8][14] = self.color_white
buffer[9][15] = self.color_white
assert_equal(self.drv.buffer, buffer)
def test_draw_diagonal_line_even_steps_even_rest(self):
self.lcd.draw_line(0, 0, 9, 5)
buffer = self.get_buffer()
buffer[0][0] = 1
buffer[1][1] = 1
buffer[2][1] = 1
buffer[3][2] = 1
buffer[4][2] = 1
buffer[5][3] = 1
buffer[6][3] = 1
buffer[7][4] = 1
buffer[8][4] = 1
buffer[9][5] = 1
buffer[0][0] = self.color_white
buffer[1][1] = self.color_white
buffer[2][1] = self.color_white
buffer[3][2] = self.color_white
buffer[4][2] = self.color_white
buffer[5][3] = self.color_white
buffer[6][3] = self.color_white
buffer[7][4] = self.color_white
buffer[8][4] = self.color_white
buffer[9][5] = self.color_white
assert_equal(self.drv.buffer, buffer)
def test_draw_diagonal_line_odd_steps_even_rest(self):
self.lcd.draw_line(0, 0, 9, 6)
buffer = self.get_buffer()
buffer[0][0] = 1
buffer[1][1] = 1
buffer[2][2] = 1
buffer[3][2] = 1
buffer[4][3] = 1
buffer[5][3] = 1
buffer[6][4] = 1
buffer[7][4] = 1
buffer[8][5] = 1
buffer[9][6] = 1
buffer[0][0] = self.color_white
buffer[1][1] = self.color_white
buffer[2][2] = self.color_white
buffer[3][2] = self.color_white
buffer[4][3] = self.color_white
buffer[5][3] = self.color_white
buffer[6][4] = self.color_white
buffer[7][4] = self.color_white
buffer[8][5] = self.color_white
buffer[9][6] = self.color_white
assert_equal(self.drv.buffer, buffer)
def test_draw_diagonal_line_even_steps_odd_rest(self):
self.lcd.draw_line(0, 0, 8, 6)
buffer = self.get_buffer()
buffer[0][0] = 1
buffer[1][1] = 1
buffer[2][2] = 1
buffer[3][3] = 1
buffer[4][3] = 1
buffer[5][3] = 1
buffer[6][4] = 1
buffer[7][5] = 1
buffer[8][6] = 1
buffer[0][0] = self.color_white
buffer[1][1] = self.color_white
buffer[2][2] = self.color_white
buffer[3][3] = self.color_white
buffer[4][3] = self.color_white
buffer[5][3] = self.color_white
buffer[6][4] = self.color_white
buffer[7][5] = self.color_white
buffer[8][6] = self.color_white
assert_equal(self.drv.buffer, buffer)
def test_draw_rect(self):
self.lcd.draw_rect(2, 2, 7, 11)
buffer = self.get_buffer()
buffer[2][2] = 1
buffer[2][3] = 1
buffer[2][4] = 1
buffer[2][5] = 1
buffer[2][6] = 1
buffer[2][7] = 1
buffer[2][8] = 1
buffer[2][9] = 1
buffer[2][10] = 1
buffer[2][11] = 1
buffer[7][2] = 1
buffer[7][3] = 1
buffer[7][4] = 1
buffer[7][5] = 1
buffer[7][6] = 1
buffer[7][7] = 1
buffer[7][8] = 1
buffer[7][9] = 1
buffer[7][10] = 1
buffer[7][11] = 1
buffer[2][2] = self.color_white
buffer[2][3] = self.color_white
buffer[2][4] = self.color_white
buffer[2][5] = self.color_white
buffer[2][6] = self.color_white
buffer[2][7] = self.color_white
buffer[2][8] = self.color_white
buffer[2][9] = self.color_white
buffer[2][10] = self.color_white
buffer[2][11] = self.color_white
buffer[7][2] = self.color_white
buffer[7][3] = self.color_white
buffer[7][4] = self.color_white
buffer[7][5] = self.color_white
buffer[7][6] = self.color_white
buffer[7][7] = self.color_white
buffer[7][8] = self.color_white
buffer[7][9] = self.color_white
buffer[7][10] = self.color_white
buffer[7][11] = self.color_white
buffer[3][2] = 1
buffer[4][2] = 1
buffer[5][2] = 1
buffer[6][2] = 1
buffer[3][11] = 1
buffer[4][11] = 1
buffer[5][11] = 1
buffer[6][11] = 1
buffer[3][2] = self.color_white
buffer[4][2] = self.color_white
buffer[5][2] = self.color_white
buffer[6][2] = self.color_white
buffer[3][11] = self.color_white
buffer[4][11] = self.color_white
buffer[5][11] = self.color_white
buffer[6][11] = self.color_white
assert_equal(self.drv.buffer, buffer)
def test_fill_rect(self):
@ -214,54 +217,54 @@ class TestPageDrawing(object):
buffer = self.get_buffer()
for x in range(6):
for y in range(10):
buffer[2+x][2+y] = 2
buffer[2+x][2+y] = self.color_black
assert_equal(self.drv.buffer, buffer)
def test_draw_circle(self):
self.lcd.draw_circle(5, 8, 3)
buffer = self.get_buffer()
buffer[2][7] = 1
buffer[2][8] = 1
buffer[2][9] = 1
buffer[3][6] = 1
buffer[3][7] = 1
buffer[3][9] = 1
buffer[3][10] = 1
buffer[4][5] = 1
buffer[4][6] = 1
buffer[4][10] = 1
buffer[4][11] = 1
buffer[5][5] = 1
buffer[5][11] = 1
buffer[6][5] = 1
buffer[6][6] = 1
buffer[7][6] = 1
buffer[7][7] = 1
buffer[8][7] = 1
buffer[8][8] = 1
buffer[8][9] = 1
buffer[7][9] = 1
buffer[7][10] = 1
buffer[6][10] = 1
buffer[6][11] = 1
buffer[2][7] = self.color_white
buffer[2][8] = self.color_white
buffer[2][9] = self.color_white
buffer[3][6] = self.color_white
buffer[3][7] = self.color_white
buffer[3][9] = self.color_white
buffer[3][10] = self.color_white
buffer[4][5] = self.color_white
buffer[4][6] = self.color_white
buffer[4][10] = self.color_white
buffer[4][11] = self.color_white
buffer[5][5] = self.color_white
buffer[5][11] = self.color_white
buffer[6][5] = self.color_white
buffer[6][6] = self.color_white
buffer[7][6] = self.color_white
buffer[7][7] = self.color_white
buffer[8][7] = self.color_white
buffer[8][8] = self.color_white
buffer[8][9] = self.color_white
buffer[7][9] = self.color_white
buffer[7][10] = self.color_white
buffer[6][10] = self.color_white
buffer[6][11] = self.color_white
assert_equal(self.drv.buffer, buffer)
def test_draw_arc(self):
self.lcd.draw_arc(5, 8, 3, 90, 270)
buffer = self.get_buffer()
buffer[2][7] = 1
buffer[2][8] = 1
buffer[2][9] = 1
buffer[3][6] = 1
buffer[3][7] = 1
buffer[3][9] = 1
buffer[3][10] = 1
buffer[4][5] = 1
buffer[4][6] = 1
buffer[4][10] = 1
buffer[4][11] = 1
buffer[5][5] = 1
buffer[5][11] = 1
buffer[2][7] = self.color_white
buffer[2][8] = self.color_white
buffer[2][9] = self.color_white
buffer[3][6] = self.color_white
buffer[3][7] = self.color_white
buffer[3][9] = self.color_white
buffer[3][10] = self.color_white
buffer[4][5] = self.color_white
buffer[4][6] = self.color_white
buffer[4][10] = self.color_white
buffer[4][11] = self.color_white
buffer[5][5] = self.color_white
buffer[5][11] = self.color_white
assert_equal(self.drv.buffer, buffer)
def draw_buffer(self, buffer):

View File

@ -0,0 +1,13 @@
import sys
from nose.tools import assert_equal
sys.path.append("../../")
from gfxlcd.driver.ili9325.gpio import GPIO
from gfxlcd.driver.ili9325.ili9325 import ILI9325
class TestILI9325Drawing(object):
def test_initialize(self):
drv = GPIO()
drv.pins['LED'] = 6
drv.pins['CS'] = 18
ILI9325(240, 320, drv)

View File

@ -0,0 +1,10 @@
import sys
from nose.tools import assert_equal
sys.path.append("../../")
from gfxlcd.driver.ili9486.spi import SPI
from gfxlcd.driver.ili9486.ili9486 import ILI9486
class TestILI9486(object):
def test_initialize(self):
ILI9486(320, 480, SPI())

View File

@ -0,0 +1,11 @@
import sys
from nose.tools import assert_equal
sys.path.append("../../")
from gfxlcd.driver.nju6450.gpio import GPIO
from gfxlcd.driver.nju6450.nju6450 import NJU6450
class TestNJU6450(object):
def test_initialize(self):
drv = GPIO()
NJU6450(122, 32, drv)

View File

@ -0,0 +1,10 @@
import sys
from nose.tools import assert_equal
sys.path.append("../../")
from gfxlcd.driver.ssd1306.spi import SPI
from gfxlcd.driver.ssd1306.ssd1306 import SSD1306
class TestNJU6450(object):
def test_initialize(self):
SSD1306(128, 64, SPI())