Jump to content

Problem mit LCD 128x64 Bricklet (Touch)


Equinox

Recommended Posts

Hallo,

 

ich benutze das "LCD 128x64 Bricklet" mit mehreren Tabs. Es kommt bei mir ab und zu vor, dass sich das Display nach einem Tab-Wechsel pausenlos "refreshed", und zwar mit unterschiedlichen Tabs. Es reagiert dann auf keine Berührung mehr. Es sieht so aus, als ob man sehr schnell zwischen den Tabs wechseln würde. Meistens fängt es sich auch nicht mehr.

Kann es sein, dass das Bricklet da ein Eigenleben entwickelt und ständig irgendwelche Events für einen Tab-Wechsel sendet?

Zuerst dachte ich, dass sich da mein Programm irgendwie verhaspelt (was ich auch jetzt noch nicht ausschließen kann) und habe es neu gestartet. Heute habe ich aber das Programm laufen lassen und habe nur den Stapel kurz vom Strom getrennt. Danach war alles wieder gut. Ich denke deshalb, dass es nicht an meinem Programm liegt, da es sich sonst auch nach dem Neustart des Stapels noch in dem "verhaspelt"-Zustand befunden hätte.

Hat sonst noch jemand dieses Problem? An was kann das liegen und was kann ich dagegen tun?

 

P.S.: Die Variable, welches Tab gerade selektiert ist, setze ich nur in den Callbacks "guiTabSelected" und "guiButtonPressed" und die Methode zum aktualisieren des Displays wird auch nur mit dieser Variablen aufgerufen. Ich vermute deshalb, dass der Callback "guiTabSelected" ständig mit unterschiedlichen Tabs aufgerufen wird, auch wenn gar kein Berührung vorliegt.

Link zu diesem Kommentar
Share on other sites

  • 2 months later...

Hallo,

 

jetzt ist es wieder passiert. Glücklicherweise habe ich mittlerweile Logeinträge in die Callbacks eingebaut. Es ist tatsächlich so, dass ich laufend Callbacks bekomme, obwohl das Display nicht berührt wird. Das Bricklet "sieht" also tatsächlich Klicks, die nicht da sind.

Jemand eine Idee, woran das liegt und wie man das beheben kann?

Link zu diesem Kommentar
Share on other sites

  • 1 month later...
  • 2 weeks later...

Ich hatte hier jetzt eine Zeit lang einen Testaufbau am laufen der immer nur get_touch_position aufgerufen hat mit der Hoffnung dass ich irgendwann einen "falschen Touch" sehe. Ich konnte das leider bisher nicht reproduzieren.

 

Ein Pressure-Wert von 1 ist bereits der niedrigste Wert, meine Behauptung von vorher dass ich dort einen Threshold niedriger setzen kann macht also keinen Sinn.

 

Meine neueste Vermutung ist, dass du für eine ganz kurze Zeit fälschlicherweise irgendwo eine Berührung siehst (beim Aufruf von get_touch_position nach dem Callback ist der Pressure-Wert dann schon wieder auf 1) und der Fix wäre eher ein Minmum-Klickzeit für den Button-Klick einzuführen.

 

Ich hab da jetzt nochmal mehr logging eingebaut und es sind jetzt auch Buttons mit konfigurierten Callbacks mit eingebaut. Das lasse ich jetzt nochmal ein paar Tage laufen. Melde mich dann wieder.

Link zu diesem Kommentar
Share on other sites

  • 4 months later...

Hallo,

heute ist es wieder passiert, allerdings etwas anders als früher. Es war immer ein Wechsel zwischen Tab 1 und Tab 2 (ich glaube, bin aber nicht sicher, dass dies früher mehr Tabs waren), aber dieses Mal hatte ich für ca. 14 Sekunden Pressure-Werte die deutlich größer als 1 waren (zwischen 17 und 203, wobei die meisten um 170 waren). Davor und danach waren die Werte durchgängig 1.

Lösung war auch dieses Mal, den TF-Stapel vom Strom zu trennen.

Eine Idee, woran das liegen könnte? Kann ich irgendwas zur besseren Analyse einbauen?

Link zu diesem Kommentar
Share on other sites

  • 2 weeks later...

Echt komisch. Die große Frage ist jetzt ob es da einen Bug in der Ausleselogik des Touch-Controllers gibt oder ob dein Touchscreen einen defekt hat.

Wir hatten das LCD noch nicht ausgetauscht, oder? Könntest du einmal an die info@tinkerforge.com eine Email schreiben mit der Bestellnummer und einen Hinweis auf diesen Thread. Dann würde ich vorschlagen dass wir dir erstmal ein neues LCD 128x64 schicken um sicher zu stellen das es sich nicht um einen Hardware-Defekt handelt.

Link zu diesem Kommentar
Share on other sites

  • 4 weeks later...

Hallo,

jetzt ist es auch mit dem neuen Bricklet passiert 😞

