资源简介
基于web远程控制led灯,里面有html界面设计以及cgi文件,步骤:
1、进入www目录,新建一个一个文件夹hjs,通过串口上传cgi、html文件,
并且给这些文件权限
chmod 777 hjs-led.cgi,
chmod 777 hjs-led.html
2、进入 cd /usr/bin目录下通过串口上传hjs_led.o文件,并且给它一个权限
chmod 777 hjs_led.o
3、进入cd /etc/rc.d/init.d/目录下,通过 串口 上传文件hjs_start,并且给它 一个权限
chmod 777 hjs_start
启动文件:./hjs_start
4、打开网页,输入开发板的ip地址192.168.1.230/hjs/hjs-led.html进入网页对LED灯显示的远程控制
代码片段和文件信息
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
static int led_fd;
static int leds[4] = {0};
static void lightleds(void)
{
int i;
for(i=0;i<4;i++)
{
ioctl(led_fd leds[i] i);
}
}
int main(void)
{
fprintf(stderr “started!!“);
int led_control_pipe;
int null_writer_fd;
led_fd = open(“/dev/leds“ 0);
if (led_fd < 0) {
perror(“open device leds“);
exit(1);
}
unlink(“/tmp/led-control“);
mkfifo(“/tmp/led-control“ 0666);
led_control_pipe = open(“/tmp/led-control“ O_RDONLY | O_NONBLOCK);
if (led_control_pipe < 0) {
perror(“open control pipe for read“);
exit(1);
}
null_writer_fd = open(“/tmp/led-control“ O_WRONLY | O_NONBLOCK);
if (null_writer_fd < 0) {
perror(“open control pipe for write“);
exit(1);
}
for (;;) {
fd_set rds;
int ret;
struct timeval step;
step.tv_sec = 0;
step.tv_usec =0.125*1000000L;
FD_ZERO(&rds);
FD_SET(led_control_pipe &rds);
ret = select(led_control_pipe + 1 &rds NULL NULL &step);
if (ret < 0) {
perror(“select“);
exit(1);
}
if (ret == 0) {
lightleds();
} else if (FD_ISSET(led_control_pipe &rds)) {
fprintf(stderr “123123“);
static char buffer[200];
for (;;) {
char c;
int len = strlen(buffer);
if (len >= sizeof buffer - 1) {
memset(buffer 0 sizeof buffer);
break;
}
if (read(led_control_pipe &c 1) != 1) {
break;
}
if (c == ‘\r‘) {
continue;
}
if (c == ‘\n‘) {
int tmp_leds[4];
if (sscanf(buffer“%d%d%d%d“ &tmp_leds[0] &tmp_leds[1]&tmp_leds[2]&tmp_leds[3]) == 4) {
leds[0] = tmp_leds[0];
leds[1] = tmp_leds[1];
leds[2] = tmp_leds[2];
leds[3] = tmp_leds[3];
}
fprintf(stderr “LED CONTROL: %d %d %d %d“ leds[0]leds[1]leds[2]leds[3]);
int j;
for(j=0;j<4;j++) {
if(leds[j])
fprintf(stderr“led%d is on\n“j+1);
else
fprintf(stderr “led%d is off\n“j+1);
}
memset(buffer 0 sizeof buffer);
break;
}
buffer[len] = c;
}
}
}
close(led_fd);
return 0;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1152 2015-06-28 13:32 leds\hjs-led.html
文件 2214 2015-06-28 10:13 leds\hjs_led.c
文件 8461 2015-06-28 09:54 leds\hjs_led.o
文件 204 2015-06-26 17:31 leds\hjs_start
文件 529 2015-06-28 11:11 leds\led.cgi
文件 287 2015-06-28 11:40 leds\result.html
目录 0 2015-06-29 12:29 leds
----------- --------- ---------- ----- ----
12847 7
- 上一篇:用Servlet获得界面中用户填写的信息
- 下一篇:HTML留言板代码
评论
共有 条评论