出于安全性考慮,,,javascript不能操作本地設(shè)備的,,,如果需要讀取串口中輸入的數(shù)據(jù),,,用PHP代碼來試試。。。。。

成都創(chuàng)新互聯(lián)公司專注于宿遷企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站,商城網(wǎng)站建設(shè)。宿遷網(wǎng)站建設(shè)公司,為宿遷等地區(qū)提供建站服務(wù)。全流程按需求定制開發(fā),專業(yè)設(shè)計,全程項目跟蹤,成都創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)
PHP-Serial
上面的是PHP連接COM口的類,
它是通過PHP調(diào)用SHELL命令交互來執(zhí)行連接COM口的。
線上環(huán)境無論從性能和穩(wěn)定性和安全性都不建議這樣使用。
假設(shè)這個頁面有一個功能需要操作并返回某字符串,還用一下代碼可以實現(xiàn)執(zhí)行并讀取返回值。
$fp = fopen("","r");
$ret= fgetss($fp,255);
echo $ret."br";
fclose($fp);
1.通過php擴展dio。
下載dio擴展:
在php.ini打開dio擴展。
dio開啟后可以通過dio_open dio_read等函數(shù)進行通信。但dio默認(rèn)只是在Linux下的,好像pecl也有編譯后的php_dio.dll,但我在win下測試其實無法正常使用,可能是我php版本太高(5.3.3)。
dio擴展如果能打開,網(wǎng)上自然有很多實例
?php
$c = stream_context_create(array('dio' =
array(‘data_rate’ = 115200,
‘data_bits’ = 8,
‘stop_bits’ = 1,
‘parity’ = 0,
‘is_canonical’ = 1)));
if (PATH_SEPARATOR != “;”) {
$filename = “dio.serial:///dev/ttyS0″;
} else {
$filename = “dio.serial://COM1″;
}
?
2.PHP_SER擴展
這是一個第三方擴展,可以在php5.3.3上正常使用,我測試結(jié)果是比較穩(wěn)定,提供了單字節(jié)流通信和異步通信。對于單字節(jié)流通信我還專門請教了作者,發(fā)現(xiàn)原來可以通過loop讀取數(shù)據(jù)流的。需要注意的是ser_write()的數(shù)據(jù)是字符型,但是ser_read()的數(shù)據(jù)則是10進制。所以發(fā)送的時候最好轉(zhuǎn)換為hex,接收后由十進制再轉(zhuǎn)為十六進制才能正常使用。
還有就是php_ser作為第三方擴展,作者是收費的。免費版本沒有功能限制,只是每次收發(fā)字節(jié)數(shù)不能超過1024字節(jié)。
function x_get_cgqbh() {
$str = ‘a(chǎn)t+ver?’;
$str = hexToStr($str);
ser_open( “COM1″, 9600, 8, “None”, “1″, “None” );
if (ser_isopen()) {
return “opened, post data ……”;
}else{
return false;
}
ser_write(“$str”);
sleep(1);
$str = ser_read();
ser_close();
return $str;
}
網(wǎng)頁名稱:php獲取com口數(shù)據(jù),php獲取接口數(shù)據(jù)
文章源于:http://chinadenli.net/article19/dsiipdh.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、App設(shè)計、網(wǎng)站營銷、品牌網(wǎng)站建設(shè)、用戶體驗、手機網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)