PHPで16 進文字を読み取ると、この奇妙な出力が表示されます。ここで、PHP は Arduino シリアルからデータをフェッチします。
これが出力です..
ÿ ÿ^A ÿ^A
Arduino にデータを送信するために使用するユーザー空間アプリケーションを作成しました。
私のユーザー空間アプリケーションのサンプルコードは次のとおりです。
unsigned char data[2][7] = {{0x01,0x01,0xFF,0x3F,0x00,0x3F,0x08},
{0xFF,0x01,0x02,0xFF,0x00,0x2F,0x10}};
fd=open("/dev/ttyS0",O_RDWR | O_NOCTTY);
if(fd<0)
exit(1);
if (strcmp(argv[1], "go up")==0) {
write(fd,data[0],8); // What I used to send data to my Arduino..
}
Arduino からデータを取得するために使用しているサンプル PHP コードを次に示します。
$sCon = $sConnect->SerialConnect("/dev/ttyS0", 9600);
shell_execute("test 'go up'"); //Test is the name of my user space application
usleep(100000)
$data .= fread($sCon, 25); // Get the data from the Arduino..
$sConnect->SerialClose($sCon);
実行すると、ページに表示されるデータがめちゃくちゃになります: ÿ ÿ^A ÿ^A
. このデータを取得する必要があります: 0x01,0x01,0xFF,0x3F,0x00,0x3F,0x08、私のウェブサイトに表示されます..
これを変えると
write(fd,data[0],8); // Prints `ÿ ÿ^A ÿ^A`
これに
write(fd,"010101FF3F003F08",15); // Prints 010101FF3F003F08 in PHP
その後、問題なくデータを取得できます...
のように表示されるのはなぜÿ ÿ^A ÿ^A
ですか?