Serielle Schnittstelle mit PHP

Hallo,

Hätte mal ne frage kann man mit PHP eine serielle Schnittstelle ansteuern und auslesen (schreiben und lesen) und wie würde dann der Code dazu aussehen?? Das ganze würde dann serverseitig laufen, d.h. das die Serielle-Schnittstelle bedindet sich am Server!!!

Danke im Voraus

MfG the.mole
 
nur mit php ist dies nicht möglich, da php einen vorgegebenen bereich hat, in welchem es agieren kann. dazu gehören ganz sicher keine wechselmedien.

du könntest allerdings rein theoretisch mit einer programmiersprache deiner wahl ein programm schreiben, welches über php gesteuert arbeitet.
 
Hallo,
ach wie schön das hier so schnell geurteil wird....

Also mit PHP kann man _nicht_ auf die serielle Schnittstelle des Besuchers/Clients zugreifen, aber sehr wohl auf die serielle Schnittstelle des Servers.

Dafür müssen aber die Rechte gesetzt sein.

Windows un Unix stellen die serielle Schnittstelle als Datei zur Verfügung, so dass man mit ganz normalen Dateibefehlen darauf zugreifen kann.

Bsp:
PHP:
<?php
$string = "Hallo Schnittstelle!\n";
$pointer = fopen("/dev/ttyS0","w");
fwrite ($pointer, $string);
fclose($pointer);
?>

Hier wird auf die serielle Schnittstelle /dev/ttyS0 geschrieben.
 
interessant....da frag ich mich nur, wie der zugriff dann ausschaut. php ist doch eine interpretersprache, die pro user immer eine neue instanz der hph.exe ausführt....oder irre ich mich da?

wie kann man dann sicherstellen, dass nicht gerade eine andere php.exe darauf zugreift? man kann ja hier nicht einen simultanen zugriff gestatten?

wie würde denn ein code in php aussehen, der abfragt ob schon eine andere instanz zugreift?
 
Hallo,
wie schon gesagt, die Schnittstelle ist wie eine normale Datei zu behandeln.
Damit kommen auch die gleichen Probleme wie die mit der Dateibehandlung hinzu.

Also musst du zuerst per flock(); testen, ob die Datei verriegelt ist.
Wenn nicht, dann verriegelst du diese, und kannst auf die serielle Schnittstelle schreiben.
Natürlich das verriegeln nicht vergessen.

Dann zum Schluss die Verrieglung aufheben, fertig.
Nach xx Sekunden des Testens den Code abbrechen (Timeout).

Ich denke sogar mal, dass falls gerade jmd. auf die Schnittstelle schreibt, dass fopen(); false zurückgibt.
Somit kann man mit file_exists(); und fopen(); testen, ob ein Gerät angeschlossen ist, und ob man schreiben darf.
 
Zurück
Oben