class App(object): def __init__(self, config): self.epd = EPD() self.epd.init() self.font = config['font'] self.route = config['route'] self.stop = config['stop'] self.curlbus = config['curlbus'] def draw(self, eta, last_updated): self.epd.init() image = Image.new('1', (self.epd.height, self.epd.width), 255) draw = ImageDraw.Draw(image) # Draw the line number on the top conrner font = ImageFont.truetype(self.font, 30) draw.text((5, 2), self.route, font=font, fill=0) draw.rectangle([(0, 0), (60, 40)]) # Draw the ETA font = ImageFont.truetype(self.font, 60) draw.text((self.epd.height / 2 - 50, self.epd.width / 2 - 50), eta, font=font, fill=0) # Draw the last_updated timestamp font = ImageFont.truetype(self.font, 16) draw.text((0, self.epd.width - 20), last_updated, font=font, fill=0) self.epd.smart_update(image.rotate(90, expand=True)) self.epd.sleep() def update(self): response = requests.get("{0}/{1}".format(self.curlbus, self.stop), headers=HEADERS) response_data = response.json() last_updated = response_data['timestamp'] next_eta = "Nothing :(" etas = [] for visit in response_data['visits'][self.stop]: if visit['line_name'] == self.route: etas.append(parse(visit['eta'])) if len(etas) > 0: closest_eta = sorted(etas)[0] next_eta = round( (closest_eta - datetime.now(dateutil.tz.tzlocal())).total_seconds() / 60) if next_eta <= 0: next_eta = 'Now' else: next_eta = '{0}m'.format(next_eta) self.draw(next_eta, last_updated) def run(self): while True: self.update() time.sleep(60)
def main(): print("initializing...") epd = EPD() epd.init() print("initialized.") image = Image.new('1', (epd.width, epd.height), 255) epd.display_frame(image) epd.sleep() print("Done.")
def main(): print("initializing...") epd = EPD() epd.init() image = Image.new('1', (epd.width, epd.height), 255) draw = ImageDraw.Draw(image) font = ImageFont.truetype( '/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf', 18) draw.text((0, 5), 'Interactive demo', font=font, fill=0) font = ImageFont.truetype( '/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf', 16) epd.display_frame(image) loc = 25 full_update = False print("Ready.") try: while True: text = input("> ") if loc > epd.height - 10: loc = 0 image = Image.new('1', (epd.width, epd.height), 255) draw = ImageDraw.Draw(image) full_update = True draw.text((5, loc), text, font=font, fill=0) if full_update: print("Doing a full update...") epd.display_frame(image) full_update = False else: print("...") epd.display_partial_frame(image, 0, loc, 20, epd.width, fast=True) loc += 20 except KeyboardInterrupt: epd.sleep() print("Bye!") raise
def main(): print("initializing", end="") sys.stdout.flush() epd = EPD() epd.init() print(".", end="") sys.stdout.flush() image = Image.new('1', (epd.width, epd.height), 255) draw = ImageDraw.Draw(image) font = ImageFont.truetype( '/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf', 20) draw.text((0, 5), 'Partial refresh', font=font, fill=0) font = ImageFont.truetype( '/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf', 18) draw.line([0, 28, epd.width, 28], fill=0, width=3) epd.display_frame(image) print(".") loc = 30 draw.text((0, loc), "Look!", font=font, fill=0) epd.smart_update(image) loc += 20 print(".", end="") sys.stdout.flush() draw.text((0, loc), "No need to refresh", font=font, fill=0) draw.text((0, loc + 20), "the entire screen.", font=font, fill=0) epd.smart_update(image) loc += 45 print(".", end="") sys.stdout.flush() draw.text((0, loc), "It's fast", font=font, fill=0) draw.text((0, loc + 20), "and convenient", font=font, fill=0) epd.smart_update(image) loc += 20 print(".", end="") sys.stdout.flush() epd.sleep() print("!")
# print(getattr(report,'lat',0.0),getattr(report,'lon',0.0)), print(report) speedkmh = getattr(report, 'speed', 'nan') # print(speedkmh,type(speedkmh)) # speedkmh = int(speedkmh) # print(speedkmh,type(speedkmh)) # print(speedkmh,type(speedkmh)) if type(speedkmh) is float: # speedkmh = 1.609344 * speedkmh speed = speedkmh # speed(speedkmh) lat = getattr(report, 'lat', 0.0) lon = getattr(report, 'lon', 0.0) print(lat, lon) if lon != 0.0 & lat != 0.0: calctotdis((lat, lon)) # print (getattr(report,'lat',0.0),"\t"), # print (getattr(report,'lon',0.0),"\t"), # print (getattr(report,'time',''),"\t"), # print (getattr(report,'alt','nan'),"\t\t"), # print (getattr(report,'epv','nan'),"\t"), # print (getattr(report,'ept','nan'),"\t"), # print (getattr(report,'speed','nan'),"\t"), # print (getattr(report,'climb','nan'),"\t") time.sleep(5) except (KeyboardInterrupt, SystemExit): autosaveall() epd.sleep() subprocess.Popen(["python3", "button.py"]) print("Done.\nExiting.")