@Streifenhase1: Der gezeigte Code ist unsinnig oder nicht lauffähig, denn entweder ist `schnitt1` *immer* grösser oder *immer* kleiner 0, oder in Python 3 bekommst Du eine Ausnahme weil man `schnitt` (Queue oder was anderes mit `get()`-Methode) nicht auf diese Weise mit 0 vergleichen kann.
Wo läuft das denn überhaupt? Das kann/darf ja nicht in einem eigenen Thread laufen, denn dann dürfte der Code mit dem Ändern der GUI da nicht stehen.
Was kommen denn da überhaupt für Werte an? Was bedeuten die? Wie sieht das Muster in dem Datenstrom aus?
2 oder mehr Aufgaben gleichzeitig
- __blackjack__
- User
- Beiträge: 13079
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
-
- User
- Beiträge: 90
- Registriert: Dienstag 22. Mai 2018, 07:15
Also in einem Thread wir eine SPS in einer while schleife ausgelesen. Die Werte werden in Queue geschrieben.
Müssen zwei Threads sein weil sonst immer etwas hängt da Über die SPS noch weitere werte angezeigt werden.
der gezeigte code wird als ein eigener Thread gestartet.
Die SPS gibt entweder "0" aus oder einen wert der aber "255" oder "455" oder auch ein anderer werte sein kann.
wenn ich es so durchlaufen lasse sehe ich die werte die die SPS ausgibt.
Wenn nun die SPS "0" ausgibt soll nichts gemacht werden und wenn die "SPS" einen wert der größer als "0" ausgibt soll ein Verzeichniss nach der Aktuellsten Datei durchsucht werden und diese dann geladen werden.
Wie gesagt wenn die SPS von 0 auf ein anderen wert springt wird ein Bild geladen,
wenn die SPS aber 0 ausgibt wird trotdem immer wieder das Bild geladen, so wie als ober die "If" Abfrage nicht mehr erfolgt
Code: Alles auswählen
self.schnitt1.put(schnitt)
der gezeigte code wird als ein eigener Thread gestartet.
Die SPS gibt entweder "0" aus oder einen wert der aber "255" oder "455" oder auch ein anderer werte sein kann.
wenn ich es so durchlaufen lasse sehe ich die werte die die SPS ausgibt.
Code: Alles auswählen
def picture_update(self):
while 1:
self.schnitt1.get()
schnitt = self.schnitt1
print (schnitt)
Wie gesagt wenn die SPS von 0 auf ein anderen wert springt wird ein Bild geladen,
wenn die SPS aber 0 ausgibt wird trotdem immer wieder das Bild geladen, so wie als ober die "If" Abfrage nicht mehr erfolgt
- __blackjack__
- User
- Beiträge: 13079
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
Wenn grundsätzlich bei 0 nichts gemacht werden soll, dann braucht man die 0 ja auch nicht in die Queue schreiben, sondern nur die Werte bei denen etwas gemacht werden soll.
Wie wird denn `picture_update()` ausgeführt? Wenn das in einem Thread läuft, dann darf da die GUI nicht verändert werden, machst Du es doch kann sonst was passieren. Wenn es nicht in einem Thread läuft, dann blockiert die ``while``-Schleife die GUI. Also entweder ist der Code zum GUI-Ändern dort falsch, oder die Endlosschleife.
Wird denn tatsächlich immer das Bild neu geladen? Oder einfach nur auch weiterhin angezeigt auch wenn die SPS wieder 0 liefert? Und wenn das Bild laden lange/länger dauert als SPS-Werte geliefert werden, ist Dir klar, dass sich dann Werte in der Queue aufstauen die danach dann weiter abgearbeitet werden und letztlich dann zumindest zeitweise nichts mehr mit dem *aktuellen* Wert von der SPS zu tun haben‽
Wie wird denn `picture_update()` ausgeführt? Wenn das in einem Thread läuft, dann darf da die GUI nicht verändert werden, machst Du es doch kann sonst was passieren. Wenn es nicht in einem Thread läuft, dann blockiert die ``while``-Schleife die GUI. Also entweder ist der Code zum GUI-Ändern dort falsch, oder die Endlosschleife.
Wird denn tatsächlich immer das Bild neu geladen? Oder einfach nur auch weiterhin angezeigt auch wenn die SPS wieder 0 liefert? Und wenn das Bild laden lange/länger dauert als SPS-Werte geliefert werden, ist Dir klar, dass sich dann Werte in der Queue aufstauen die danach dann weiter abgearbeitet werden und letztlich dann zumindest zeitweise nichts mehr mit dem *aktuellen* Wert von der SPS zu tun haben‽
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman