我有一个通过并行端口编程与硬件交互的程序。我已经编译它并使用它的目标文件与硬件进行交互(一个简单的 LED)。当我直接在 shell 上执行它时,它的目的是使 LED 发光,但是当我在 php 中使用 shell_exec() 执行它时,命令被执行但无法与硬件交互。我完全糊涂了……
问问题
1603 次
3 回答
1
如果您的 PHP 脚本以不同的用户身份运行(例如,如果您以 Apache 模块的身份运行它,它可能是 user apache
),它对硬件的访问权限可能与以您自己身份登录时不同。检查与并行端口交互所需的权限。
于 2010-03-09T09:57:44.100 回答
0
我会在连接到并行端口的主机上设置某种套接字服务器,并提供一个 PHP 可以与之通信的域套接字。它确实是您通过 RESTful 协议处理流式 I/O 的唯一方法。
正如Anthony 所提到的,就用户体验而言,一点点 AJAX 将使这变得相当无缝。
这使您可以使用简单的 PHP 套接字来连接、发送、获取响应、显示它,然后根据请求清洗/冲洗/重复。比处理 shell_exec() 容易得多。
于 2010-03-09T10:05:43.597 回答
0
这可能还差得远,但如果您打算使用 PHP 进行硬件接口,我也会在其中添加一些 AJAX。
基本上让您的 javascript 通过 Ajax 函数将击键传递给服务器。每次 PHP 通过 javascript 收到一个新请求时,它会在一组预先编写的shell_exec()
命令集中查找击键,并为该击键运行一个。
让 javascript 监听按键,并让 shell 命令数组与每个可能的击键(或击键组合,如果你能看中的话)直接相关。
我会从一些非常简单的东西开始,比如点和破折号,但我敢打赌,你可以快速获得非常酷的东西。
于 2010-03-09T09:57:18.173 回答