Linux 物联网网关主控系统-Web部分(四)
调用关系
总体框架

main.html
调用的 HTML:
top.html
left.html
right.html
(框架集页面,加载顶部、左侧、右侧三个子页面)
top.html
调用的 HTML:无
(只加载静态资源,不跳转到其他 HTML)
left.html
env1.html,
调用env1.cgi
env2.html
video.html,
调用capture1.cgi
control1.html,
调用zigbee_led.cgi,zigbee_beep.cgi,zigbee_fan.cgi
control2.html
photo.html
picture1.cgi
setting1.html
调用cgi-bin/set_msg.cgi,cgi-bin/set_wifi.cgi
setting2.html
setting_user.html
right.html
调用:无
cgi部分
| 模块 | 包含文件 | 核心功能 |
|---|---|---|
| CGI基础库 | cgic.c + cgic.h |
所有网页交互的基础 |
| 用户管理 | login.c、regist.c、user.db、sqlite3.h |
登录/注册 |
| 环境监控 | env1.c、env2.c、data_global.h、sem.h |
共享内存读取实时数据 |
| 摄像头 | capture1.c |
抓拍照片 |
| 图片管理 | picture1.c、picture2.c、delete.c |
浏览、翻页、删除历史照片 |
| Zigbee控制 | zigbee_beep.c、zigbee_led.c、zigbee_rely.c、zigbee_cmd.h |
蜂鸣器、LED、风扇控制 |
| 构建 | Makefile |
编译所有 .cgi |
| 全局定义 | data_global.h |
数据结构、消息队列、共享内存 |
- capture1.c
作用:摄像头抓拍CGI程序。
功能:接收网页表单参数 mode(抓拍张数),通过消息队列(msgtype=3)向后台发送抓拍命令,成功/失败后返回HTML提示页(3秒自动跳转回 video.html)。
定位:摄像头控制入口。
关联:依赖 cgic.h + 消息队列(与主程序 pthread_camera 交互)。
- cgic.c
作用:CGIC库核心实现文件(Thomas Boutell的CGI库 v2.0)。
功能:处理CGI环境变量、GET/POST表单解析(支持 application/x-www-form-urlencoded 和 multipart/form-data)、文件上传、Cookie、环境保存/恢复等。
定位:所有CGI程序的底层库(其他.c 文件都 #include "cgic.h" 并链接此文件)。
关联:被 Makefile 编译进所有 .cgi 可执行文件。
- cgic.h
作用:CGIC库头文件。
功能:声明CGI环境变量、表单处理API(如 cgiFormString、cgiFormInteger)、文件上传API、Cookie API、头输出函数等。
定位:所有CGI程序的接口声明。
- data_global.h
作用:项目全局数据结构与宏定义头文件。
功能:
定义设备路径(串口、LED、蜂鸣器、摄像头等)。
定义消息类型(MSGTYPE_ENV、MSG_LED、MSG_BEEP、MSG_M0 等)。
定义共享内存结构体(struct env_info_array、struct shm_addr)。
定义消息队列结构体 struct msg。
定位:整个项目(CGI + 主控程序)的公共数据约定。
- delete.c
作用:删除所有历史照片CGI。
功能:执行 system("rm /www/pice/*"),成功后跳转回 picture1.cgi。
定位:图片管理辅助功能。
- env1.c
作用:1号存储节点环境数据实时展示CGI(STO_NO=1)。
功能:从共享内存读取温度、光照、气体、红外等数据,生成刷新页面(每1秒刷新一次)。
定位:Web端环境监控入口之一。
- env2.c
作用:2号存储节点环境数据实时展示CGI(STO_NO=2)。
功能:与 env1.c 类似,但显示湿度、电池、加速度等更多字段。
定位:Web端环境监控入口之二。
- login.c
作用:用户登录CGI。
功能:从 user.db 查询用户名/密码,成功跳转 main.html,失败提示并返回登录页。
定位:Web系统入口验证。
- Makefile
作用:项目构建脚本。
功能:编译所有 .c 文件生成 .cgi,并移动到 ./out/ 目录。
定位:构建工具。
- picture1.c
作用:历史照片浏览CGI(带翻页功能)。
功能:
扫描 /pice 目录获取照片列表。
支持 prev / next 翻页(通过隐藏表单字段 number、index、action 传递状态)。
显示当前照片 + 文件名。
定位:图片查看主界面。
- picture2.c
作用:历史照片列表展示CGI(简单版)。
功能:遍历 /pice 目录,逐张显示缩略图 + 文件名(无翻页)。
定位:图片查看备用/旧版界面。
- regist.c
作用:用户注册CGI。
功能:向 user.db 插入新用户记录,成功/失败均跳转回登录页。
定位:用户管理。
- sem.h
作用:信号量操作封装头文件。
功能:提供 init_sem、sem_p、sem_v 函数,用于共享内存互斥访问。
定位:env1.c、env2.c 等需要读共享内存的CGI的同步工具。
- sqlite3.h
作用:SQLite3库头文件(完整API声明)。
定位:login.c、regist.c 使用SQLite时必须包含。
- user.db
作用:用户数据库文件(SQLite3格式)。
内容:包含 user 表(name, password),已有 root/root 用户。
定位:登录/注册的数据源。
- zigbee_beep.c
作用:Zigbee蜂鸣器控制CGI。
功能:接收 beep 和 store 参数,编码命令后通过消息队列(msgtype=4)发送给后台。
定位:Zigbee设备控制之一。
- zigbee_cmd.h
作用:Zigbee命令编码头文件。
功能:定义 born_cmd() 函数,将端点号、设备类型(风扇/蜂鸣器/LED)、操作码打包成1字节命令。
定位:zigbee_beep.c、zigbee_led.c、zigbee_rely.c 的公共命令生成工具。
- zigbee_led.c
作用:Zigbee LED控制CGI。
功能:与 zigbee_beep.c 类似,控制LED灯。
定位:Zigbee设备控制之一。
- zigbee_rely.c
作用:Zigbee风扇/继电器控制CGI。
功能:支持0~3档风扇控制,通过消息队列发送命令。
定位:Zigbee设备控制之一。