Added debug gui
This commit is contained in:
parent
629be93221
commit
51e8263dbd
@ -7,7 +7,10 @@ ScreenY = 40
|
|||||||
Serial = "/dev/ttyACM0"
|
Serial = "/dev/ttyACM0"
|
||||||
|
|
||||||
# kills app after some seconds if it sends no data
|
# kills app after some seconds if it sends no data
|
||||||
NoDataTimeout = 10
|
NoDataTimeout = 20
|
||||||
|
|
||||||
|
UseGui = True
|
||||||
|
GuiScaleFactor = 10
|
||||||
|
|
||||||
# first app is always running in IDLE
|
# first app is always running in IDLE
|
||||||
Apps = [
|
Apps = [
|
||||||
|
34
main.py
34
main.py
@ -6,6 +6,35 @@ import threading
|
|||||||
import json
|
import json
|
||||||
from bottle import route, run
|
from bottle import route, run
|
||||||
import time
|
import time
|
||||||
|
if config.UseGui:
|
||||||
|
import pygame
|
||||||
|
|
||||||
|
class Gui(threading.Thread):
|
||||||
|
def __init__(self):
|
||||||
|
super().__init__()
|
||||||
|
self.data = b"\x00"*config.ScreenX*config.ScreenY*3
|
||||||
|
|
||||||
|
def setData(self, data):
|
||||||
|
self.data = data
|
||||||
|
|
||||||
|
def run(self):
|
||||||
|
sf = config.GuiScaleFactor
|
||||||
|
screen = pygame.display.set_mode((sf*config.ScreenX, sf*config.ScreenY))
|
||||||
|
pygame.display.set_caption("Pixelserver - GUI Vis")
|
||||||
|
while True:
|
||||||
|
for event in pygame.event.get():
|
||||||
|
if event.type == pygame.QUIT:
|
||||||
|
sys.exit(0)
|
||||||
|
screen.fill((0, 255, 0))
|
||||||
|
for x in range(config.ScreenX):
|
||||||
|
for y in range(config.ScreenY):
|
||||||
|
i = x+y*config.ScreenX
|
||||||
|
r = (self.data[i*3+0])
|
||||||
|
g = (self.data[i*3+1])
|
||||||
|
b = (self.data[i*3+2])
|
||||||
|
|
||||||
|
pygame.draw.rect(screen, (r, g, b), pygame.Rect(sf*x, sf*y, sf, sf))
|
||||||
|
pygame.display.flip()
|
||||||
|
|
||||||
class SerialWriter(threading.Thread):
|
class SerialWriter(threading.Thread):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
@ -62,6 +91,9 @@ class AppRunner(threading.Thread):
|
|||||||
self.last_update = time.time()
|
self.last_update = time.time()
|
||||||
self.watchdog = WatchDog(lambda: self.appTimedOut(), lambda: self.terminateApp())
|
self.watchdog = WatchDog(lambda: self.appTimedOut(), lambda: self.terminateApp())
|
||||||
self.watchdog.start()
|
self.watchdog.start()
|
||||||
|
if config.UseGui:
|
||||||
|
self.gui = Gui()
|
||||||
|
self.gui.start()
|
||||||
|
|
||||||
def requestApp(self, app, param=""):
|
def requestApp(self, app, param=""):
|
||||||
with self.lock:
|
with self.lock:
|
||||||
@ -101,6 +133,8 @@ class AppRunner(threading.Thread):
|
|||||||
data = os.read(oshandle, config.ScreenX*config.ScreenY*3)
|
data = os.read(oshandle, config.ScreenX*config.ScreenY*3)
|
||||||
self.last_update = time.time()
|
self.last_update = time.time()
|
||||||
self.serial.setData(data)
|
self.serial.setData(data)
|
||||||
|
if config.UseGui:
|
||||||
|
self.gui.setData(data)
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user