Sie sind nicht angemeldet.

Anzeigen

**Wir werden in den kommenden Tagen einen Umzug auf einen neuen Server durchführen. Im Rahmen dieser Maßnahme wird das Forum ca. 1 Stunde nicht erreichbar sein.** nslu2-info.de ist ein privates Projekt von mir, welches jeden Monat aus eigener Tasche finanziert wird. Mit einer freiwilligen Spende wird der Erhalt und der weitere Ausbau dieses Forums unterstützt. Um mich beim Erhalt des Forums zu unterstützen, kannst Du entweder via Flattr oder Paypal spenden. Ich bedanke mich schon jetzt bei allen Unterstützern.

Lieber Besucher, herzlich willkommen bei: Die NSLU2 Community****wenns ums speichern und streamen geht****. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

zeras

Anfänger

  • »zeras« ist der Autor dieses Themas

Beiträge: 14

Firmwareversion / your current Firmware: Unslung 6.8

  • Nachricht senden

1

Freitag, 7. September 2007, 21:05

Schnittstelle ttyUSB0 über PHP ansprechen

Hallo,

wie kann ich die serielle Schnittstelle (über USB) ansprechen?

Das Schreiben geht, aber das Lesen hängt sich das Ganze auf.
Wie kann die Lösung aussehen?

$interface="/dev/ttyUSB0";
$string = "Hallo Schnittstelle!";
$pointer = fopen($interface,"w");
if (!$pointer) {echo "keine Schnittstelle $interface <br>";}
else {
echo "Schnittstelle geht<br>";
fwrite ($pointer, $string);
fclose($pointer);
}


$pointer = fopen($interface,"r");
if (!$pointer) {echo "keine Schnittstelle für Lesen $interface<br>";}
else {
$contents = fread ($pointer, 1); //zum Test ein Zeichen lesen
echo " Hier steht der gelesene String $contents <br>";
fclose($pointer);
}

Anzeigen

zeras

Anfänger

  • »zeras« ist der Autor dieses Themas

Beiträge: 14

Firmwareversion / your current Firmware: Unslung 6.8

  • Nachricht senden

2

Sonntag, 9. September 2007, 20:25

Auf einem Testsystem bekomme ich das nun zum Laufen. Ich brauche nur noch eine Möglichkeit, die Schnittstelle schon standarmässig auf r/w zu stellen.
Bis jetzte mache ich das so:
chmod o+w /dev/ttyUSB0
chmod o+r /dev/ttyUSB0
Aber in Linux müsste es ja eine Möglichkeit geben, dies schon beim Start zu machen. Wer hat Ideen?

Hier das Script, was bei meinem Testsystem funktioniert (hoffentlich dann auch auf slug)

_exec("stty 115200 -echo -clocal -crtscts -ixon -ixoff raw -F $interface");

$pointer = fopen($interface,"r");
if (!$pointer) {echo "keine Schnittstelle für Lesen $interface<br>";}
else {
$contents = fread ($pointer, 2);
echo " Hier steht der gelesene String $contents <br>";
fclose($pointer);
}


function _exec($cmd, &$out = null)
{
$desc = array(
1 => array("pipe", "w"),
2 => array("pipe", "w")
);

$proc = proc_open($cmd, $desc, $pipes);

$ret = stream_get_contents($pipes[1]);
$err = stream_get_contents($pipes[2]);

fclose($pipes[1]);
fclose($pipes[2]);

$retVal = proc_close($proc);

if (func_num_args() == 2) $out = array($ret, $err);
return $retVal;
}

Anzeigen

Social Bookmarks