Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Odczyt inputu z klawiatury w czasie rzeczywistym, Klawiatura / czytnik kodów kreskowych
scanner
post
Post #1





Grupa: Zarząd
Postów: 3 503
Pomógł: 28
Dołączył: 17.10.2002
Skąd: Wrocław




Mam do rozwiązania pewien problem:

Dysponując czytnikiem kodów kreskowych napisać aplikację reagującą na aktywność czytnika i zapisującą kod i inne dane w bazie.

Oczywiście jedynym zmartwieniem dla mnie jest przechwycenie z poziomu php (najlepiej w przeglądarce) sekwencjio znaków wypisanych z klawiatury (czytnik kresek jest wpięty równolegle z klawiaturą i generuje cyfry na stdin - tyle informacji a razie mam).
Odczyt powinien się odbywac oczywiście bez ingerencji uzytkownika.

Pytanie:
Gdzie i co poczytać o tym?
Dajcie mi lekturkę do obiadu, jeśli macie coś pod ręką.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
scanner
post
Post #2





Grupa: Zarząd
Postów: 3 503
Pomógł: 28
Dołączył: 17.10.2002
Skąd: Wrocław




Spróbowałem zrobić symulację modułu Sentinel - do zrobienia pozostaje metoda openInput() oraz getKey().
Skrypt w zasadzie powinien działać niezauważalnie - w tle, nie generując żadnych outputów.

  1. <?php
  2. /**
  3.  * Sentinel
  4.  * Modul pakietu DoorKeeper
  5.  *
  6.  * @package DoorKeeper
  7.  * @author Grzegorz 'scanner' Tlołka
  8.  * @date 2004/10/15
  9.  * @update 2004/10/15
  10.  * @version 0.0.1dev
  11.  */
  12.  
  13. // Proces dziala w tle jako usluga stala)
  14. //ignore_user_abort( true );
  15.  
  16.  
  17. $Sentinel = new Sentinel( 13 );
  18. $Sentinel->run();
  19.  
  20. /** Abstract **/
  21. abstract class ASentinel
  22. {
  23. abstract public function __construct( $iBufferLen );
  24. abstract public function run();
  25.  
  26. abstract private function openInput();
  27. abstract private function addBuffer();
  28. abstract private function testBuffer();
  29. abstract private function writeEvent();
  30. abstract private function getKey();
  31. }
  32.  
  33. /** Implementation */
  34. class Sentinel extends ASentinel 
  35. {
  36. private $aBuffer;
  37. private $iBufferLen;
  38. private $sBufferPattern;
  39.  
  40. function __construct( $iBufferLen )
  41. {
  42. $this->iBufferLen = intval( $iBufferLen );
  43. $this->sBufferPattern = &#092;"#(d){\".$this->iBufferLen.\",}#\";
  44. $this->openInput();
  45. $this->aBuffer = array( null );
  46. }
  47.  
  48. function run()
  49. {
  50. while ( true )
  51. {
  52. $this->addBuffer();
  53. $this->testBuffer();
  54. }
  55. }
  56.  
  57. function openInput()
  58. {
  59. // TODO
  60. }
  61.  
  62. function addBuffer()
  63. {
  64. if( array_push( $this->aBuffer, $this->getKey() ) > $this->iBufferLen )
  65. {
  66. $DevNull = array_shift( $this->aBuffer );
  67. }
  68. }
  69.  
  70. function getKey()
  71. {
  72. // TODO
  73. $sChar = chr( rand( 48, 60 ) );
  74. return $sChar;
  75. }
  76.  
  77. function testBuffer()
  78. {
  79. $sTest = join( $this->aBuffer );
  80. if( preg_match( $this->sBufferPattern, $sTest ) )
  81. {
  82. $this->writeEvent();
  83. }
  84. }
  85.  
  86. function writeEvent()
  87. {
  88. echo &#092;"Event saved with result: \".join( '', $this->aBuffer).\"<br />\";
  89. }
  90. }
  91. ?>
Go to the top of the page
+Quote Post

