<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>https://jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>https://jackxiang.com/post/1347/</link>
<title><![CDATA[[运行正常]PHP串口编程代码实例]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[WEB2.0]]></category>
<pubDate>Mon, 03 Nov 2008 03:49:56 +0000</pubDate> 
<guid>https://jackxiang.com/post/1347/</guid> 
<description>
<![CDATA[ 
	PHP 5.2.6 (cli) (built: May&nbsp;&nbsp;2 2008 18:02:07),扩展了一个:extension=php_dio.dll<br/>可以通过：mode com1 来查询com1的情况！<br/><br/>exec() 這個 PHP 函式執行 mode 外部指令，用來設定 com port 相關資訊，以範例來說是設定傳輸速率=19200、資料位元=8、停止位元=1、同位檢查=無，這要視設備而定，設定正確才能做存取動作。<br/>_____________________________________Server端_______________________________<br/><div class="code">&lt;?php<br/><br/>// --------------------------------------------------------------------------<br/><br/>// File name&nbsp;&nbsp; : RS232_Server.php<br/><br/>// Description : RS232演示上位机程序<br/><br/>// Requirement : PHP 5.1.4 (cli) (http://www.php.net)<br/><br/>//<br/><br/>// Copyright(C), HonestQiao, 2006, All Rights Reserved.<br/><br/>//<br/><br/>// Author: HonestQiao (honestqiao@hotmail.com/QQ:5601680)<br/><br/>//<br/><br/>// 程序简介：<br/><br/>// 本程序与RS232_Client构成一个完整的演示系统，展示了PHP在RS232串口通讯上的应用。<br/><br/>// 程序之中实现了一个基础但是完整的RS232通讯协议(HQB232)，通讯协议格式如下：<br/><br/>// 协议内容：<br/><br/>//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; C-&gt;S 01 //请求通讯<br/><br/>//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; S-&gt;C 02 //响应通讯<br/><br/>//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; C-&gt;S LEN DATA //LEN表示数据(DATA)长度 DATA表示实际数据<br/><br/>//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; C-&gt;S 03 //结束通讯<br/><br/>// 说明：S表示上位机 C表示下位机<br/><br/>//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HQB232表示HonestQiao演示的基础(Base)RS232通讯协议，包含了协议的<br/><br/>//&nbsp;&nbsp; 请求和响应，数据帧的结构。<br/><br/>//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 演示过程为通讯的请求和响应，十次数据帧的发送， 通讯的结束<br/><br/>//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 数据帧的结构为当前的序号，microtime()，随机字符串<br/><br/>//<br/><br/>//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 欢迎探讨PHP在RS232串口通讯上的应用。<br/><br/>// --------------------------------------------------------------------------<br/><br/>set_time_limit(0);<br/>exec(&#039;mode COM1: baud=9600&nbsp;&nbsp;data=8 stop=1 parity=n xon=on&#039;);<br/>$fd = dio_open(&#039;COM1:&#039;, O_RDWR);<br/>if(!$fd)<br/>&#123;<br/>&nbsp;&nbsp;die(&quot;Error when open COM1&quot;);<br/>&#125;<br/>$ff = dio_stat($fd);print_r($ff);<br/>echo &quot;HQB232 SERVER is listenning on COM1&#92;n&quot;;<br/>/// read<br/>$len = 2;<br/>$t=0;while (($t++)&lt;1000)<br/>&#123;<br/>&nbsp;&nbsp;$data = dio_read($fd, $len);<br/>&nbsp;&nbsp;if ($data) &#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;if($data==chr(0).chr(1))&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo &quot;S_RECV:01&#92;n&quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo &quot;S_SEND:02&#92;n&quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dio_write($fd,chr(0).chr(2));<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&#125;<br/>&#125;<br/>/// read<br/>$len = 2;<br/>$t=0;while (($t++)&lt;1000)<br/>&#123;<br/>&nbsp;&nbsp;$len = 2;<br/>&nbsp;&nbsp;$data = dio_read($fd, $len);<br/>&nbsp;&nbsp;if($data==chr(0).chr(3))&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;echo &quot;S_RECV:03&#92;n&quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;break;<br/>&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;elseif ($data) &#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;$len = intval($data);<br/>&nbsp;&nbsp;&nbsp;&nbsp;$data = dio_read($fd, $len);<br/>&nbsp;&nbsp;&nbsp;&nbsp;if($data)&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo &quot;S_RECV:($len)$data&#92;n&quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&#125;<br/>&#125;<br/>dio_close($fd);<br/>?&gt;</div><br/><br/><br/><br/><br/>_____________________________________client端_______________________________<br/><br/><br/><div class="code">&lt;?php<br/><br/>// --------------------------------------------------------------------------<br/><br/>// File name&nbsp;&nbsp; : RS232_Client.php<br/><br/>// Description : RS232演示下位机程序<br/><br/>// Requirement : PHP 5.1.4 (cli) (http://www.php.net)<br/><br/>//<br/><br/>// Copyright(C), HonestQiao, 2006, All Rights Reserved.<br/><br/>//<br/><br/>// Author: HonestQiao (honestqiao@hotmail.com/QQ:5601680)<br/><br/>//<br/><br/>// 程序简介：<br/><br/>// 本程序与RS232_Server构成一个完整的演示系统，展示了PHP在RS232串口通讯上的应用。<br/><br/>// 程序之中实现了一个基础但是完整的RS232通讯协议(HQB232)，通讯协议格式如下：<br/><br/>// 协议内容：<br/><br/>//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; C-&gt;S 01 //请求通讯<br/><br/>//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; S-&gt;C 02 //响应通讯<br/><br/>//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; C-&gt;S LEN DATA //LEN表示数据(DATA)长度 DATA表示实际数据<br/><br/>//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; C-&gt;S 03 //结束通讯<br/><br/>// 说明：S表示上位机 C表示下位机<br/><br/>//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HQB232表示HonestQiao演示的基础(Base)RS232通讯协议，包含了协议的<br/><br/>//&nbsp;&nbsp; 请求和响应，数据帧的结构。<br/><br/>//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 演示过程为通讯的请求和响应，十次数据帧的发送， 通讯的结束<br/><br/>//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 数据帧的结构为当前的序号，microtime()，随机字符串<br/><br/>//<br/><br/>//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 欢迎探讨PHP在RS232串口通讯上的应用。<br/><br/>// --------------------------------------------------------------------------<br/><br/>set_time_limit(0);<br/>//exec(&#039;mode COM1: baud=9600 data=8 stop=1 parity=n xon=on&#039;);<br/>exec(&#039;mode COM1: baud=9600&nbsp;&nbsp;data=8 stop=1 parity=n xon=on&#039;);<br/>$fd = dio_open(&#039;COM1:&#039;, O_RDWR);<br/>if(!$fd)<br/>&#123;<br/>&nbsp;&nbsp;die(&quot;Error when open COM1&quot;);<br/>&#125;<br/>$ff = dio_stat($fd);<br/>echo &quot;HQB232 CLIENT is start on COM1&#92;n&quot;;<br/>dio_write($fd,chr(0).chr(1));echo &quot;C_SEND:01&#92;n&quot;;<br/>$len = 2;<br/>$t=0;while(($t++)&lt;1000)<br/>&#123;<br/>&nbsp;&nbsp;$data = dio_read($fd, $len);<br/>&nbsp;&nbsp;if($data==chr(0).chr(2))&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;echo &quot;C_RECV:02&#92;n&quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;break;<br/>&nbsp;&nbsp;&#125;<br/>&#125;<br/>$len = 2;<br/>$t=0;while(($t++)&lt;10)<br/>&#123;<br/>&nbsp;&nbsp;$sdata = sprintf(&quot;%03d&quot;,$t) . &quot;=&quot; . microtime() . &quot; (&quot; . randomkeys(rand(0,35)) . &quot;)&quot;;<br/>&nbsp;&nbsp;$slen = strlen($sdata);<br/>&nbsp;&nbsp;$stxlen = sprintf(&quot;%02d&quot;,$slen);<br/>&nbsp;&nbsp;dio_write($fd,&quot;$stxlen&quot;);<br/>&nbsp;&nbsp;dio_write($fd,&quot;$sdata&quot;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;echo &quot;C_SEND:($stxlen)$sdata&#92;n&quot;;<br/>&nbsp;&nbsp;//sleep(1);<br/>&#125;<br/>dio_write($fd,chr(0).chr(3));echo &quot;C_SEND:03&#92;n&quot;;<br/>dio_close($fd);<br/>function randomkeys($length)<br/>&#123;<br/>&nbsp;&nbsp; $pattern = &quot;1234567890abcdefghijklmnopqrstuvwxyz&quot;;<br/>&nbsp;&nbsp; for($i=0;$i&lt;$length;$i++)<br/>&nbsp;&nbsp; &#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp; $key .= $pattern&#123;rand(0,35)&#125;;<br/>&nbsp;&nbsp; &#125;<br/>&nbsp;&nbsp; return $key;<br/>&#125;<br/>?&gt;</div><br/><br/>注意：在window下com是当作一个文件打开的，只能有一个进程控制，可能导致clien 或者 server 出现：Warning: dio_open(): cannot open file COM1: with flags 2 and permissions 0: Permission denied in ****<br/>
]]>
</description>
</item><item>
<link>https://jackxiang.com/post/1347/#blogcomment63366</link>
<title><![CDATA[[评论] [运行正常]PHP串口编程代码实例]]></title> 
<author>Irene &lt;blackwhiteteeth@hotmail.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Fri, 23 Sep 2011 19:05:05 +0000</pubDate> 
<guid>https://jackxiang.com/post/1347/#blogcomment63366</guid> 
<description>
<![CDATA[ 
	想请问下 我得到的error是<br/>** flags 2 and permissions 0: invalid argument in ****<br/><br/>dio_open(),fopen(),或php_serial.class.php的方法全试过了，但就是连接不到....<br/><br/>希望可以得到你的帮助 谢谢你
]]>
</description>
</item><item>
<link>https://jackxiang.com/post/1347/#blogcomment63774</link>
<title><![CDATA[[评论] [运行正常]PHP串口编程代码实例]]></title> 
<author>root &lt;admin@yourname.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Sun, 01 Jul 2012 04:44:40 +0000</pubDate> 
<guid>https://jackxiang.com/post/1347/#blogcomment63774</guid> 
<description>
<![CDATA[ 
	需要安装扩展，2012/07/01最近出的，以前的扩展好像多少有一点Bug。
]]>
</description>
</item>
</channel>
</rss>