Wie flushe ich/verbiete ich konkurrierende Zugriffe auf /dev/ts



  • Ich habe eine Applikation, die einen Touchscreen auf /dev/ts für Eingaben benutzt.
    Auf diese Applikation habe ich keinen Zugriff auf Quellebene, kann sie nicht verändern.

    Diese Applikation startet aber eine zweite Applikation (meine) und suspended sich so lange wie diese meine Applikation läuft.

    Ich kann auch problemlos meine Oberfläche erzeugen (/dev/fb) und /dev/ts für meine Eingaben benutzen und alles.

    Problem ist, wenn ich meine Applikation beende, dann verhält sich die erste Applikation so, als hätte ich noch einmal sämtliche Eingaben am Touchscreen in schneller Folge ausgeführt, sie liest also /dev/ts aus und verarbeitet, was seit ihrem suspend gedrückt wurde.

    Wie kann ich das verhindern, kann ich /dev/ts während meine Applikation läuft so sperren, das nur ich Daten bekomme und nicht der Cache/die Queue für die erste Applikation oder kann ich /dev/ts irgendwie für alle bereits geöffneten Filehandles flushen, wenn ich fertig bin?

    Danke!!



  • So, jetzt bin ich etwas weiter:

    Es gibt in dem Touchscreen-Treiber zwei Variablen:

    static int ts_read_index;
    static int ts_write_index;
    

    Wenn die beiden Werte gleich sind gilt der FiFo als "leer".

    Gibts ne Möglichkeit, dass ich an die Variablen rankomme? Wie gehts das?


Anmelden zum Antworten