Posty w temacie
- scanner   Odczyt inputu z klawiatury w czasie rzeczywistym   5.10.2004, 13:45:00
- - misterLu   Cytatprzechwycenie z poziomu php (najlepiej w prze...   5.10.2004, 17:16:10
- - NuLL   Moge napomkan ze w php sa dostepne strumienie(o kt...   5.10.2004, 21:53:26
- - scanner   Obu dzieki za naprowadzenie.. a co do strumieni.. ...   5.10.2004, 22:01:19
- - NuLL   Scanner wybacz za brak przykladu - sprobuje wytlum...   5.10.2004, 22:28:00
- - scanner   Więc tak. Póki nie otrzymam czytnika do ręki, cięz...   6.10.2004, 06:36:20
- - kszychu   Scanner: a nie lepiej napisać coś powiedzmy w c si...   6.10.2004, 06:40:00
- - scanner   Ostatni raz pisałem cos w C 7 lat temu niestety. ...   6.10.2004, 09:01:42
- - nocnyMark()   Scanner, mam prosbe jak juz bedziesz mial cos kon...   6.10.2004, 23:47:08
- - yeti   Nie wiem, dlaczego nie chcesz spróbować z JavaScri...   7.10.2004, 08:44:42
- - patrycjusz   Cytat(scanner @ 2004-10-06 10:01:42)Co w sytu...   7.10.2004, 09:05:00
- - scanner   No i zdobyłem już czytnik. Pierwsze eksperymenty w...   14.10.2004, 16:50:13
- - Vengeance   @scanner zamiast fgetc() ktore pobiera jeden znak...   14.10.2004, 18:18:41
- - matid   Skrypt poprawnie czyta /dev/stdin, tylko nic nie j...   14.10.2004, 18:25:19
- - ActivePlayer   a te kody wczytywane z czytnika mają jakąs sumę ko...   14.10.2004, 20:11:23
- - scanner   Nie zagłębiałem się jeszcze w sposoby generowania ...   14.10.2004, 20:52:47
- - Vengeance   co do kodow jeszcze u mnie na forum bylo podobne p...   14.10.2004, 21:02:48
- - scanner   Dzięki za link. Co do generowania kodu - informat...   15.10.2004, 06:46:46
- - ActivePlayer   Nie jestem pewien ale chyba musisz tez wziasc pod ...   16.10.2004, 12:45:48
- - matid   No przecież napisał że skrypt będzie sprawdzał czy...   16.10.2004, 13:33:46
- - scanner   Spróbowałem zrobić symulację modułu Sentinel - do ...   16.10.2004, 16:49:00
- - max_catch   pisałem niegdyś moduł 'sprzedaży detalicznej...   16.10.2004, 17:52:59
- - scanner   Kwestia jest taka: Nie moża wykorzystać formularza...   20.10.2004, 07:12:04
- - netzah   CytatSentinel musi siedzieć w tle, nie wyświeltają...   20.10.2004, 07:54:44
- - scanner   A gdyby zrobić tak, że uruchomimy jakis napisany w...   20.10.2004, 10:48:17
- - netzah   Takiego proga mozna napisac np. w C. Tylko jest tu...   20.10.2004, 11:24:31
- - PMadej   a ja wymyśliłem coś innego ... żeby sentinel siedz...   20.10.2004, 11:54:19
- - netzah   Tutaj wg mnie jedyny problem to to, w jaki sposob ...   20.10.2004, 12:04:15
- - scanner   Cały czas mi chodzi po głowie ten programik w C. ...   20.10.2004, 13:15:21
- - netzah   O ile w win32 jest w miare spoko, to ciekawe , czy...   20.10.2004, 14:21:44
- - scanner   No cóż. Chyba pozostanie mi tylko przebudowa proje...   21.10.2004, 07:25:17
- - matid   Cytat(netzah @ 2004-10-20 15:21:44)O ile w wi...   21.10.2004, 18:34:13
- - netzah   Ale te sterowniki dzialaja tylko pod X-window, tak...   22.10.2004, 07:08:56
- - dag   Cytat(netzah @ 2004-10-22 08:08:56)Ale te ste...   22.10.2004, 07:41:46
- - netzah   Do czego zmierzam: czy przychwytywanie klawiszy po...   22.10.2004, 08:26:46
- - kszychu   Cytat(netzah @ 2004-10-22 08:26:46)Do czego z...   22.10.2004, 08:31:19
- - netzah   Cytat(kszychu @ 2004-10-22 09:31:19)A pomyśla...   22.10.2004, 09:13:57
- - matid   Sterowniki nie reagują jak jestem pod innym termin...   22.10.2004, 19:18:29
- - bela_666   tak z ciekawości czy zamiast: [PHP] pobierz, pla...   22.10.2004, 21:57:48
- - dag   Nie bo ASentinel jest klasą abstrakcyjną a nie int...   22.10.2004, 22:18:45


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 14.10.2025 - 14:43