Python threading problem.
Sitter och försöker få följande kodsnutt att fungera.
Problemet är att när tråden ska köras fastnar den i while-loopen och fortsätter inte med huvudkoden. Vad har jag missat?
#!/usr/bin/python3
import argparse, time, sys, os, rgbmatrix, threading, queue
from rgbmatrix import graphics
from rgbmatrix import RGBMatrix
class LedText:
def __init__(self):
self.DEFAULTFONT = "fonts/6x10.bdf"
self.msg = None
self.color = graphics.Color(255, 0 ,0)
self.x = 0
self.y = 0
self.matrix = RGBMatrix(16, 1, 1)
self.matrix.pwmBits = 11
self.matrix.brightness = 20
self.matrix.luminanceCorrect = False
self.canvas = self.matrix;
self.font = graphics.Font()
self.font.LoadFont(self.DEFAULTFONT)
def SetText(self, msgIn):
self.msg = msgIn
def SetColor(self, r, g, b):
self.color = graphics.Color(r, g ,b)
def SetPos(self, x, y):
self.x = x
self.y = y
def SetFont(self, font):
fontPath = "fonts/"+font
if (path.isfile(fontPath)):
self.font.LoadFont(fontPath)
else:
self.font.LoadFont(self.DEFAULTFONT)
def Clear(self):
self.matrix.Clear()
def Update(self):
print("Tråden")
while True:
time.sleep(0.1)
self.Clear()
f=open("data")
text=f.read()
f.close
graphics.DrawText(self.canvas, self.font, self.x, self.y, self.color, text)
if __name__ == "__main__":
threads = []
count=0
led=LedText()
led.SetPos(5,10)
led.SetText("test")
print("Innan tråden")
t = threading.Thread(target=led.Update())
threads.append(t)
t.start()
print("Efter tråden")
while True:
count += 1
c = str(count)
print("Test om vi är igång efter start av thread: " + c)
time.sleep(1)