com port schliessen

Die Scriptsprache PHP für die Gestaltung von dynamischen Websites.

com port schliessen

Beitragvon cazper » Mi 01 Jun, 2005 14:03

wie kann ich die serielle schnitstelle schliessen wenn diese offen ist?
über die kommando-zeile? aber welcher befehl dann?
Bild
cazper
Junior Board-Mitglied
Junior Board-Mitglied
 
Beiträge: 34
Registriert: Mo 18 Apr, 2005 14:02

Beitragvon Tom-Wien » Mi 01 Jun, 2005 14:05

für immer oder temporär?

vor allem - was hängt da drann das du sie schliesen mußt/möchtest?
LG

Tom
TA KOMBI
Tom-Wien
Advanced Power-User
Advanced Power-User
 
Beiträge: 3559
Registriert: So 07 Mär, 2004 11:02
Wohnort: Wien / LA

Beitragvon cazper » Mi 01 Jun, 2005 14:25

für immer? temporär?
erklär mal bitte
:)

zur verwendung:
habe beide schnittstellen miteinander verbunden
ich öffne per php port1
sende daten
schließe port

öffne port 2
will die eben gesendeten daten einlesen
script bleibt hängen
port wird nicht geschlossen

muss dann jedemal den rechner neustarten :/
Bild
cazper
Junior Board-Mitglied
Junior Board-Mitglied
 
Beiträge: 34
Registriert: Mo 18 Apr, 2005 14:02

Beitragvon speedy4gamers » Mi 01 Jun, 2005 14:30

Was war eben das Problem, dass ich beschrieben habe. Wenn der Timeout auftritt, is finito mit der COM Schnittstelle.
Du könntest versuchen einen Script zu schreiben, in der du die COM nur öffnest und dann wieder schließt! <?$handler = fopen(..) ; fclose($handler);?>
Vielleicht hilft das!
Speedy
speedy4gamers
Board-Mitglied
Board-Mitglied
 
Beiträge: 208
Registriert: So 23 Jan, 2005 18:23

Beitragvon Tom-Wien » Mi 01 Jun, 2005 14:31

aso - dann gehört das zu deinem anderen thread ...

bitte bleib doch in einem - dann sind die zusammenhänge klarer.
LG

Tom
TA KOMBI
Tom-Wien
Advanced Power-User
Advanced Power-User
 
Beiträge: 3559
Registriert: So 07 Mär, 2004 11:02
Wohnort: Wien / LA

Beitragvon cazper » Mi 01 Jun, 2005 14:37

so mach ich das ja auch
öffnen- was machen- schliessen
nur bleibt das script in der while-schleife hängen
auch die timeout-bedingung hilft nicht
und der port wird darum nicht geschlossen
irgendwas stimmt da mit fgets nicht

hier mal der code
[php]
<?
define("TIMEOUT", "3"); //3 sec timeout

$comport1 = "COM1";
$comport2 = "COM2";
$string = "Hallo Schnittstelle!\n";
$buffer = "";

`mode com1: BAUD=9600 PARITY=N data=8 stop=1 xon=off`;
$fp2 = fopen ($comport1, "w+");
`mode com2: BAUD=9600 PARITY=N data=8 stop=1 xon=off`;
$fp1 = fopen ($comport2, "w+");

if (!$fp1) {
echo "Uh-oh. Port 1 not opened.";
} else {
$e = chr(27);
$string = $e . "A" . $e . "H300";
$string .= $e . "V100" . $e . "XL1SATO";
$string .= $e . "Q1" . $e . "Z";
echo $string;
echo fwrite ($fp1, $string );
fclose ($fp1);
}

if (!$fp2) {
echo "Uh-oh. Port 2 not opened.";
} else {
$time_start = round(microtime(true),0);
while(!feof($fp1) AND round(microtime(true),0)-$time_start < TIMEOUT) {
$buffer .= fgets($fp2, 4096);
$buffer .= "<br>";
}
echo $buffer;
fclose ($fp2);
}
?>[/php]

///edit
ja, hier gehts aber um die hardware
deshalb dach ich ich poste mal hierein :dontknow:
Bild
cazper
Junior Board-Mitglied
Junior Board-Mitglied
 
Beiträge: 34
Registriert: Mo 18 Apr, 2005 14:02


Zurück zu PHP

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 19 Gäste