hobride
Goto Top

Seriellen Port von Linux PC an Debian WEB Server weiterleiten

Hallo zusammen,

ich möchten einen Barcodescanner per USB an einen Client PC anschließen und den dadurch erzeugten virtuellen seriellen Port /dev/ttyACM0 an einen entfernten Webserver weiterleiten. Und das PHP Script soll bei Bedarf auch Daten an den seriellen Port senden können.

Erste Versuche mit:

netcat 192.168.0.3 27032 < /dev/ttyACM0 > /dev/ttyACM0
und
$address = "192.168.0.3";  
$port = 27032;
$mysock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_bind($mysock,$address, $port) or die('Geht nicht');   
.
.

klappen teilweise, aber leider nicht immer. Ich glaube, dass einzelne Zeichen beim senden an den seriellen Port verloren gehen.

Bei Versuchen mit:
remserial -d -r 192.168.0.3 -p 27032 -s "115200 raw" /dev/ttyACM0  
gehen sporadisch nicht nur einzelne Zeichen sondern gleich mehrere verloren und zwar beim senden vom seriellen Port zum Webserver.

Hat jemand eine Idee wie man eine stabile Verbindung herstellen könnte?

Content-Key: 249233

Url: https://administrator.de/contentid/249233

Printed on: April 18, 2024 at 18:04 o'clock

Member: aqui
aqui Sep 15, 2014 at 16:02:08 (UTC)
Goto Top
Richtigerweise wäre das doch was für die Forums Rubrik "Entwicklung - PHP" hier, oder ?
Kann man mit Klick auf "Bearbeiten" übrigens selber verschieben face-wink
Member: broecker
broecker Sep 21, 2014 at 16:09:09 (UTC)
Goto Top
Moin,
vielleicht - ich kann auch daneben liegen - ist das noch eine suboptimale Herangehensweise,
nur eine Idee:
wenn der Server mit Webapplikation im Internet steht, würde ich ihn über eine php/html-Eingabemaske mit Barcodes füttern wollen,
was mittels simulierter Tastatur vom Scanner aus erfolgen könnte.
Den meisten USB-Scannern kann man beibringen, als Tastatur auszugeben UND auch Zeichen zuvor und dahinter auszugeben,
das sähe dann unter Linux bei mir etwa so aus: netcat 192... 80 < echo "POST http://www.example.com/barcode?EAN14+CR;
- also anstelle EAN14 soll er den eingelesenen Zahlencode senden, +CR meine ich ein Return (CHR$(13)) -
dann würde also eine Linux-Shell einfach das Webformular ausfüllen und absenden und das ganze ginge über eine gesicherte (TCP-)Verbindung mit entsprechender Time-Out-Unempfindlichkeit.
Das Verschlucken von Zeichen sollte damit vermieden werden, da die Eingabe im Stück auf dem lokalen Rechner verarbeitet wird.

Daten wieder zurück an die Serielle Schnittstelle weiß ich noch nichts anzubieten.

HG
Mark