nicht alltäglich - Touchscreen
cdoo 29.08.2007 - 08:27 2141 20
cdoo
Bloody Newbie
|
Guten Morgen miteinander! ..ich brauch Hilfe  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
Administrator ...
|
kannst du die frage nochmal kurz zusammengefasst formulieren? irgendwie seh ich die in deinem post nicht
|
Nico
former person of interest
|
ich kenn mich auch nicht aus nach 3 mal lesen was du willst
|
cdoo
Bloody Newbie
|
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.
Bearbeitet von cdoo am 29.08.2007, 09:02
|
DKCH
Administrator ...
|
mit javascript aufs onblur horchen und den focus neu requesten?
|
mat
AdministratorLegends never die
|
wie greifst du auf den kartenleser zu?
|
cdoo
Bloody Newbie
|
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
AdministratorLegends never die
|
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
Big d00d
|
kommt mir bekannt vor  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
Bearbeitet von Lizardking am 05.09.2007, 15:07
|
cdoo
Bloody Newbie
|
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
AdministratorLegends never die
|
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
Big d00d
|
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. // dann wäre das activex-plugin ohnehin belanglos, da es nur auf win+ie läuft. das kommt dann natürlich auch noch dazu.
Bearbeitet von Lizardking am 05.09.2007, 15:08
|
murcielago
Dr. Doom
|
mein gott, der rest funzt eh schon bei dir - nicht wahr? - dann verwend wie von DKCH vorgeschlagen den onBlur event... quasi im input: <input type="text" onBlur="this.focus();"/>
so in etwa müsste das gehn. ist die sauberste lösung. und funzt "immer".
|
cdoo
Bloody Newbie
|
ich werd´s probieren. danke
|
mat
AdministratorLegends never die
|
mein gott, der rest funzt eh schon bei dir - nicht wahr? - dann verwend wie von DKCH vorgeschlagen den onBlur event... quasi im input:
<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.
|