快上网专注成都网站设计 成都网站制作 成都网站建设
成都网站建设公司服务热线:028-86922220

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

php接收串口数据格式 php串口通信协议

怎么用php与串口进行通信

1.通过php扩展dio。

让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名与空间、网络空间、营销软件、网站建设、鄂城网站维护、网站推广。

下载dio扩展:

在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如何接收串口的数据

假设这个页面有一个功能需要操作并返回某字符串,还用一下代码可以实现执行并读取返回值。

$fp = fopen("","r");

$ret= fgetss($fp,255);

echo $ret."br";

fclose($fp);

php怎么接收json数据格式

PHP接收JSON格式的数据

在API服务中,目前流行采用json形式来交互。

给前端调用的接口输出Json数据,这个比较简单,只需要组织好数据,用json_encode($array) 转化一下,前端就得到json格式的数据。

接收前端提交的json数据稍微复杂一点,原因是:PHP默认识别的数据类型是application/x-标准的数据类型。因此,对型如text/xml 或者 soap 或者 application/octet-stream 和application/json格式之类的内容无法解析,如果用$_POST数组来接收就会失败!

此时可以使用$GLOBALS['HTTP_RAW_POST_DATA'] 或 file_get_contents('php://input') 来获取提交的数据

查看手册,可以发现$GLOBALS['HTTP_RAW_POST_DATA'] 和 $_POST的区别:

$_POST:通过 HTTP POST 方法传递的变量组成的数组,是自动全局变量。

$GLOBALS['HTTP_RAW_POST_DATA'] :总是产生 $HTTP_RAW_POST_DATA 变量包含有原始的 POST 数据。此变量仅在碰到未识别 MIME 类型的数据时产生。$HTTP_RAW_POST_DATA 对于 enctype="multipart/form-data" 表单数据不可用。也就是说基本上$GLOBALS['HTTP_RAW_POST_DATA'] 和 $_POST是一样的。但是如果post过来的数据不是PHP能够识别的,你可以用 $GLOBALS['HTTP_RAW_POST_DATA']来接收,比如 text/xml 或者 soap 等等。


分享标题:php接收串口数据格式 php串口通信协议
网站路径:http://6mz.cn/article/ddiihjh.html

其他资讯