RE: More about problems reading COM ports

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> -----Original Message-----
> From: John McCaskey [mailto:mccaskey@xxxxxxxxxxxx]
> Sent: Sunday, March 27, 2005 5:13 AM

> Others have reported problems reading COM ports using fopen and fgets or
> fread. They open the port and start reading but nothing ever arrives.

I had the "problem" and solved it, I believe I posted the answer here too? What kinda device are You listening to? I was listening to a switch and got nothing using the example from the fgetc manual until I restarted the switch, then all the boot info became visual... It reads each byte from the port, so use that as a "listen_wrapper", send try some [enter] commands, have a terminal ready to check if something goes wrong, try output the buffer, when $char is a "\n" and basically know exactly what the device shows and expects. Here´s a hint to get You started:

if($fp = fopen('com1', 'wb')) // b for windows
  // send [enter]
  fwrite($fp, "\r\n");

  // listen to device
  while (false !== ($char = fgetc($fp))) {
    echo "$char\n";
    $buffer .= $char;
    if($char == "\n" || $char = "\r") {
      echo "\nBUFFER: $buffer\n\n";
      sleep(3);
      $buffer = "";
    }
  }
}
else {
   echo 'can´t connect to com1, got a terminal open?';
} 

Play some more with the sleep and [enter]

> I have the same problem and discovered the following. There is an 8K
> input buffer. Only after 8K bytes have arrived does fgets or fread see the
> first.

Won´t be a problem with fgetc() since You read char by char.

> How does one get around this feature (or bug)?
> 
> This is with php 5.0.2.2 on Windows XP.

I´m using 4.3.10

-- 
Med venlig hilsen / best regards
ComX Networks A/S
Kim Madsen 
Systemudvikler/systemdeveloper

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux