出于安全性考慮,,,javascript不能操作本地設(shè)備的,,,如果需要讀取串口中輸入的數(shù)據(jù),,,用PHP代碼來(lái)試試。。。。。
創(chuàng)新互聯(lián)公司主要從事網(wǎng)站制作、成都網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)陸河,10余年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來(lái)電咨詢建站服務(wù):18980820575
可以的,在windows下要用dio,linux下就更簡(jiǎn)單,直接把串口ttyS0當(dāng)文件讀寫。
你想用串口讀取數(shù)據(jù)、控制設(shè)備?好主意哦。
//創(chuàng)建socket監(jiān)聽(tīng)端口
$socket = socket_create_listen("55555");
//連接失敗給出錯(cuò)誤信息
if(!$socket){
exit("Failed to create socket!\n");
}
while(true){
$client = socket_accept($socket); //接受一個(gè)Socket連接!
1.通過(guò)php擴(kuò)展dio。
下載dio擴(kuò)展:
在php.ini打開dio擴(kuò)展。
dio開啟后可以通過(guò)dio_open dio_read等函數(shù)進(jìn)行通信。但dio默認(rèn)只是在Linux下的,好像pecl也有編譯后的php_dio.dll,但我在win下測(cè)試其實(shí)無(wú)法正常使用,可能是我php版本太高(5.3.3)。
dio擴(kuò)展如果能打開,網(wǎng)上自然有很多實(shí)例
?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擴(kuò)展
這是一個(gè)第三方擴(kuò)展,可以在php5.3.3上正常使用,我測(cè)試結(jié)果是比較穩(wěn)定,提供了單字節(jié)流通信和異步通信。對(duì)于單字節(jié)流通信我還專門請(qǐng)教了作者,發(fā)現(xiàn)原來(lái)可以通過(guò)loop讀取數(shù)據(jù)流的。需要注意的是ser_write()的數(shù)據(jù)是字符型,但是ser_read()的數(shù)據(jù)則是10進(jìn)制。所以發(fā)送的時(shí)候最好轉(zhuǎn)換為hex,接收后由十進(jìn)制再轉(zhuǎn)為十六進(jìn)制才能正常使用。
還有就是php_ser作為第三方擴(kuò)展,作者是收費(fèi)的。免費(fèi)版本沒(méi)有功能限制,只是每次收發(fā)字節(jié)數(shù)不能超過(guò)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;
}
假設(shè)這個(gè)頁(yè)面有一個(gè)功能需要操作并返回某字符串,還用一下代碼可以實(shí)現(xiàn)執(zhí)行并讀取返回值。
$fp = fopen("","r");
$ret= fgetss($fp,255);
echo $ret."br";
fclose($fp);
如果是get方式的話是$_GET如果是post方式的話是$_POST。
serialize 之后與普通提交一樣,沒(méi)有區(qū)別。
php代碼如:
?php
echo?'pre';
print_r($_POST);
print_r($_GET);
?