簡體   English   中英

從串行端口上的命令讀取響應

[英]Read response from command on serial port

我正在編寫一個PHP應用程序,該程序使用串行設備通過GSM調制解調器進行處理。 因此,您可以通過screen與串行端口通信,並且在編寫命令時會得到響應。

我使用PHP與串行端口通信,並使用sleep在命令之間等待,我使用帶有w+標志的fopenfwrite發送命令。 我嘗試使用fread函數檢查響應是否存在,但實際上不是。 用PHP怎么做?

從概念f_read如果端口配置正確,則f_read應該可以工作。 https://github.com/Xowap/PHP-Serial上有一個庫php-serial

這是readPort()函數:

public function readPort($count = 0)
    {
        if ($this->_dState !== SERIAL_DEVICE_OPENED) {
            trigger_error("Device must be opened to read it", E_USER_WARNING);
            return false;
        }
        if ($this->_os === "linux" || $this->_os === "osx") {
            // Behavior in OSX isn't to wait for new data to recover, but just
            // grabs what's there!
            // Doesn't always work perfectly for me in OSX
            $content = ""; $i = 0;
            if ($count !== 0) {
                do {
                    if ($i > $count) {
                        $content .= fread($this->_dHandle, ($count - $i));
                    } else {
                        $content .= fread($this->_dHandle, 128);
                    }
                } while (($i += 128) === strlen($content));
            } else {
                do {
                    $content .= fread($this->_dHandle, 128);
                } while (($i += 128) === strlen($content));
            }
            return $content;
        } elseif ($this->_os === "windows") {
            // Windows port reading procedures still buggy
            $content = ""; $i = 0;
            if ($count !== 0) {
                do {
                    if ($i > $count) {
                        $content .= fread($this->_dHandle, ($count - $i));
                    } else {
                        $content .= fread($this->_dHandle, 128);
                    }
                } while (($i += 128) === strlen($content));
            } else {
                do {
                    $content .= fread($this->_dHandle, 128);
                } while (($i 

+= 128) === strlen($content));
        }
        return $content;
    }
    return false;
}

如何像這樣的QBasic程序在PHP中讀取RS232串行端口

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM