【Linux 物联网网关主控系统-Web部分(四)】

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.cregist.cuser.dbsqlite3.h 登录/注册
环境监控 env1.cenv2.cdata_global.hsem.h 共享内存读取实时数据
摄像头 capture1.c 抓拍照片
图片管理 picture1.cpicture2.cdelete.c 浏览、翻页、删除历史照片
Zigbee控制 zigbee_beep.czigbee_led.czigbee_rely.czigbee_cmd.h 蜂鸣器、LED、风扇控制
构建 Makefile 编译所有 .cgi
全局定义 data_global.h 数据结构、消息队列、共享内存
  1. capture1.c

作用:摄像头抓拍CGI程序。

功能:接收网页表单参数 mode(抓拍张数),通过消息队列(msgtype=3)向后台发送抓拍命令,成功/失败后返回HTML提示页(3秒自动跳转回 video.html)。

定位:摄像头控制入口。

关联:依赖 cgic.h + 消息队列(与主程序 pthread_camera 交互)。

  1. 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 可执行文件。

  1. cgic.h

作用:CGIC库头文件。

功能:声明CGI环境变量、表单处理API(如 cgiFormString、cgiFormInteger)、文件上传API、Cookie API、头输出函数等。

定位:所有CGI程序的接口声明。

  1. data_global.h

作用:项目全局数据结构与宏定义头文件。

功能:

定义设备路径(串口、LED、蜂鸣器、摄像头等)。

定义消息类型(MSGTYPE_ENV、MSG_LED、MSG_BEEP、MSG_M0 等)。

定义共享内存结构体(struct env_info_array、struct shm_addr)。

定义消息队列结构体 struct msg。

定位:整个项目(CGI + 主控程序)的公共数据约定。

  1. delete.c

作用:删除所有历史照片CGI。

功能:执行 system("rm /www/pice/*"),成功后跳转回 picture1.cgi。

定位:图片管理辅助功能。

  1. env1.c

作用:1号存储节点环境数据实时展示CGI(STO_NO=1)。

功能:从共享内存读取温度、光照、气体、红外等数据,生成刷新页面(每1秒刷新一次)。

定位:Web端环境监控入口之一。

  1. env2.c

作用:2号存储节点环境数据实时展示CGI(STO_NO=2)。

功能:与 env1.c 类似,但显示湿度、电池、加速度等更多字段。

定位:Web端环境监控入口之二。

  1. login.c

作用:用户登录CGI。

功能:从 user.db 查询用户名/密码,成功跳转 main.html,失败提示并返回登录页。

定位:Web系统入口验证。

  1. Makefile

作用:项目构建脚本。

功能:编译所有 .c 文件生成 .cgi,并移动到 ./out/ 目录。

定位:构建工具。

  1. picture1.c

作用:历史照片浏览CGI(带翻页功能)。

功能:

扫描 /pice 目录获取照片列表。

支持 prev / next 翻页(通过隐藏表单字段 number、index、action 传递状态)。

显示当前照片 + 文件名。

定位:图片查看主界面。

  1. picture2.c

作用:历史照片列表展示CGI(简单版)。

功能:遍历 /pice 目录,逐张显示缩略图 + 文件名(无翻页)。

定位:图片查看备用/旧版界面。

  1. regist.c

作用:用户注册CGI。

功能:向 user.db 插入新用户记录,成功/失败均跳转回登录页。

定位:用户管理。

  1. sem.h

作用:信号量操作封装头文件。

功能:提供 init_sem、sem_p、sem_v 函数,用于共享内存互斥访问。

定位:env1.c、env2.c 等需要读共享内存的CGI的同步工具。

  1. sqlite3.h

作用:SQLite3库头文件(完整API声明)。

定位:login.c、regist.c 使用SQLite时必须包含。

  1. user.db

作用:用户数据库文件(SQLite3格式)。

内容:包含 user 表(name, password),已有 root/root 用户。

定位:登录/注册的数据源。

  1. zigbee_beep.c

作用:Zigbee蜂鸣器控制CGI。

功能:接收 beep 和 store 参数,编码命令后通过消息队列(msgtype=4)发送给后台。

定位:Zigbee设备控制之一。

  1. zigbee_cmd.h

作用:Zigbee命令编码头文件。

功能:定义 born_cmd() 函数,将端点号、设备类型(风扇/蜂鸣器/LED)、操作码打包成1字节命令。

定位:zigbee_beep.c、zigbee_led.c、zigbee_rely.c 的公共命令生成工具。

  1. zigbee_led.c

作用:Zigbee LED控制CGI。

功能:与 zigbee_beep.c 类似,控制LED灯。

定位:Zigbee设备控制之一。

  1. zigbee_rely.c

作用:Zigbee风扇/继电器控制CGI。

功能:支持0~3档风扇控制,通过消息队列发送命令。

定位:Zigbee设备控制之一。

相关推荐
꧁꫞꯭零꯭点꯭꫞꧂2 小时前
JavaScript模块化规范
开发语言·前端·javascript
EmbeddedCore2 小时前
物联网通讯协议怎么选?MQTT、TCP、UDP、HTTP、HTTPS全面解析
物联网·tcp/ip·http
宵时待雨2 小时前
linux笔记归纳1:linux初识
linux·运维·笔记
Deitymoon2 小时前
linux——线程设置分离属性
linux
摸鱼的春哥2 小时前
Agent教程22:AI大模型兼容,踩坑到崩溃
前端·javascript·后端
|_⊙2 小时前
Linux进程(上)
linux·运维·服务器
feng_you_ying_li2 小时前
linux之git/gdb的使用与介绍
linux
regret~2 小时前
【记录】前端创建
前端
吕司2 小时前
Linux页表的概念
linux·运维·服务器