Esempio n. 1
0
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()
Esempio n. 2
0
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()
Esempio n. 3
0
#!/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)