<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>憂藍夢境‧部落格 &#187; serial</title>
	<atom:link href="http://blog.linym.net/archives/tag/serial/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.linym.net</link>
	<description>我的學習心得、筆記</description>
	<lastBuildDate>Thu, 10 Sep 2009 07:50:41 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>用 PHP 寫 RS232 串列通訊程式</title>
		<link>http://blog.linym.net/archives/187</link>
		<comments>http://blog.linym.net/archives/187#comments</comments>
		<pubDate>Tue, 02 Oct 2007 11:25:06 +0000</pubDate>
		<dc:creator>lym520</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[程式筆記]]></category>
		<category><![CDATA[serial]]></category>

		<guid isPermaLink="false">http://blog.linym.net/archives/187</guid>
		<description><![CDATA[相信經常在翻 PHP 手冊的人應該都有察覺，PHP 不只是可以用來開發網頁程式而已，很多其他語言能完成的工作 PHP 也都做的到，例如透過 PHP 的 Direct IO Functions 就可以對 Serial port 溝通，而且可以在 Windows 下執行，一般在 Windows 要實做 com port 通訊程式，大多是透過像 VB/VC++/C++ Builder 這類程式所提供的元件來撰寫，不過用 PHP 就可以很快實做出一般的功能囉！
在開始之前要先讓 PHP 支援 dio 才行，5.1.0 版之後已經將 dio 移至 PECL 了，可以到 PHP 官網下載編譯好的 PECL，解壓縮後將裡面的 php_dio.dll 放到 PHP 目錄的 ext 底下，接著修改 php.ini 加入 extension=php_dio.dll 即可。
在 Windows 底下讀取 COM1 的例子：


&#60;?php
exec(&#039;mode COM1: baud=19200 [...]]]></description>
			<content:encoded><![CDATA[<p>相信經常在翻 PHP 手冊的人應該都有察覺，PHP 不只是可以用來開發網頁程式而已，很多其他語言能完成的工作 PHP 也都做的到，例如透過 PHP 的 <a href="http://tw2.php.net/manual/en/ref.dio.php" target="_blank">Direct IO Functions</a> 就可以對 Serial port 溝通，而且可以在 Windows 下執行，一般在 Windows 要實做 com port 通訊程式，大多是透過像 VB/VC++/C++ Builder 這類程式所提供的元件來撰寫，不過用 PHP 就可以很快實做出一般的功能囉！</p>
<p>在開始之前要先讓 PHP 支援 dio 才行，5.1.0 版之後已經將 dio 移至 PECL 了，可以到 PHP 官網下載編譯好的 <a href="http://tw2.php.net/downloads.php" target="_blank">PECL</a>，解壓縮後將裡面的 <strong>php_dio.dll</strong> 放到 PHP 目錄的 ext 底下，接著修改 php.ini 加入 <strong>extension=php_dio.dll</strong> 即可。</p>
<p>在 Windows 底下讀取 COM1 的例子：</p>
<pre title="code" class="php">

&lt;?php
exec(&#039;mode COM1: baud=19200 data=8 stop=1 parity=n&#039;);
$fd = dio_open(&#039;COM1:&#039;, O_RDWR);
while (1) {
    $data = dio_read($fd, 1);
    if ($data) {
        echo $data;
    }
}
dio_close($fd);
?&gt;
</pre>
<p>寫法跟在 Linux 用 C 寫 serial 通訊程式差不多，其中 mode 是 Windows 命令列一個設定 serial port 組態的工具(類似 Linux 的 stty)，可以打 mode /? 看詳細說明，設定好傳輸率等，接著用 dio_open 開啟裝置，然後就可以做存取的動作囉！</p>
<p><strong>※ 2009/04/10 補充：</strong><br />
有不少人看了這篇之後，問我要怎麼用 PHP 讀取 GPS 資料。<br />
在這邊要跟各位補充的是，如果您想要用瀏覽器在網頁執行 PHP，然後去讀取 GPS，這的確可以抓到資料，但其實是存在很多問題的，因為 Web 架構並不適合應用在這類有「持續連接」行為的地方，所以有可能發生 timeout、資源佔用、搶奪，嚴重的話會導致伺服器 crash。</p>
<p>但是如果一定要用 PHP 實作，建議應該是利用 command line 的方式執行，在背景專門負責抓 GPS 資料 ，並且將座標資料存入檔案或資料庫，然後網頁再去存取座標資料，如此一來便不會影響到 Web 運作。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.linym.net/archives/187/feed</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>Access Port - serial port 測試工具</title>
		<link>http://blog.linym.net/archives/157</link>
		<comments>http://blog.linym.net/archives/157#comments</comments>
		<pubDate>Thu, 12 Jul 2007 16:23:31 +0000</pubDate>
		<dc:creator>lym520</dc:creator>
				<category><![CDATA[軟體筆記]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[serial]]></category>

		<guid isPermaLink="false">http://blog.linym.net/archives/157</guid>
		<description><![CDATA[最近專題需要撰寫一個 RFID 讀取程式，在開工之前必須要先瞭解 RFID Reader 所接收和回傳的命令形式，由於設備是接在 com port 上，所以就找到 SUDT Access Port 這個好用的工具，它可以向 com port 發送 ASCII/Hex 訊息，然後設備回傳的訊息也會顯示出來，如此一來就可以掌握 command 的正確性及格式了。
Access Port 這個工具是由對岸所開發的，支援多國語言，也有繁體中文哦。
簡要介紹：
 1.用於串口調試，支持常用的110-256000波特率，支持自定義波特率。
2.能以字符或十六進制接收或發送任何數據，能發送、接收任意大小的文件。
3.在不改變當前所打開端口的情況下，能動態改變端口參數（如：波特率、校驗位、流控制等）。
4.數據發送區可實時編輯、發送文本數據。
5.能將所接收的原始數據以及顯示數據分別保存。
6.數據發送區允許設置發送週期，自動發送數據。
7.可調試的端口範圍是COM1-COM255，支持擴展端口(USBRS232)。
8.可設置字體、文字顏色、背景顏色。
9.允許將發送區的數據在接收區回顯，模擬終端操作。
10.允許發送區數據以回車鍵作為發送操作信號。
11.支持預定義數據發送模式，支持Hex、Text、浮點數等類型。
12.Monitor模式支持彩色文本顯示,便於更好的區分、觀察數據.
13.允許Monitor模式下攔截到的數據以十六進制或字符方式顯示。
14.允許接收區在接收到的數據後添加回車字符(CRLF)，便於觀察數據。
15.可將Terminal模式下接收到的數據按照十六進制文本方式導出到文件或剪貼板。
16.允許保存程序環境變量。
17.定義熱鍵，方便操作。
18.國際版，支持多國語言。
19.數據發送區內嵌十六進制編輯器，支持unicode。
20.支持串口監控功能，可以監控串口設置以及收發的數據。
21.在線自動更新提示功能，當有可用新版本時提示用戶下載。
22.本程序線程安全，可以同時啟動多個副本調試多個串口。

]]></description>
			<content:encoded><![CDATA[<p>最近專題需要撰寫一個 RFID 讀取程式，在開工之前必須要先瞭解 RFID Reader 所接收和回傳的命令形式，由於設備是接在 com port 上，所以就找到 <a href="http://www.sudt.com/cn/ap/index.html" target="_blank">SUDT Access Port</a> 這個好用的工具，它可以向 com port 發送 ASCII/Hex 訊息，然後設備回傳的訊息也會顯示出來，如此一來就可以掌握 command 的正確性及格式了。</p>
<p><a href="http://www.sudt.com/cn/ap/index.html" target="_blank">Access Port</a> 這個工具是由對岸所開發的，支援多國語言，也有繁體中文哦。</p>
<p><strong>簡要介紹：</strong></p>
<blockquote><p> 1.用於串口調試，支持常用的110-256000波特率，支持自定義波特率。<br />
2.能以字符或十六進制接收或發送任何數據，能發送、接收任意大小的文件。<br />
3.在不改變當前所打開端口的情況下，能動態改變端口參數（如：波特率、校驗位、流控制等）。<br />
4.數據發送區可實時編輯、發送文本數據。<br />
5.能將所接收的原始數據以及顯示數據分別保存。<br />
6.數據發送區允許設置發送週期，自動發送數據。<br />
7.可調試的端口範圍是COM1-COM255，支持擴展端口(USB<->RS232)。<br />
8.可設置字體、文字顏色、背景顏色。<br />
9.允許將發送區的數據在接收區回顯，模擬終端操作。<br />
10.允許發送區數據以回車鍵作為發送操作信號。<br />
11.支持預定義數據發送模式，支持Hex、Text、浮點數等類型。<br />
12.Monitor模式支持彩色文本顯示,便於更好的區分、觀察數據.<br />
13.允許Monitor模式下攔截到的數據以十六進制或字符方式顯示。<br />
14.允許接收區在接收到的數據後添加回車字符(CRLF)，便於觀察數據。<br />
15.可將Terminal模式下接收到的數據按照十六進制文本方式導出到文件或剪貼板。<br />
16.允許保存程序環境變量。<br />
17.定義熱鍵，方便操作。<br />
18.國際版，支持多國語言。<br />
19.數據發送區內嵌十六進制編輯器，支持unicode。<br />
20.支持串口監控功能，可以監控串口設置以及收發的數據。<br />
21.在線自動更新提示功能，當有可用新版本時提示用戶下載。<br />
22.本程序線程安全，可以同時啟動多個副本調試多個串口。</p></blockquote>
<p><a href='http://blog.linym.net/wp-content/uploads/2007/07/accessport.jpg' title='accessport.jpg' target="_blank"><img src='http://blog.linym.net/wp-content/uploads/2007/07/accessport.jpg' alt='accessport.jpg' width="450" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.linym.net/archives/157/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
