最近需要用PHP实现串口通信,由于通信对方发送数据没有结束标志,DIO函数总是阻塞,设置其O_NOBLOCK模式也不管用,想用MSCOMM32吧,还不能发16进制数(127以下可用ASCII),最后自己用DELPHI和SPCOMM做了一个,现在是能发送数据,但是其内部ONRECEIVEDATA事件接收的数据要如何才能送到PHP这个问题,一直解决不了,
PHP做这些明显感到不行了,控件的数据输出也得做成字符串,否则PHP还是接收不了,哪 位大侠做过类似的工作,给点帮助或提示,真是着急啊,PHP+烂通信协议要没招了。
PHP做这些明显感到不行了,控件的数据输出也得做成字符串,否则PHP还是接收不了,哪 位大侠做过类似的工作,给点帮助或提示,真是着急啊,PHP+烂通信协议要没招了。
解决方案 »
- 服务器运行PHP程序很慢
- 分享 一个关于php登陆的问题
- php问两个简单问题(json/php加密)
- 知道根目录,求得子目录ID,并用逗号连接,在线等
- 请问如何在执行一个php程序的同时,在后台执行另一个网站的php程序
- 关于数组合并的问题?请大家帮帮忙
- 网站中的wiki和ipb论坛是否应该共用一个数据库?
- 怎样过滤去html中诸如<table>等的各种控制符?
- 用自己做的控件(播放控件),在ie安全性高的情况下不能用,有什么办法能解决吗?
- 谁给我一个PHP 4.0.6以上,4.1.0一下的版本吧
- 连不上mysql
- 调查一下大家都在用什么编辑器在写php,如果是zend studio说明一下版本
<?php
$Engine = new COM("SAPI.SpVoice");
$File = new COM("SAPI.SpFileStream");
?>
$comm_obj=new COM("rs232comproj.rs232com");
$comm_obj->sportname="COM1";
$comm_obj->baudrate=2400;
$comm_obj->databits=8;
$comm_obj->stopbits="1";
$comm_obj->parity="none";
echo "初始化串口完毕<br>";
$comm_obj->opencom();
echo "打开串口<br>";
sleep(1);//打开串口后需要延时1秒才能发送数据
$sdata="abccddeeff";
echo $comm_obj->send_data($sdata);
sleep(1);
while(1){
if($comm_obj->sendbufempty){echo "发送完毕<br>";break;}else echo "正在发送<br>";sleep(1);
}
echo "<hr>";
echo "接收标志".$comm_obj->rcvdataflag."\.<br>";
sleep(1);
$j=0;
while(1){
if($comm_obj->rcvdataflag!=0){echo $comm_obj->rcv_data();$j=0;}else{sleep(1);$j++;if($j>=50)break;}
}sleep(5);/*
echo "数据接收完毕<br>";
*/
$comm_obj->closecom();
echo "关闭串口<br>";