導航:首頁 > 編程語言 > php調用串口

php調用串口

發布時間:2023-09-13 01:44:20

㈠ 如何用php調用自己編寫的COM組件

首先寫ActiveX Dll:

新建一個VB6工程,ActiveX Dll將工程命名為P_test,類名為c_test ,類的文件內容如下:

Option Explicit

Private MyscriptingContext As scriptingContext

Private MyApplication As Application

Private MyRequest As Request Private MyResponse As Response

Private MyServer As Server

Private MySession As Session Public

Sub OnStartPage(PassedscriptingContext As scriptingContext)

Set MyscriptingContext = PassedscriptingContext

Set MyApplication = MyscriptingContext.Application

Set MyRequest = MyscriptingContext.Request

Set MyResponse = MyscriptingContext.Response

Set MyServer = MyscriptingContext.Server

Set MySession = MyscriptingContext.Session

End Sub

Public Sub OnEndPage()

Set MyscriptingContext = Nothing

Set MyApplication = Nothing

Set MyRequest = Nothing

Set MyResponse = Nothing

Set MyServer = Nothing

Set MySession = Nothing

End Sub

Public Function Test_Number(num) As Variant

If num 0 Then Get_Number_Attrib = 1

If num = 0 Then Get_Number_Attrib = 0

End Function

編譯生成p_test.dll文件

注冊

提示符下運行:regsvr32 p_test.dll

編寫php文件,test.php4代碼如下:

<?php

$b=new COM("p_test.c_test");

$a=$b->Test_Number(-454);

echo $a;

?>

可能碰到的問題是,編譯工程時通不過,要將Microsoft Active Server Pages Object Library引用進來,具體實現"Project->References"找到改庫,並勾上 。

㈡ php可以對硬體操作嗎

完全可以的,php可以操作串口rs232的。
例子如下:
<?php
// --------------------------------------------------------------------------
// File name : RS232_Server.php
// Description : RS232演示上位機程序
// Requirement : PHP 5.1.4 (cli) (http://www.php.net)
//
// Copyright(C), HonestQiao, 2006, All Rights Reserved.
//
// Author: HonestQiao ([email protected]/QQ:5601680)
//
// 程序簡介:
// 本程序與RS232_Client構成一個完整的演示系統,展示了PHP在RS232串口通訊上的應用。
// 程序之中實現了一個基礎但是完整的RS232通訊協議(HQB232),通訊協議格式如下:
// 協議內容:
// C->S 01 //請求通訊
// S->C 02 //響應通訊
// C->S LEN DATA //LEN表示數據(DATA)長度 DATA表示實際數據
// C->S 03 //結束通訊
// 說明:S表示上位機 C表示下位機
// HQB232表示HonestQiao演示的基礎(Base)RS232通訊協議,包含了協議的
// 請求和響應,數據幀的結構。
// 演示過程為通訊的請求和響應,十次數據幀的發送, 通訊的結束
// 數據幀的結構為當前的序號,microtime(),隨機字元串
//
// 歡迎探討PHP在RS232串口通訊上的應用。
// --------------------------------------------------------------------------
set_time_limit(0);
exec('mode COM1: baud=115200 data=8 stop=1 parity=n xon=on');

$fd = dio_open('COM1:', O_RDWR);
if(!$fd)
{
die("Error when open COM1");
}

$ff = dio_stat($fd);print_r($ff);
echo "HQB232 SERVER is listenning on COM1\n";
/// read
$len = 2;
$t=0;while (($t++)<1000)
{
$data = dio_read($fd, $len);
if ($data) {
if($data==chr(0).chr(1)){
echo "S_RECV:01\n";
echo "S_SEND:02\n";
dio_write($fd,chr(0).chr(2));
break;
}
}
}

/// read
$len = 2;
$t=0;while (($t++)<1000)
{
$len = 2;
$data = dio_read($fd, $len);
if($data==chr(0).chr(3)){
echo "S_RECV:03\n";
break;
}
elseif ($data) {
$len = intval($data);
$data = dio_read($fd, $len);
if($data){
echo "S_RECV:($len)$data\n";
}
}
}
dio_close($fd);
?>

㈢ 怎麼用php與串口進行通信

1.通過php擴展dio。
下載dio擴展:http://www.cyberspice.org.uk/downloads/dio-0.0.4rc3.tgz
在php.ini打開dio擴展。
dio開啟後可以通過dio_open dio_read等函數進行通信。但dio默認只是在Linux下的,好像pecl也有編譯後的php_dio.dll,但我在win下測試其實無法正常使用,可能是我php版本太高(5.3.3)。
dio擴展如果能打開,網上自然有很多實例

<?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上正常使用,我測試結果是比較穩定,提供了單位元組流通信和非同步通信。對於單位元組流通信我還專門請教了作者,發現原來可以通過loop讀取數據流的。需要注意的是ser_write()的數據是字元型,但是ser_read()的數據則是10進制。所以發送的時候最好轉換為hex,接收後由十進制再轉為十六進制才能正常使用。
還有就是php_ser作為第三方擴展,作者是收費的。免費版本沒有功能限制,只是每次收發位元組數不能超過1024位元組。

function x_get_cgqbh() {
$str = 『at+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;
}

㈣ 用PHP如何接收串口的數據

假設http://booking.56nb.com/ip.php這個頁面有一個功能需要操作並返回某字元串,還用一下代碼可以實現執行並讀取返回值。

$fp = fopen("http://booking.56nb.com/ip.php","r");
$ret= fgetss($fp,255);
echo $ret."<br>";
fclose($fp);

閱讀全文

與php調用串口相關的資料

熱點內容
車上顯示伺服器未激活是什麼意思 瀏覽:621
海歸程序員回國求職 瀏覽:9
單片機哪個工作區可以切換4個區 瀏覽:472
2019彩六改伺服器地址 瀏覽:414
程序員女有什麼特點 瀏覽:518
程序員的行情如何 瀏覽:309
程序員老宅視頻 瀏覽:556
安卓手機如何使用藍牙鍵鼠 瀏覽:233
u盤安裝redhatlinux 瀏覽:54
電腦u盤加密要不要空間 瀏覽:429
程序員對普通人發信息 瀏覽:138
php向下取整函數 瀏覽:497
信源編解碼實驗分析 瀏覽:479
前端程序員需要什麼證書 瀏覽:113
蚌埠前端程序員私活收入是多少 瀏覽:488
自動關機dos命令 瀏覽:325
我的app為什麼打不開 瀏覽:160
華為手機更新app放在哪裡 瀏覽:784
阿里雲伺服器包含數據嗎 瀏覽:304
伺服器的密封是什麼 瀏覽:153