F
fatzke
Jungspund
Hallo Unixboard!
Ich versuch momentan einen Barcode Scanner unter Debian zu zähmen.
Der Scanner wird an die Serielle Schnittstelle angeschlossen (könnte auch an einen USB kommen) und kann
somit als eine Art Tastatur angesehen/verwendet werden.
Einlesen von Barcodes mittels C oder Shell Skript funktioniert auch
soweit ("/dev/tty" geht, "/dev/ttyS*" geht nicht)...jetzt mein Problem:
Kann man auch wenn das Skript, egal ob Shell oder C, nicht im Vordergrund ist, ständig den Input eines speziellen Ports überwachen? Das wird später nämlich nötig sein! Sprich es läuft eine Anwendung im Vordergrund (z.B. Video) solange bis ich einen Barcode an den Scanner halte. Dann sollte direkt der Input verarbeitet werden können.
Hoffe ich konnte das in etwa vermitteln...ich poste mal noch meinen C Code und freue mich auf Antworten.
Grüße Frank
Ich versuch momentan einen Barcode Scanner unter Debian zu zähmen.
Der Scanner wird an die Serielle Schnittstelle angeschlossen (könnte auch an einen USB kommen) und kann
somit als eine Art Tastatur angesehen/verwendet werden.
Einlesen von Barcodes mittels C oder Shell Skript funktioniert auch
soweit ("/dev/tty" geht, "/dev/ttyS*" geht nicht)...jetzt mein Problem:
Kann man auch wenn das Skript, egal ob Shell oder C, nicht im Vordergrund ist, ständig den Input eines speziellen Ports überwachen? Das wird später nämlich nötig sein! Sprich es läuft eine Anwendung im Vordergrund (z.B. Video) solange bis ich einen Barcode an den Scanner halte. Dann sollte direkt der Input verarbeitet werden können.
Hoffe ich konnte das in etwa vermitteln...ich poste mal noch meinen C Code und freue mich auf Antworten.
Grüße Frank
Code:
/* scan.c */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
int main (void) {
FILE *source, *target;
int c, n;
source = fopen("/dev/tty...", "rb");
target = fopen("/home/frank/apache/wineportal/barcode_part/tmp.txt", "wb
");
if(target == NULL){
printf("%s\n", strerror(errno));
printf("Fehler beim Öffnen von tmp!\n");
return EXIT_FAILURE;
}
if(source == NULL){
printf("%s\n", strerror(errno));
printf("Fehler beim Öffnen von tty*!\n");
return EXIT_FAILURE;
}
while((c=fgetc(source)) != '\n'){
fputc(c, target);
}
fclose(source);
fclose(target);
return EXIT_SUCCESS;
}