nicht alltäglich - Touchscreen

Seite 1 von 2 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/nicht_alltaeglich_touchscreen_184317/page_1 - zur Vollversion wechseln!


cdoo schrieb am 29.08.2007 um 08:27

Guten Morgen miteinander!

..ich brauch Hilfe :D

Folgende Problemstellung:

Vor mir liegt eine Art Terminal, hier wird automatisch ein Firefox Fenster geöffnet und ein Touchscreen ist für das Klicken auf Buttons zuständig. Als Tastatursignal ist ein Kartenleser angeschlossen der die Kundennummer per Tastaturschnittstelle und send abschickt wenn sie eingeschoben wird.

Der Kartenleser hat innen eine Kartennummer eingeklebt die beim herausziehen der Karte gescannt und somit das Timeout erzeugt wird.

Webserver: Apache - Scriptsprache: PHP - DB: MySQL

es ist prinzipiel alles fertig, mein Problem besteht nur im "Session Management".
Aktuell habe ich es so gelöst, dass die Seite alle 5 Sek. aktualisiert wird und den Focus immer wieder auf ein Hidden Field setzt, sodass ein Login/Logout möglich wird (Sollte der User mal nicht auf den Button klicken sondern in ein leeres Feld verliert das hiddenfield den Fokus).

Nur die Aktualisierung ist im Prinzip sicherlich keine Lösung.

Ich brauch dringenst ein Erfolgserlebnis ;)

Dank euch!

Chris


DKCH schrieb am 29.08.2007 um 08:32

kannst du die frage nochmal kurz zusammengefasst formulieren? irgendwie seh ich die in deinem post nicht :D


Nico schrieb am 29.08.2007 um 08:34

ich kenn mich auch nicht aus nach 3 mal lesen was du willst :)


cdoo schrieb am 29.08.2007 um 08:47

ok is ein bissal kompliziert deswegen gg

also folgendes:

es ist eine Art Kundenterminal auf dem es Möglich ist für Benutzer durch einschieben einer Karte in ein Portal zu kommen wo er seine Punktestand kontrollieren kann.

Dieses Terminal hat einen Cardreader der an der Tastaturschnittstelle angeschlossen ist. Beim Einschub der Karte schickt diese die ausgelesene Kundennummer per POST ab.

Wenn die Karte herausgezogen wird, wird im Cardreader eine fix eingeklebte Nummer abgelesen, die dann eben das sogenannte Timeout schickt.

das ganze muss für mich jetzt mit einem INPUT Feld realisiert werden -> auf dem der Fokus sitzt. Mein Problem ist jetzt, sollte der Benutzer am Touchscreen in einen leeren Bereich "drücken", verliert mein schönes Feld den Fokus und somit gibts auch kein Timeout mehr.

Dieses Problem hab ich als Befriedigung einfach kurz durch einen 5 Sek. refresh (immer auf jeder Seite) behoben, dass einfach bei diesem Refresh immer der Focus erneut gesetzt wird.

Ist natürlich keine Lösung, ich weis auch ned ob wirklich irgendwer mit PHP für das Problem eine Lösung parat hätte?

Falls ja, wäre das ein HIT ;)

--> wie würdet ihr das Problem lösen?

Dankeschön.


DKCH schrieb am 29.08.2007 um 10:04

mit javascript aufs onblur horchen und den focus neu requesten?


mat schrieb am 29.08.2007 um 10:27

wie greifst du auf den kartenleser zu?


cdoo schrieb am 29.08.2007 um 12:27

das mit dem onblur schau ich mir nach der Mittagspause an, danke.

der Kartenleser schickt beim korrekten lesen der Karte den Inhalt (Zahlencode) über die Tastaturschnittstelle. (deswegen der Fokus)


mat schrieb am 29.08.2007 um 12:31

ein "schöne" js-lösung fällt mir nicht ein, aber besteht die möglichkeit einen kleinen c++ client zu schreiben um den inhalt der tastatur abzufangen und zB in ein file zu schreiben? technisch wäre das simpel, wenn es nicht für multiplattform geschrieben werden müsste.


Lizardking schrieb am 29.08.2007 um 12:42

kommt mir bekannt vor :D
hab an meiner schule auch ein terminal mit touchsreen für die schüler gemacht.
unsere lösung war, (mit motorisiertem Kartenleser,ASE ES MT Motorized Smart Card Reader ), wie folgt:

ActiveX plugin, dass Javascript-Functions für diverse karten-transaktionen bietet (zB ob sich eine karte im reader befindet, PIN, creditstand usw.)

onLoad wird nun die funtion checkCard() aufgerufen, die bei 'true' zur pinabfrage weiterleitet oder sich bei 'false' mit verzögerung selbst aufruft.
also mehr oder weniger eine endlosschleife, solange sich keine karte im reader befindet.

hth & stehe gerne für rückfragen zur verfügung


cdoo schrieb am 29.08.2007 um 13:03

hab gestern ziemlich lange gegrübelt..

@mat das problem ist, dass auf dem "kasterl" eine abgespeckte linux distri. läuft die wirklich nur für eine Art "surf" station vorgesehen ist. (sie lädt nur das Firefox Plugin)

@lizzardking wärst du bereit mir einen einblick in dieses applet zu geben? gg

wär super!


Dank euch!

Chris


mat schrieb am 29.08.2007 um 13:10

dann wäre das activex-plugin ohnehin belanglos, da es nur auf win+ie läuft.

wo liegt allerdings das problem bei einem abgespeckten linux? gibts keinen zugriff drauf? sollte technisch problemlos möglich sein und als service eingebunden werden können.


Lizardking schrieb am 29.08.2007 um 13:27

tja, da ist der haken an der sache :(
da's nicht selbst geschrieben wurde, steht keine source zur verfügung, bzw. das ganze funktioniert überhaupt nur mit einem usb-dongle.

was ich sicher sagen kann, ist, dass das Applet mit >99% aller kartenleser kompatibel ist, wenn PC/SC treiber für den reader vorhanden sind.



//

Zitat
dann wäre das activex-plugin ohnehin belanglos, da es nur auf win+ie läuft.
das kommt dann natürlich auch noch dazu.


murcielago schrieb am 29.08.2007 um 13:53

mein gott, der rest funzt eh schon bei dir - nicht wahr? - dann verwend wie von DKCH vorgeschlagen den onBlur event... quasi im input:

Code:
<input type="text" onBlur="this.focus();"/>

so in etwa müsste das gehn. ist die sauberste lösung. und funzt "immer".


cdoo schrieb am 29.08.2007 um 14:01

ich werd´s probieren. danke ;)


mat schrieb am 29.08.2007 um 15:36

Zitat von murcielago
mein gott, der rest funzt eh schon bei dir - nicht wahr? - dann verwend wie von DKCH vorgeschlagen den onBlur event... quasi im input:

Code:
<input type="text" onBlur="this.focus();"/>

so in etwa müsste das gehn. ist die sauberste lösung. und funzt "immer".
das ist die frage. wenn der focus weg ist, dann wird man garantiert bei der eingabe über die screen-tastatur behindert. das müsste man auf alle fälle mit den projektvorgaben übereinstimmen.




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025