Re: Serial Comm problem

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

 



On Tue, Dec 25, 2012 at 8:36 PM, Ken Arck <ah6le@xxxxxxxxx> wrote:

> I'm pretty much a php newbie but have been programming for years in other
> languages
>
> Anyway...
>
> Using /dev/ttyS0. I need to set the serial port to 9600, send one command
> to an embedded processor board, then change the baud rate to 57600 and wait
> for a response. My code is working up to (and including) sending the
> command (and is being received correctly and acted on by the other device)
> but hangs up while waiting for the device to ACK back.
> ------------------------------**------------------------------**
> ---------------------
> //set ttyS0 speed to 9600 to send  command
>      exec('stty -F /dev/ttyS0 9600');
>
>  // first open comport if it exists
>      $fp = fopen ("/dev/ttyS0", "w+");
>      if (!$fp) {
>          die( "Uh-oh. Port not opened.");
>      } else {
>    }
>
> //send command
>   $fw = fwrite($fp, "1*219999\r\n");
>
>
> //set ttyS0 speed to 57600 to for bootloader
>    exec('stty -F /dev/ttyS0 57600');
>
> // wait for bootloader to send "^" (does not send CR or LF)
>
>    echo "Waiting for Bootloader Active Character.....\n" ;
>
>
>    // ********************************Were good to
> here***********************************
>
>
>   Do {
>      $InData = fgets($fp,1);
>     }
>   While ($InData != "^") ;
> ------------------------------**------------------------------**-
>
> I have also tried both While ($InData !=="^") ;  and While ($InData <>
> "^") ; for the last line but it always hangs in this loop and times out
> after 30 seconds
>
> The ^ is sent by the remove device with \r\n so I assumed telling fgets to
> look for one character should be enough but apparently it isn't.
>
> Any help would be greatly appreciated
>
> Ken
>

You should probably use fgetc if you only need one character.
You could also try $InData = exec('head -c 1 /dev/ttyS0');

- Matijn

[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