我正在使用 PHP 开发 Web 应用程序,我的应用程序与规模数字通信,我正在使用 phpserial 类的帮助。我的问题是我的浏览器中输出的数据与数字比例输出不匹配。当数字比例为16KG时,浏览器输出为NT,ST+16KG然后我再次刷新浏览器得到其他,如~!NT,ST+16KG, 16KG。我的问题,如何在仅16KG的浏览器中获取数据。
这是读取数据的脚本:
<?php
$serial = new phpSerial();
$serial->deviceSet("/dev/ttyUSB1");
$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(1); //Stop bits (this is the "1" in "8-N-1")
$serial->confFlowControl("none");
$serial->deviceOpen();
$serial->sendMessage(chr(1));
$tes = $serial->readPort();
print_r($tes);
// get result ~!NT,ST+16KG, 16KG or NT,ST+16KG
$serial->deviceClose();
?>
这是 phpSerial 类的代码函数 readPort。
function readPort ($count = 0) {
if ($this->_dState !== SERIAL_DEVICE_OPENED)
{
trigger_error("Device must be opened to read it", E_USER_WARNING);
return false;
}
$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;
}
我正在开发使用 linux,/dev/ttyUSB1 中的端口比例数字检测,我的意思是这个问题是 ASCII,所以任何帮助我解决我的问题。谢谢。