Equinox Geschrieben October 24, 2019 at 11:08 Share Geschrieben October 24, 2019 at 11:08 Hallo, seit Kurzem habe ich das Problem, dass die "Tabs" auf meinem LCD 128x64 Bricklet nicht mehr reagieren. D.h., beim Berühren der Tabs passiert nichts. Die Buttons und auch die Wischgesten funktionieren aber weiterhin. Wenn ich im Log nachschaue, dann kommen auch keine Events an. Für die Wischgesten kommen aber Tab-Events mit Pressure 1 an. Woran könnte das liegen? Zitieren Link zu diesem Kommentar Share on other sites More sharing options...
borg Geschrieben October 24, 2019 at 11:12 Share Geschrieben October 24, 2019 at 11:12 Hast du vielleicht ein anderes Element über die Tabs gelegt o.ä.? Wenn du sagst dass das seit kurzem ist: Hast du denn seit kurzem etwas an der Software geändert oder ist die gleich geblieben? Zitieren Link zu diesem Kommentar Share on other sites More sharing options...
Equinox Geschrieben October 24, 2019 at 14:25 Autor Share Geschrieben October 24, 2019 at 14:25 Hallo, nein, kein Element über den Tabs und auch die Software hat sich seit langem nicht mehr geändert. Es ist eher das Gegenteil: Das System läuft nun schon einigen Wochen ohne Neustart. Ich vermute, dass wenn ich den TF-Stapel vom Strom trenne und wieder neu starte (ohne das Programm neu zu starten), es wieder funktioniert. Ich möchte damit aber noch warten, falls ich noch irgendwas im aktuellen Zustand testen/nachschauen muss. Zitieren Link zu diesem Kommentar Share on other sites More sharing options...
borg Geschrieben October 25, 2019 at 06:51 Share Geschrieben October 25, 2019 at 06:51 Ah, verstehe. Da die Buttons noch funktionieren, muss die eigentliche Kommunikation mit dem Touch-IC ja noch auch noch funktionieren. D.h. das Problem muss irgendwo in der Implementierung der Tabs liegen. Ich wüsste jetzt leider auf Anhieb nicht wie wir das weiter debuggen können. Reicht es wenn du dein Programm neustartest (und dadurch die Tabs neu angelegt werden müssen) oder musst du wirklich das LCD128x64 neustarten? Da ich das letzte mal als ich einen Testaufbau gemacht hab da schon nichts reproduzieren konnte: Wie komplex ist das Programm was da bei dir läuft? Wäre es möglich das ich das hier ausführe um zu versuchen das zu reproduzieren? Zitieren Link zu diesem Kommentar Share on other sites More sharing options...
Equinox Geschrieben October 25, 2019 at 18:21 Autor Share Geschrieben October 25, 2019 at 18:21 Hallo, ein Neustart des Programms hat keine Änderung bewirkt, aber nachdem ich den Stapel vom Strom getrennt und wieder eingeschaltet habe, hat es wieder funktioniert. Aus meiner Sicht liegt es also nicht am Programm. Was mir noch aufgefallen ist: Wenn ich ein Tab "gedrückt" habe, dann hat auch die grüne LED auf der Rückseite des Displays geleuchtet. Das Bricklet hat also die Berührung registriert, allerdings wurde kein Event geschickt. Zitieren Link zu diesem Kommentar Share on other sites More sharing options...
borg Geschrieben October 28, 2019 at 08:35 Share Geschrieben October 28, 2019 at 08:35 Für mich sieht das so aus als gibt es einen Bufferoverflow o.ä. der die Tab-Konfigurations-Strukturen zerschießt. Wenn du dein Programm neustartest werden ja auch die Tabs neu konfiguriert. Daher muss da schon etwas grundsätzlich kaputt gegangen sein, wenn es nach dem Programmneustart nicht wieder funktioniert. Die Kommunikation mit dem Display und dem Touch-IC funktioniert ja weiterhin. Ich hab hier ein LCD128x64 bei mir durchgängig auf dem Tisch stehen und bisher leider noch nie solche Probleme gehabt. Ich weiß aktuell nicht wie ich es reproduzieren soll. Zitieren Link zu diesem Kommentar Share on other sites More sharing options...
Equinox Geschrieben October 28, 2019 at 11:51 Autor Share Geschrieben October 28, 2019 at 11:51 Hallo, du meinst ein "Bufferoverflow" in der Bricklet-Firmware oder in den Bindings? Da ein Neustart des Programms nicht hilft, vermute ich, dass es an der Bricklet-Firmware liegt. Ein Bufferoverflow ist möglich, da das Problem erst nach einigen Wochen Laufzeit aufgetreten ist. Ich werde es weiter beobachten. Gibt es irgendwas, was ich evtl. in mein Programm einbauen kann, das eine Analyse (wenn es wieder auftritt) vereinfachen könnte? Zitieren Link zu diesem Kommentar Share on other sites More sharing options...
borg Geschrieben October 28, 2019 at 11:55 Share Geschrieben October 28, 2019 at 11:55 In der Bricklet-Firmware. Was mir natürlich extrem helfen würde wäre Source Code oder irgendeine Vorgehensweise mit der ich das Problem reproduzieren kann. Ist mir aber klar dass das nicht so einfach zu machen ist wenn es bei dir immer erst nach Wochen Laufzeit auftritt. Zitieren Link zu diesem Kommentar Share on other sites More sharing options...
Equinox Geschrieben October 28, 2019 at 15:27 Autor Share Geschrieben October 28, 2019 at 15:27 Hallo, die Reproduktion ist leider schwierig Das Problem ist bisher nur einmal aufgetreten und das eben nach langer Zeit. Vielleicht muss einfach nur genügend oft das Tab gewechselt werden. Ich nutze dafür Callbacks. Die Vorgehensweise ist also nicht irgendwie exotisch. Zitieren Link zu diesem Kommentar Share on other sites More sharing options...
MacDuff Geschrieben October 28, 2019 at 15:47 Share Geschrieben October 28, 2019 at 15:47 Ich kann da sekundieren: meine kleine App, die Abfahrtszeiten von Bussen an verschiedenen Haltestelle anzeigen soll, habe ich mit dem LCD 128/64 realisiert. 6 Tabs, 6 Haltestellen. Ob nach 12, 24, 48 h -- irgendwann jedenfalls kann ich nicht mehr die Abfrage wechseln: Die Tabs springen zwar um, aber offenbar schlägt das nicht auf die App durch, weil die Abfahrtszeiten nicht mehr entsprechend aktualisiert werden. Hilft nur ein Neustart. md Zitieren Link zu diesem Kommentar Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.