前言
本开发板接口丰富,性能强劲,适合作为网关或者多媒体终端等应用场景,而这些场景往往需要提供一个交互手段进行后台配置等。所以本篇实现http服务,提供网页进行配置功能。
过程
下载源码
wget https://udomain.dl.sourceforge.net/project/tinyhttpd/tinyhttpd%20source/tinyhttpd%200.1.0/tinyhttpd-0.1.0.tar.gz
解压
tar -zxvf tinyhttpd-0.1.0.tar.gz
cd tinyhttpd-0.1.0/
修改代码
httpd.c中
注释掉
//#include <pthread.h>
int namelen = sizeof(name);改为
socklen_t namelen = sizeof(name);
int client_name_len = sizeof(client_name);
改为
socklen_t client_name_len = sizeof(client_name);
注释掉
//pthread_t newthread;
//if (pthread_create(&newthread , NULL, accept_request, client_sock) != 0)
// perror("pthread_create");
取消注释
accept_request(client_sock);
Makefile中 gcc -W -Wall -lsocket -lpthread -o httpd httpd.c改为
aarch64-linux-gnu-gcc -W -Wall -lpthread -o httpd httpd.c
编译
make
生成可执行程序httpd
复制可执行文件到win下
导入到开发板
cp httpd /mnt/d
添加可执行权限
chmod +x httpd
测试
创建文件夹
mkdir htdocs
cd htdocs/
vi index.html
内容如下
<HTML>
<TITLE>Index</TITLE>
<BODY>
<P>【MYD-JX8MMA7】网关配置平台V1.0
<H1>LED控制
<A HREF="ledon">打开LED</A>
<A HREF="off">关闭LED</A>
</BODY>
</HTML>
vi ledon
内容如下
#!/bin/bash
echo none > /sys/class/leds/user1/trigger
echo 1 > /sys/class/leds/user1/brightness
vi ledoff
内容如下
echo none > /sys/class/leds/user1/trigger
echo 0 > /sys/class/leds/user1/brightness
添加可执行权限
chmod +x ledon ledoff
运行程序
设置开发板IP
ifconfig eth0 192.168.2.200 netmask 255.255.255.0 up
电脑IP设置为192.168.2.100
cd ..
./httpd
root@g2uliot:~# ./httpd
可以看到端口号是33473
PC端浏览器中输入网址
输入http://192.168.2.200:33473/
可以看到如下内容,
分别点击打开LED和关闭LED就可以看到蓝色LED亮灭。
总结
以上演示了网关通过网页进行参数配置的简单实现,可以集成到项目当中去,实现网关配置只需要修改网页文件和添加一些脚本即可。