这里以嵌入式Linux为例说一下,

调用流程是这样子的:

网页(HTML)-->HTTP做事器-->CGI-->Linux用户态程序(或许不须要)-->驱动程序-->硬件。

php控制硬件用网页掌握硬件 Vue.js

1、网页,这个就没什么好说的了,标准的前端,带上js、css效果可能会更好。

2、HTTP做事器,一样平常情形下,嵌入式Linux会利用busybox制作根文件系统,利用httpd命令即可启动一个HTTP做事器,命令大概这样用:httpd -h /var/www/ -p 80

阐明一下,-h后面跟的是开拓板上放置网页的根目录,里面有index.html、cgi程序什么的;-p后面跟的是端口号,HTTP默认利用80端口。

3、CGI是前后端连接的桥梁,可以利用C措辞、Shell脚本、php、python等任何可以制作出来可实行程序的措辞来编写。
CGI是这里的重头戏,但是很大略,一会放在后面说。

4、Linux用户太程序,这东西紧张是CGI与驱动沟通的浸染,如果CGI可以直接跟驱动沟通了,就不须要这段程序了。

5、驱动程序,没有这东西,硬件基本上是不会听话的,这个现在不说,往后有韶光了可能会出一系列的教程。

好了,现在把CGI给揪出来,我们以shell脚本为例,其他措辞请类比一下:

HTTP要求分为GET和POST两种,当利用GET办法的时候,比如浏览器这么调用:

http://192.168.1.11/cgi-bin/test.sh?name=xxx

(注:开拓板ip为192.168.1.11,CGI脚本路径为/var/www/cgi-bin/test.sh,GET参数为name=xxx)

那么,在test.sh脚本中,可以在环境变量QUERY_STRING中读取到参数内容;

举个例子,以下CGI的功能是将参数回显到网页上:

#! /bin/shecho \"大众Content-type: text/html\公众echo \公众\"大众echo \"大众<html>\"大众echo \公众<head><title>test</title><meta charset=\\公众utf-8\\"大众><meta http-equiv=\\"大众refresh\\"大众 content=\\公众3\\"大众></head>\"大众echo \"大众<body bgcolor=\\公众rgb(ff,ff,ff)\\公众>\"大众echo \公众$QUERY_STRING\公众 #这里输出HTTP GET传入的参数到网页echo \"大众</body>\"大众echo \公众</html>\"大众

事理是这样的:

将符合HTML语法的内容直接向“标准输出设备”打印出来就可以到前端了,其他措辞实现CGI也是如此。

假设要掌握硬件,比如重启,那么可以在test.sh脚本中的末了(任意位置都行)调用reboot命令即可。

如果是HTTP POST办法,那么CGI只须要读取“标准输入”即可获取POST过来的数据,shell脚本用read,C程序可以用scanf、getline、read等函数。

至于怎么去掌握硬件,就看前端以及CGI解析出来参数之后要怎么玩了。