Pango Error bei Gtk Projekt
Verfasst: Donnerstag 11. August 2016, 17:34
Moin moin,
Ich bin noch ein Neuling in Sachen Python und gtk, also wenn ihr mir helfen könnt versucht es so einfach wie möglich zu erklären.
Ich habe mir eine Visualisierung eines Sport- Steuergeräts auf dem Raspberry Pi geschrieben...
Eigentlich läuft alles super, doch nach wenigen Minuten ist die CPU des Pi am Anschlag und ich bekomme in der Console folgende Fehlermeldung:
Pango:ERROR:/usr/src/packages/BUILD/pango1.0-1.32.5/./pango/pango-layout.c:3939:pango_layout_check_lines: assertion failed: (end <= (layout->text + layout->length))
Ich kann damit nichts anfangen. Vielleicht hat hier jemand ne Idee wo das Programm an die Wand läuft.
Hier der Code:
Ich bin noch ein Neuling in Sachen Python und gtk, also wenn ihr mir helfen könnt versucht es so einfach wie möglich zu erklären.
Ich habe mir eine Visualisierung eines Sport- Steuergeräts auf dem Raspberry Pi geschrieben...
Eigentlich läuft alles super, doch nach wenigen Minuten ist die CPU des Pi am Anschlag und ich bekomme in der Console folgende Fehlermeldung:
Pango:ERROR:/usr/src/packages/BUILD/pango1.0-1.32.5/./pango/pango-layout.c:3939:pango_layout_check_lines: assertion failed: (end <= (layout->text + layout->length))
Ich kann damit nichts anfangen. Vielleicht hat hier jemand ne Idee wo das Programm an die Wand läuft.
Hier der Code:
Code: Alles auswählen
import pygtk
import gtk
import time
import threading
import serial
import array
import gc
#**********************************************************************************
gc.enable()
gtk.threads_init()
class Gui:
def __init__(self):
#**********************************************************************************
global start_window
start_window = gtk.Window()
wait = gtk.Image()
wait.set_from_file("laden.jpg")
start_window.add(wait)
wait.show()
start_window.show()
#**********************************************************************************
# Create a window.
global window
window = gtk.Window()
window.set_title("Archery Electronic")
window.connect("destroy", gtk.main_quit)
#**********************************************************************************
# Create a Fixed Container
global fixed
fixed = gtk.Fixed()
window.add(fixed)
fixed.show()
global label
global leer
global rot
global gelb
global gruen
global ab
global ab_rot
global ab_gelb
global ab_gruen
global cd
global cd_rot
global cd_gelb
global cd_gruen
label = gtk.Label()
label.set_markup('<span size="70000"> </span>')
fixed.put(label,272,856)
class UART_Auswertung(threading.Thread):
#*************************************************************************************
def run(self):
leer = gtk.Image()
leer.set_from_file("leer.jpg")
fixed.put(leer,0,0)
rot = gtk.Image()
rot.set_from_file("rot.jpg")
fixed.put(rot,0,0)
gelb = gtk.Image()
gelb.set_from_file("gelb.jpg")
fixed.put(gelb,0,0)
gruen = gtk.Image()
gruen.set_from_file("gruen.jpg")
fixed.put(gruen,0,0)
ab = gtk.Image()
ab.set_from_file("ab.jpg")
fixed.put(ab,0,0)
ab_rot = gtk.Image()
ab_rot.set_from_file("ab_rot.jpg")
fixed.put(ab_rot,0,0)
ab_gelb = gtk.Image()
ab_gelb.set_from_file("ab_gelb.jpg")
fixed.put(ab_gelb,0,0)
ab_gruen = gtk.Image()
ab_gruen.set_from_file("ab_gruen.jpg")
fixed.put(ab_gruen,0,0)
cd = gtk.Image()
cd.set_from_file("cd.jpg")
fixed.put(cd,0,0)
cd_rot = gtk.Image()
cd_rot.set_from_file("cd_rot.jpg")
fixed.put(cd_rot,0,0)
cd_gelb = gtk.Image()
cd_gelb.set_from_file("cd_gelb.jpg")
fixed.put(cd_gelb,0,0)
cd_gruen = gtk.Image()
cd_gruen.set_from_file("cd_gruen.jpg")
fixed.put(cd_gruen,0,0)
start_window.destroy()
leer.show()
window.show()
global zeit_buffer
zeit_buffer = 0
#*************************************************************************************
ser = serial.Serial(
port='/dev/ttyAMA0',
baudrate = 4800,
parity=serial.PARITY_NONE,
stopbits=serial.STOPBITS_ONE,
bytesize=serial.EIGHTBITS,
timeout=1
)
buffer = []
while True:
x = ser.read(3)
buffer.extend(list(x))
data = buffer[:]
del buffer[:]
if data != [] :
INT1 = ord(data[1])
BIN1 = "{0:08b}".format(INT1)
INT2 = ord(data[2])
BIN2 = "{0:08b}".format(INT2)
einer = INT1 & 15
zehner = (INT1 & 240) >> 4
hunderter = INT2 & 15
zeit = (100*hunderter)+(10*zehner)+einer
rotte = "aus"
if BIN2[1] == "1" :
rotte = "AB"
if BIN2[0] == "1" :
rotte = "CD"
ampel = "aus"
if ((INT2 & 48) >> 4) == 3:
ampel = "ROT"
if ((INT2 & 48) >> 4) == 2:
ampel = "GELB"
if ((INT2 & 48) >> 4) == 1:
ampel = "GRUEN"
label.hide()
leer.hide()
rot.hide()
gelb.hide()
gruen.hide()
ab.hide()
ab_rot.hide()
ab_gelb.hide()
ab_gruen.hide()
cd.hide()
cd_rot.hide()
cd_gelb.hide()
cd_gruen.hide()
if zeit_buffer != zeit:
if rotte == "aus":
if ampel == "aus":
leer.show()
if ampel == "ROT":
rot.show()
if ampel == "GELB":
gelb.show()
if ampel == "GRUEN":
gruen.show()
if rotte == "AB":
if ampel == "aus":
ab.show()
if ampel == "ROT":
ab_rot.show()
if ampel == "GELB":
ab_gelb.show()
if ampel == "GRUEN":
ab_gruen.show()
if rotte == "CD":
if ampel == "aus":
cd.show()
if ampel == "ROT":
cd_rot.show()
if ampel == "GELB":
cd_gelb.show()
if ampel == "GRUEN":
cd_gruen.show()
if len(str(zeit)) == 3:
fixed.put(label,272,856)
if len(str(zeit)) == 2:
fixed.put(label,300,856)
if len(str(zeit)) == 1:
fixed.put(label,325,856)
TEXT = "<span size=\"70000\">"+str(zeit)+"</span>"
label.set_markup(TEXT)
label.show()
#___________________________________________________________________
if zeit_buffer == zeit:
if rotte == "aus":
if ampel == "aus":
leer.show()
if ampel == "ROT":
rot.show()
if rotte == "AB":
if ampel == "aus":
ab.show()
if ampel == "ROT":
ab_rot.show()
if rotte == "CD":
if ampel == "aus":
cd.show()
if ampel == "ROT":
cd_rot.show()
zeit_buffer = zeit
#*************************************************************************************
if data == []:
print "Keine Daten vorhanden"
#*************************************************************************************
if __name__ == "__main__":
Gui()
fs = UART_Auswertung()
fs.start()
gtk.main()