Skip to content

Instantly share code, notes, and snippets.

@beigna
Last active July 23, 2016 04:02
Show Gist options
  • Save beigna/8702d41006651e0f0f407145627f450c to your computer and use it in GitHub Desktop.
Save beigna/8702d41006651e0f0f407145627f450c to your computer and use it in GitHub Desktop.
An OBD 16x2 Display
import curses
from time import sleep
from random import randint
myscreen = curses.initscr()
MAX_RPM = 6500
EMPTY = chr(9617)
FULL = chr(9619)
SPEED = ((0, 0), (1,20), (21,40), (35, 60), (50, 90), (60, 145))
if __name__ == '__main__':
screen = curses.initscr()
screen.resize(3, 16)
try:
while True:
gear = randint(0,5)
speed = randint(*SPEED[gear])
temp = randint(88, 92)
rpm = randint(850, MAX_RPM)
rpm_percent = int(round((rpm * 10) / MAX_RPM))
rpm_bar = '{}{}'.format(
FULL * rpm_percent,
EMPTY * (10 - rpm_percent)
)
screen.addstr(0, 0, 'G: {} S:{:3d} T:{:3d}'.format(gear, speed,
temp))
screen.addstr(1, 0, ' {:4d} {}'.format(rpm, rpm_bar))
screen.refresh()
sleep(1)
finally:
curses.endwin()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment