2

Linuxでシリアルポートを介してマイクロコントローラーと通信しようとしています。この目的のために USB からシリアルへのケーブルを使用していますが、php スクリプトで次のエラーが表示されます。

致命的なエラー: 未定義関数 deviceSet() の呼び出し

これが私のスクリプトです

error_reporting(E_ALL);
ini_set('display_errors', '1');     //displays php errors

include("php_serial.class.php");

$serial = new phpSerial();

deviceSet('ttyUSB0'); //for linux serial /dev/ttySP(0-4) for usb /dev/ttyUSBN

// If you want to change the configuration, the device must be closed 
//$serial->deviceClose();
$serial->confBaudRate(9600); //Baud rate: 9600
$serial->confParity("none");  //Parity (this is the "N" in "8-N-1")
$serial->confCharacterLength(8); //Character length (this is the "8" in "8-N-1")
    $serial->confStopBits(2);  //Stop bits (this is the "1" in "8-N-1")
$serial->confFlowControl("none");

$serial->deviceOpen();
// To write into $serial->sendMessage("1");
$read = $serial->readPort();

php_serial.class ファイルが USB 経由でシリアル接続を実行する際に問題があるのではないかと疑っていますが、アイデアはありますか?

また、これには問題があるようです:

# dmesg | grep tty
console [tty0] enabled
usb 3-2: FTDI USB Serial Device converter now attached to ttyUSB0
ftdi_sio ttyUSB0: ftdi_submit_read_urb - failed submitting read urb, error -1

ありがとう。

$serial ->deviceSet() を編集したところ、一連のエラーが表示されるようになりました

/var/www/html/php_serial.class.php の 111 行目に指定されたシリアル ポートが無効です.php 行 204 警告: パリティを設定できません: デバイスが設定されていないか、254 行目の /var/www/html/php_serial.class.php で開かれています 警告: 文字の長さを設定できません: デバイスは次のいずれかです298 行目の /var/www/html/php_serial.class.php で設定または開かれていません 警告: ストップ ビットの長さを設定できません: デバイスが設定されていないか、/var/www/html/php_serial で開かれていません。 335 行目の class.php 警告: フロー制御モードを設定できません: デバイスが設定されていないか、376 行目の /var/www/html/php_serial.class.php で開かれています 警告: 開く前にデバイスを設定する必要があります/var/www/html/php_serial.class.php の 137 行目 警告:/var/www/html/php_serial.class.php の 474 行目で読み取るには、デバイスを開く必要があります。

これは php_serial.class の問題ですか?

4

1 に答える 1

1

deviceSet()シリアルクラスのメソッドです。あなたがそれを呼び出す方法は、ネイティブの PHP 関数である必要があります。

そのはず:$serial->deviceSet('ttyUSB0');

于 2013-03-11T15:30:42.047 に答える