Car-PC.info

cPOS - An die Progamierer: Doppelfunktion von Tasten ?

C1500 - Mi 29 März, 2006 21:28
Titel: An die Progamierer: Doppelfunktion von Tasten ?
Hi Wal und Fuchs,

da ich mit meinem CAN Projekt gerade an die Grenzen von cPOS gestoßen bin hab ich da ein Idee und Frage:

Wäre es möglich, eine Abfrage einzubauen ob eine Taste angeklickt wird oder ob die Taste länger gedrückt bleibt?

Ich hab da folgende Vorstellung:
Wird die Taste angetippt (unter 500ms) wird die normale Tastenfunktion ausgeführt.
Als Beispiel -> nächstes Lied

Wir die Taste aber länger gedrückt, (>500 ms) wird die Funktion Vorspulen aktiviert.

Hintergund der Anfrage ist, das ich versucht habe meine Fensterheber per CAN zu steuern.
Dabei musste ich feststellen, das sobald ich länger auf den Fensterheberknopf drücke, ein andere Befehl per CAN gesendet wird.
Kurz gedrückt = 04 --> das Fenster geht ein kleines Stück auf.
Lang gedrückt = 05 --> Das Fenster öffnet ganz oder bis zum nächsten Kurzdrücker
Wenn ich aber oft hintereinander den "Kurz-Befehl" sende stotter das Fenster nach unten.


Was meint ihr, wäre so eine Abfrage machbar?
Mir fallen da so einige Funktionen ein, die den Skinnern unter uns sehr viel Platz sparen würde Wink

Gruß
Peer
netjunk - Mi 29 März, 2006 21:39
Titel:
also ich hab eigentlich keine ahnung von can. aber kannst du nicht einfach die funktionen tauschen:
kurz gedrückt = 05
lang gedrückt = 04

aber das mit der tastenfunktion is ne supper idee. das mußte sich dann auch über eine if funktion machen lassen. wie in dem vorschlag von all-finder:
http://www.car-pc.info/phpBB2/viewtopic.php?t=10183&highlight=
C1500 - Do 30 März, 2006 11:16
Titel:
Hi Netjunky,
Abgesehen davon das es nicht geht, was sollte den das Tauschen bringen?
Dadurch kann ich doch immernoch nicht 2 Befehle durch unterschiedliches drücken versenden.

Die IF Funkttion halte ich auch für Sinnvoll, würde aber auch hier an seine Grenzen stossen bzw. fast unmöglich sein.
Mann müsste ja dann trotzdem die Abfrage drin haben, wie lange die Taste gedrückt ist.

Wenn nicht vorher ungefähr definiert wird, welche IF Möglichkeiten vorhanden sein sollen, halte ich es für nicht machbar.
Zumindest müssen Funktionen oder Objekte definiert sein die per IF angesprochen werden.

Gruß
Peer
netjunk - Do 30 März, 2006 22:15
Titel:
@c1500

schon klar, dass es das 2-befehle-problem nicht löst. wegen dem fensterheber-problem hab ich mir nur die zeilen angeschaut:

Zitat:
Kurz gedrückt = 04 --> das Fenster geht ein kleines Stück auf.
Lang gedrückt = 05 --> Das Fenster öffnet ganz oder bis zum nächsten Kurzdrücker
(was sich ja nicht wie bei einem normalen fensterheber verhält)

und dachte folglich, dass dann ja, wenn die funktionen vertauscht werden,

Kurz gedrückt = 05 --> Das Fenster öffnet ganz oder bis zum nächsten
Kurzdrücker,
Lang gedrückt = 04 --> das Fenster geht ein kleines Stück auf,

bedeuten würde. (was sich ja wie bei einem normalen fensterheber verhält)
C1500 - Fr 31 März, 2006 07:55
Titel:
Um genau zu sein, weden beim CAN ja immer bestimmte BIT´s gesendet.
Bei meinem Fensterheber ist das nun folgendermassen:
Wird die Taste gedrückt, wird einfach das runter Bit (das wäre dann hex04) gesendet.
Bleibt die Taste dann noch weiter gedrückt, kommt noch das BIT für die Dauerfunktion (fährt das Fernster bis zum Endpunkt) gesetzt.
Diese BIT hat den Wert hex01.
Zusammen ergibt das dann hex05.

Zum schließen ist das übrigens hex02 kurz und für Dauerfunktion somit hex03 (hex02+hex01=hex03).

Soll die Dauerfunktion unterbrochen werden, wird einfach nochmal das "normal-BIT" (also hex04 oder hex02) gesendet.

Mit der Angesprochenen "Doppelfunktion der Tasten" würde ich dann auf die Funktion "Tasten-short" die hex04/hex02 und auf die "Taste-hold-Funktion dann das dementsprechende hex05/hex03 setzten.

Das ist aber nur ein Beispiel für die Doppelfunktion....
Wie schon angesprochen ist auch FF und NextTrack eine schöne "Doppelfunktion"

Gruß
Peer
Alle Zeiten sind GMT + 1 Stunde
Powered by phpBB2 Plus and Kostenloses Forum based on phpBB