Hallo Gemeinde!
Mir fehlt etwas der passende Ansatz um folgendes zu lösen:
Ich bekomme per UDP die Info, welche Taste auf einer Funk Fernbedienung gedrückt wurde.
(Ein RF Umsetzer sendet mir per UDP an meine Software)
Es gibt 52 Tasten mit je einen eigenen 3 stelligen Byte Code:
Taste 1: 0xe20d00
Taste 2: 0xe30e00
...
Wenn man auf der Taste oben bleibt, kommen die Infos zyklisch im Abstand von 400ms.
Nun soll für jedes Taste der Text ausgegeben werden, welche Taste gedrückt wurde und ob es ein kurzer oder langer Tastendruck war.
Der Kurze kann natürlich erst nach 800ms erkannt werden, da ein weiteres Telegramm ausbleibt.
Wie soll ich aber das in Java umsetzen. Ich müßte eine Info im Code halten, wenn der erste Befehl kommt.
Dann mind. 800ms warten und wenn der Code nicht nochmal kommt, ist es ein kurzer Tastendruck, ansonsten ein langer.
Hab schon überlegt einen Timer beim ersten Eintreffen zu starten, der nach 800ms den Text kurz ausgibt. Falls das Telegramm nochmal kommt und schon ein Timer für dieses Telegramm existiert, ist es ein langer und der 1. Timer muss abgebrochen werden und der Text für einen langen Tastendruck muss ausgeben werden.
Was ist die beste Strategie? Das ganze soll auf einem Rasp laufen. Also wenig Performance.
Danke!
Mir fehlt etwas der passende Ansatz um folgendes zu lösen:
Ich bekomme per UDP die Info, welche Taste auf einer Funk Fernbedienung gedrückt wurde.
(Ein RF Umsetzer sendet mir per UDP an meine Software)
Es gibt 52 Tasten mit je einen eigenen 3 stelligen Byte Code:
Taste 1: 0xe20d00
Taste 2: 0xe30e00
...
Wenn man auf der Taste oben bleibt, kommen die Infos zyklisch im Abstand von 400ms.
Nun soll für jedes Taste der Text ausgegeben werden, welche Taste gedrückt wurde und ob es ein kurzer oder langer Tastendruck war.
Der Kurze kann natürlich erst nach 800ms erkannt werden, da ein weiteres Telegramm ausbleibt.
Wie soll ich aber das in Java umsetzen. Ich müßte eine Info im Code halten, wenn der erste Befehl kommt.
Dann mind. 800ms warten und wenn der Code nicht nochmal kommt, ist es ein kurzer Tastendruck, ansonsten ein langer.
Hab schon überlegt einen Timer beim ersten Eintreffen zu starten, der nach 800ms den Text kurz ausgibt. Falls das Telegramm nochmal kommt und schon ein Timer für dieses Telegramm existiert, ist es ein langer und der 1. Timer muss abgebrochen werden und der Text für einen langen Tastendruck muss ausgeben werden.
Was ist die beste Strategie? Das ganze soll auf einem Rasp laufen. Also wenig Performance.
Danke!