tepomagico / php-serial

Automatically exported from code.google.com/p/php-serial
0 stars 0 forks source link

Not receiving all character correctly #14

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
Hi,

I'm just testing this class as I need to transmit and receive data from a LED 
controller. But for now, I'm doing test with a null-modem cable plugged to COM7 
and COM8, via USB-to-serial adapter.
I'm trying some simple transmission but notice that all characters are note 
received well. Some needs to be uppercase, the other lowercase.
Here is the "good" spelling for having good transmission:
ABcDefGHijKlMNoPqrStUVwxYZ
If I send "a" instead of "A", I receive a "á". All "non-working" characters 
are with accents.
I check the receiving string with a Tera Term terminal connected on COM7, and 
my php script is connected on COM8.
All the transmission are good when using 2 terminals (1 on COM7, 1 on COM8), 
but not with the script

What steps will reproduce the problem?
1. using the example.php, just replace $serial->sendMessage("Hello !"); with 
$serial->sendMessage("Bazinga!");

What is the expected output? What do you see instead?
Expected result : Bazinga!
see instead: Báúiîçá!

What version of the product are you using? On what operating system?
Last version from SVN read only, on Win7 x64, with PHP 5.3.13

Please provide any additional information below.
Got the same result while using PHP-Cli, so Apache not involved

Thanks :)

Original issue reported on code.google.com by jeanmarc...@gmail.com on 6 Nov 2012 at 8:36

GoogleCodeExporter commented 9 years ago
Hi dude did you ever manage to fix this? Having the exact same issue.

Original comment by jerome.d...@gmail.com on 20 Aug 2013 at 4:24

GoogleCodeExporter commented 9 years ago

    function rs232init($com,$bautrate)
    {
    `mode $com: BAUD=$bautrate PARITY=N data=8 stop=1 xon=off`;
    }

    function send($comport,$char)
    {

         $fp = fopen ("$comport", "w+");
         if (!$fp)
          {
             echo "not open for read";
          }
        else {
                fputs ($fp, $char);
                 fclose ($fp);
                }
    }

    function read($comport2,$sek)
    {

       $buffer = "";

       $fp2 = fopen ("$comport2", "r+");
         if (!$fp2)
         {
       echo "port is open for read";
       }
    else
      {
      sleep($sek);
             $buffer .= fgets($fp2, 4096);
            }
          return $buffer;
          fclose ($fp2);
}

rs232init("com2","9600");
send("com2","3"); 
$a = read("com2","2"); 
echo $a; 

Original comment by fares.ab...@gmail.com on 2 Aug 2014 at 9:29