SV: [PHP] Read From COM1 port
| From: | Kim Madsen | Date: | Fri, 04 Mar 2005 08:51:51 +0000 |
| Subject: | SV: [PHP] Read From COM1 port | ||
| Groups: | php.general | ||
| Request: | Send a blank email to php-general+get-209965@lists.php.net to get a copy of this message | ||
From: Richard Lynch [mailto:ceo@l-i-e.com]
Sent: 3. march 2005 20:56
>> $fp = fopen("COM1", "rwb");
> You might try this:
> $input = fopen("COM1", "rb");
> $output = fopen("COM1", "wb");
> Use $output to write, and $input to read.
On a windows one would have to close the connection every time then since that OS only allow _one_
connection to the serial ports.
> Another possibility would be to check the manual...
I´ve been it around, as I wrote in the first mail, but something must have been misspelled by me,
cause I took the example from fgetc:
$fp = fopen("COM1", "w+b");
while (false !== ($char = fgetc($fp))) {
echo ".$char";
}
And nothing happened, so I figured that the switch might me locked somehow, I turned it off and on
again and suddenly all the start up info from the switch was shown on my screen. I now use the
example as a wrapper:
// open connection
$fp = fopen("COM1", "w+b");
// listen for output from $fp
while (false !== ($char = fgetc($fp))) {
// save chars in buffer, if NOT returns or newlines
if($char != "\r" && $char != "\n") {
$buffer .= $char;
// We need to know if things went wrong
if(trim($buffer) == "Error")
$response[] = "Error";
// execute commands
if(trim($buffer) == "SecOff >") {
$command = "$Sec[$SecOff]\r\n";
fwrite($fp, $command);
print "writing: $command\n";
$SecOff++;
$buffer = "";
}
}
I´m working on it as we speak, this is just a part of the script. It´s so nice to have a break
through finally :-)
> I don't thing 'rwb' is the correct way to fopen for read/write access.
> 'wb+' would be a better answer, I think.
I know, that´s how I´ve done it. During try&fail tests I´ve tried like everything. My mistake
to not check the code properly before mailing it here...
Have a nice weekend out there :o)
--
Sincerly
Kim Madsen
Systemdeveloper / ComX - http://www.comx.dk