本科毕业设计论文智能家居系统方案设计.docx
- 文档编号:1306604
- 上传时间:2022-10-20
- 格式:DOCX
- 页数:58
- 大小:390.25KB
本科毕业设计论文智能家居系统方案设计.docx
《本科毕业设计论文智能家居系统方案设计.docx》由会员分享,可在线阅读,更多相关《本科毕业设计论文智能家居系统方案设计.docx(58页珍藏版)》请在冰豆网上搜索。
本科毕业设计论文智能家居系统方案设计
智能家居系统
方案设计文档
0.文档介绍
0.1文档目的
本文档旨在详细说明智能家居系统中门禁系统和linux下的模块程序开发过程,通过此文档的描述,希望可以达到具有同等技术的开发人员按此介绍可以完全重现此技术。
0.2文档范围
智能控制系统,嵌入式linux系统等。
0.3读者对象
嵌入式系统开发人员
0.4参考文献
无
0.5术语与缩写解释
缩写、术语
解释
CPLD
CPLD是一种用户根据各自需要而自行构造逻辑功能的数字集成电路。
其基本设计方法是借助集成开发软件平台,用原理图、硬件描述语言等方法,生成相应的目标文件,通过下载电缆(“在系统”编程)将代码传送到目标芯片中,实现设计的数字系统。
Wiegand
Wiegand协议是国际上统一的标准,有很多格式,标准的26-bit应该是最常用的格式
zigbee
紫蜂技术
1.模块命名规则
本文档模块名称与具体实现的功能函数采取一致的表示方法。
2.模块汇总
设备管理,策略管理,人员管理,定时管理,设备底层操作,串口设备层操作,串口底层操作库,配置文件解析,以及UI通讯等模块。
同时包括门禁控制系统模块,家居控制模块和环境探测模块以及人机交互界面设计模块。
2.1模块汇总表
设备管理(dev.c)
模块名称
功能简述
init_dev
初始化设备根节点
add_dev
添加入网设备
del_dev
删除链表中设备
init_dev_policy_table
按照设备类新初始化策略表
update_dev_policy_table
按照各个设备类型,更新链表中的各个设备策略表
get_dev_policy_table_size
按照设备节点的类型返回对应设备类型的策略表大小
策略管理(policy.c)
模块名称
功能简述
tempmon_policy_table_init
初始化温度计类型设备的策略表。
tempmon_policy_table_set_warn
根据参数传过来的状态设置设备报警状态。
tempmon_policy_table_update
调用底层设备控制取得当前设备状态更新对应设备的策略表。
设备底层操作接口(devctl.c)
tempmon_get_dev_stat
取得温度计设备状态
tempmon_get_cur_temp
取得温度计设备温度
tempmon_set_hi_level
设置温度计最高报警温度
tempmon_set_low_levl
设置温度计最低报警温度
用户认证(auth.c)
auth_user
根据传来的用户名和密码,返回验证结果
change_pass
根据传来的用户名和密码,更改密码文件里对应项目。
)
del_pass
根据传来的用户名,删除密码文件中的对应用户行
add_user
根据传来的参数,在密码文件中加入对应用户行
配置文件处理(parm.c)
load_parm
解析器的前端,根据解析器的结果,抛出对应得错误。
do_paser
根据传进来的文件描述符,将文件中相应的参数解析到参数结构体。
save_parm
将参数结构体按照对应格式写入配置文件。
getnline
从文件中取得最大长度为n一行,并将回车翻译为字符串结尾符
trim
刨去传入字符串开头和结尾的空格和tab
配置文件参数处理(parm_handler.c)
temp_hi_level
设置参数结构体的temp_hi_level参数
temp_low_level
设置参数结构体的temp_low_level参数
带头节点的双向链表(list.c)移植自linux内核
list_add_node
插入节点
list_del_node
删除节点
is_empty_list
判断链表是否为空
is_last_node
判断是否为最后一个节点
offsetof宏
取得结构体元素相对于结构体开始的偏移量
container_of宏
通过结构体元素的指针取得结构体的指针
循环缓冲区(loop_buf.c)移植自linux内核
min宏
返回两个数中的最小值
init_loop_buf
初始化循环缓冲区
release_loop_buf
释放循环缓冲区里的线程锁
get_loop_buf
从循环缓冲区中获取数据
put_loop_buf
向循环缓冲区中放置数据
lock_buf
循环缓冲区线程锁加锁
unlock_buf
循环缓冲区中线程锁解锁
loop_buf_reset
循环缓冲区指针复位
loop_buf_len
返回循环缓冲区剩余长度
串口设备层操作(uart.c)
init_uart
调用底层串口库初始化串口
com_monitor
串口监视线程,负责监视并接受串口上数据。
pre_frame_proces
对串口接受数据预处理,调用相应的操作函数
read_uart_one_frame
从串口读取完整一桢
read_uart_buf
从缓冲区读取数据,没有数据则休眠等待下次信号唤醒。
串口操作库(uart.c)
open_uart
打开相应串口设备文件
read_uart
读取串口数据。
write_uart
将数据写入串口
set_uart_speed
设置串口工作速度
set_uart_parity
设置串口的工作特性,例如停止位奇偶流控等。
read_uart_timeout
带有超时的串口读取操作处理。
UI通信(commui.c)
init_commui
初始化ui通信各个参数。
commui_monitor
套接字监视线程,监视套接字是否有命令数据到来。
get_cmd_line
从描述符中取得一行命令行
warn_ui
向ui发起报警
命令处理程序(cmd.c)
run_cmd
命令解析器,调用对应命令的处理程序。
error
根据错误码,将返回对应得错误信息。
命令处理程序handler(cmd_handler.c)
xxx_comand_handler
对应各个命令的处理程序。
门禁控制模块
ReadWiegand
读取用户卡信息
SendWiegand
发送用户卡信息
SendCmd
发送控制指令
家居控制系统和环境探测模块
GetTem
采集环境信息
SendTem
封包发送采集数据
RecTem
解析采集数据信息
SendLedData
发送led显示数据
GetTemFromCD
Led模块收取并解析温度数据
DisplayTem
发送并显示信息
OpenLamp
打开继电器
CloseLamp
关闭继电器
2.2模块关系图
3.设备管理系统的模块设计
模块名称
init_dev
功能描述
初始化设备根节点
接口与属性
voidinit_dev(void);
数据结构
与算法
structdev{
pthread_mutex_lockmutex;
unsignedintnr_dev;
structlistlist;
};
补充说明
包含设备编号和链表的线程锁
模块名称
add_dev
功能描述
向设备链表中添加设备节点
接口与属性
intadd_dev(chardev_type,chardev_no,char*ieee_addr);
数据结构
与算法
structdev_node{
chardev_type;
chardev_no;
charieee_addr[8];
charalive;
charfailed;
void*policy_table;
structlistlist;
};
补充说明
根据传来的设备类型设备号及IEEE地址,分配新的设备节点,并填写相应的项目然后调用
模块名称
del_dev
功能描述
从设备链表中删除设备节点
接口与属性
intdel_dev(chardev_type,chardev_no);
数据结构
与算法
structdev_node{
chardev_type;
chardev_no;
charieee_addr[8];
charalive;
charfailed;
void*policy_table;
structlistlist;
};
补充说明
模块名称
init_dev_policy_table
功能描述
初始化设备策略表
接口与属性
voidinit_dev_policy_table(structdev_node*node);
数据结构
与算法
同上
补充说明
模块名称
renew_dev_policy_table
功能描述
将全局参数表的参数对应节点的参数刷新到设备的策略表里
接口与属性
voidrenew_dev_policy_table(structdev_node*node)
数据结构
与算法
无
补充说明
模块名称
renew_all_dev_policy_table
功能描述
将全局参数表的参数刷新到所有设备的策略表里
接口与属性
voidrenew_all_dev_policy_table(structdev_node*node)
数据结构
与算法
无
补充说明
模块名称
update_dev_policy_table
功能描述
通过调用设备控制层相关方法,取得设备对应状态,更新相应策略表
接口与属性
voidupdate_dev_policy_table(structdev_node*node)
数据结构
与算法
structdev_node{
chardev_type;
chardev_no;
charieee_addr[8];
charalive;
charfailed;
void*policy_table;
structlistlist;
};
补充说明
模块名称
update_all_dev_policy_table
功能描述
更新所有设备策略表
接口与属性
voidupdate_all_dev_policy_table(structdev_node*node);
数据结构
与算法
同上
补充说明
模块名称
check_dev_type
功能描述
检查设备类型是否合法
接口与属性
intcheck_dev_type(unsignedchardev_type)
数据结构
与算法
同上
补充说明
模块名称
is_dev_exist
功能描述
检查设备是否存在
接口与属性
intis_dev_exist(unsignedchardev_type,unsignedchardev_no)
数据结构
与算法
同上
补充说明
模块名称
get_dev_node
功能描述
根据设备类型和设备号返回设备节点指针
接口与属性
structdev_node*get_dev_node(unsignedchardev_type,unsignedchardev_no)
数据结构
与
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 本科 毕业设计 论文 智能家居 系统 方案设计
![提示](https://static.bdocx.com/images/bang_tan.gif)