def main(name): global socket_map, gps_lock, font, spinning, caution_written socket_map = generate_map(name) gps_lock = Lock() font = ImageFont.truetype(getenv('PENGUPILOT_PATH') + '/display/service/verdana.ttf', 11) t = Thread(target = spinning_reader) t.daemon = True t.start() t1 = Thread(target = cpuavg) t1.daemon = True t1.start() t2 = Thread(target = pmreader) t2.daemon = True t2.start() t3 = Thread(target = gps) t3.daemon = True t3.start() screens = [(draw_health, 10), (draw_gps, 10), (draw_gps2, 10)] screen = 0 oled.init('/dev/i2c-3', W, H) sleep(5) try: while True: try: if not spinning: caution_written = False oled.invert(False) t = time() while time() < t + screens[screen][1]: image = Image.new("1", (W, H), BLACK) draw = ImageDraw.Draw(image) screens[screen][0](draw) show_image(image) sleep(1) if critical: alert = Alert(1.0, 0.1, 1, batt_low, True) alert.start() alert.join() else: caution() sleep(0.2) except Exception, e: print e screen = (screen + 1) % len(screens) except: oled.invert(False) oled.clear() oled.update()
def main(name): global socket_map, gps_lock, font, spinning, caution_written socket_map = generate_map(name) gps_lock = Lock() font = ImageFont.truetype( getenv('PENGUPILOT_PATH') + '/display/service/verdana.ttf', 11) t = Thread(target=spinning_reader) t.daemon = True t.start() t1 = Thread(target=cpuavg) t1.daemon = True t1.start() t2 = Thread(target=pmreader) t2.daemon = True t2.start() t3 = Thread(target=gps) t3.daemon = True t3.start() screens = [(draw_health, 10), (draw_gps, 10), (draw_gps2, 10)] screen = 0 oled.init('/dev/i2c-3', W, H) sleep(5) try: while True: try: if not spinning: caution_written = False oled.invert(False) t = time() while time() < t + screens[screen][1]: image = Image.new("1", (W, H), BLACK) draw = ImageDraw.Draw(image) screens[screen][0](draw) show_image(image) sleep(1) if critical: alert = Alert(1.0, 0.1, 1, batt_low, True) alert.start() alert.join() else: caution() sleep(0.2) except Exception, e: print e screen = (screen + 1) % len(screens) except: oled.invert(False) oled.clear() oled.update()
#!/usr/bin/env python # SSD1306 PIL (Python Imaging Library) Example # Please check out: http://www.pythonware.com/products/pil from PIL import Image, ImageDraw, ImageFont import pyssd1306 as oled from time import sleep I2C_BUS = "/dev/i2c-3" WHITE = 1 BLACK = 0 W = 128 H = 64 oled.init(I2C_BUS, W, H) image = Image.new("1", (W, H), BLACK) draw = ImageDraw.Draw(image) font = ImageFont.truetype('verdana.ttf', 11) draw.text((0, 0), 'HELLO, WORLD', font = font) string = ''.join(map(chr, image.getdata())) oled.blit(string)