Beispiel #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()
Beispiel #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()
Beispiel #3
0
 def run(self):
    self._init_draw()
    while self.running:
       if self.contin_draw:
          self._init_draw()
       sleep(self.pre)
       for _ in range(self.cnt):
          oled.invert(True)
          sleep(self.inner)
          oled.invert(False)
          sleep(self.inner)
Beispiel #4
0
def caution():
    global caution_written, blink_state
    if not caution_written:
        caution_written = True
        image = Image.new("1", (W, H), BLACK)
        txt = "CAUTION"
        font = fit_text_width(txt, 1.0)
        draw = ImageDraw.Draw(image)
        dim = font.getsize(txt)
        draw.text(((W - dim[0]) / 2, (H - dim[1]) / 2), txt, WHITE, font=font)
        decorations(draw)
        show_image(image)
    else:
        oled.invert(blink_state)
        if blink_state:
            blink_state = False
        else:
            blink_state = True
Beispiel #5
0
def caution():
   global caution_written, blink_state
   if not caution_written:
      caution_written = True
      image = Image.new("1", (W, H), BLACK)
      txt = "CAUTION"
      font = fit_text_width(txt, 1.0)
      draw = ImageDraw.Draw(image)
      dim = font.getsize(txt)
      draw.text(((W - dim[0]) / 2, (H - dim[1]) / 2), txt, WHITE, font = font)
      decorations(draw)
      show_image(image)
   else:
      oled.invert(blink_state)
      if blink_state:
         blink_state = False
      else:
         blink_state = True