Verhalten:
Zunächst war die Anzeige eingefroren, d.h., kein Refresh und keine Reaktion auf Berührungen. Dann habe ich es nochmals berührt und damit den ständigen Tab-Wechsel "aktiviert".
Es waren zunächst Wechsel zwischen Tab 4 und 5 mit einem Pressure-Wert von 1. Dann habe ich nochmals lange berührt. Anschließend waren die Pressure-Werte meist bei 65, dann um 160 (vmtl. solange ich berührt habe). Die Tabs haben von 1-5 gewechselt. Nach dieser langen Berührung gingen die Pressure-Werte wieder auf 1 zurück und die Tabs haben von 2-5 gewechselt.
Danach habe ich den Stapel kurz vom Strom getrennt und alles war wieder gut (also kein Programmneustart!).
Im Log fand ich dann noch diese Nachricht (5 mal im Abstand von jeweils ca. 5 Sekunden):

Exception: getTouchPosition in TabSelectedListener failed.Did not receive response in time for function ID 8
Ich kann allerdings nicht sagen, zu welchem Zeitpunkt diese Fehlermeldung erzeugt wurden, also ob vor, während oder nachdem ich den Strom getrennt habe.

Noch irgendeine Idee?

Link zu diesem Kommentar
Share on other sites

OK, also handelt es sich definitiv wirklich um ein grundsätzliches Problem und es war nicht ein Problem mit deinem spezifischen LCD.

Ich baue mir hier auf dem Schreibtisch nochmal ein LCD mit Debug auf und versuche da jeden Tag ein paar mal drauf rumzutouchen um das Problem hier zu reproduzieren.

Es ist leider immer schwierig dieses Bugs zu debuggen die nur alle paar Wochen einmal auftrete 😐 .

Link zu diesem Kommentar
Share on other sites

  • 4 weeks later...

Hallo,

heute wieder :-(
Zunächst war das Display "eingefroren". Als ich es dann nochmals berührt habe, ging der wilde Wechsel wieder los:
Zuerst mit Pressure-Werten um 165, dann konstant ca. 30 mal 70, dann einige Male gewechselt zwischen 121 und 167, anschließend über 100 mal den Wert 160.

Ich vermute, dass die wechselnden Werte durch weitere Berührungen verursacht wurden, die konstanten Werte ohne Berührung.

Konntet ihr es mittlerweile nachstellen?

Link zu diesem Kommentar
Share on other sites

Bei mir läuft das Touchscreen immernoch...

Vielleicht komme ich hier bei mir auf dem Schreibtisch zu oft dran und "resette" dadurch irgendeinen Zustand im Code oder im Touchscreen-Controller?

Wie oft macht du denn etwas mit dem Display? Regelmäßig oder drückst du da nur alle paar Monate einmal drauf und dann hast du den Bug?

Link zu diesem Kommentar
Share on other sites

Hallo,

ich drücke relativ selten drauf, manchmal mehrere Tage überhaupt nicht.
Wenn ich drauf drücke, dann wechsle ich normalerweise mit einem Button zu meinem letzten Tab und gehe dann zurück bis zum zweiten Tab (oder ersten).
Wenn ich das mache, dann ca. 1-2 mal am Tag.
P.S.: Ich habe 5 Tabs. Der Button zum Springen auf das letzte Tab ist auf Tab 2. Ein Wechsel der Tabs mache ich normalerweise durch Berühren des Tabs, sehr selten mit Wischgeste.

Link zu diesem Kommentar
Share on other sites

  • 1 month later...

Hallo,

gibt es irgendwelche Neuigkeiten hierzu? Gerade ist es nämlich wieder passiert.
Der Wechsel war zwischen Tab Index 1 und Tab Index 4 (also ohne 0), meist mit Pressure Wert 1, zu Beginn waren es aber auch Werte über 100.
Ich vermute, dass die Pressure Werte <> 1 gemessen werden, wenn ich tatsächlich ein Tab berühre (was ich am Anfang noch mache, gegen Ende dann nicht mehr). D.h., die Pressure Werte scheinen korrekt zu sein.
Geholfen hat wie immer eine Trennung vom Strom des Stapels. Das Programm wurde nicht neu gestartet.

Link zu diesem Kommentar
Share on other sites

  • 3 months later...

Hallo,

 

jetzt ist es innerhalb von 2 Tagen 2 Mal passiert.
Beim ersten Mal war der Wechsel zwischen den Tabs 3, 4 und 5, meist mit einem Pressure Wert von 175.
Beim zweiten Mal war es ein Wechsel zwischen Tabs 1 und 2, meist mit einem Pressure Wert von 1.
Wie immer hat eine Trennung des Stapels vom Strom geholfen.
Irgendeine Idee? Kann ich  noch irgendwas zum Debuggen einbauen?

Link zu diesem Kommentar
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Reply to this topic...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...