智能家居系统方案设计.docx
《智能家居系统方案设计.docx》由会员分享,可在线阅读,更多相关《智能家居系统方案设计.docx(46页珍藏版)》请在三一办公上搜索。
1、项目名称,模块设计报告智能家居系统 方案设计文档 目 录 0. 文档介绍40.1 文档目的40.2 文档范围40.3 读者对象40.4 参考文献40.5 术语与缩写解释41. 模块命名规则52. 模块汇总52.1 模块汇总表52.2 模块关系图53. 子系统A的模块设计63.n 模块A-n64. 子系统B的模块设计64.n 模块B-n65. 其他60. 文档介绍0.1 文档目的本文档旨在详细说明智能家居系统中门禁系统和linux下的模块程序开发过程,通过此文档 的描述,希望可以达到具有同等技术的开发人员按此介绍可以完全重现此技术。0.2 文档范围智能控制系统,嵌入式linux系统等。0.3 读
2、者对象嵌入式系统开发人员0.4 参考文献无0.5 术语与缩写解释缩写、术语解 释CPLDCPLD是一种用户根据各自需要而自行构造逻辑功能的数字集成电路。其基本设计方法是借助集成开发软件平台,用原理图、硬件描述语言等方法,生成相应的目标文件,通过下载电缆(“在系统”编程)将代码传送到目标芯片中,实现设计的数字系统。WiegandWiegand协议是国际上统一的标准,有很多格式,标准的26-bit 应该是最常用的格式zigbee紫蜂技术1. 模块命名规则本文档模块名称与具体实现的功能函数采取一致的表示方法。2. 模块汇总设备管理,策略管理,人员管理,定时管理,设备底层操作,串口设备层操作,串口底层
3、操作库,配置文件解析,以及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_
4、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根据传来的用户名和密码,返回验证结果c
5、hange_pass根据传来的用户名和密码,更改密码文件里对应项目。)del_pass根据传来的用户名,删除密码文件中的对应用户行add_user根据传来的参数,在密码文件中加入对应用户行配置文件处理(parm.c)load_parm解析器的前端,根据解析器的结果,抛出对应得错误。do_paser根据传进来的文件描述符,将文件中相应的参数解析到参数结构体。save_parm将参数结构体按照对应格式写入配置文件。getnline从文件中取得最大长度为n一行,并将回车翻译为字符串结尾符trim刨去传入字符串开头和结尾的空格和tab配置文件参数处理 (parm_handler.c)temp_hi_l
6、evel设置参数结构体的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初始化循环缓冲区releas
7、e_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从缓冲
8、区读取数据,没有数据则休眠等待下次信号唤醒。串口操作库(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
9、)run_cmd命令解析器,调用对应命令的处理程序。error根据错误码,将返回对应得错误信息。命令处理程序handler(cmd_handler.c)xxx_comand_handler对应各个命令的处理程序。门禁控制模块ReadWiegand读取用户卡信息SendWiegand发送用户卡信息SendCmd发送控制指令家居控制系统和环境探测模块GetTem采集环境信息SendTem封包发送采集数据RecTem解析采集数据信息SendLedData发送led显示数据GetTemFromCDLed模块收取并解析温度数据DisplayTem发送并显示信息OpenLamp打开继电器CloseLamp
10、关闭继电器2.2 模块关系图3.设备管理系统的模块设计模块名称init_dev功能描述初始化设备根节点接口与属性void init_dev(void);数据结构与算法struct dev pthread_mutex_lock mutex; unsigned int nr_dev; struct list list;补充说明包含设备编号和链表的线程锁模块名称add_dev功能描述向设备链表中添加设备节点接口与属性int add_dev(char dev_type, char dev_no, char *ieee_addr);数据结构与算法struct dev_node char dev_type
11、; char dev_no; char ieee_addr8; char alive; char failed; void *policy_table; struct list list;补充说明根据传来的设备类型设备号及IEEE地址,分配新的设备节点,并填写相应的项目然后调用模块名称del_dev功能描述从设备链表中删除设备节点接口与属性int del_dev(char dev_type, char dev_no);数据结构与算法struct dev_node char dev_type; char dev_no; char ieee_addr8; char alive; char fail
12、ed; void *policy_table; struct list list;补充说明模块名称init_dev_policy_table功能描述初始化设备策略表接口与属性void init_dev_policy_table(struct dev_node *node);数据结构与算法同上补充说明模块名称renew_dev_policy_table功能描述将全局参数表的参数对应节点的参数刷新到设备的策略表里接口与属性void renew_dev_policy_table(struct dev_node *node)数据结构与算法无补充说明模块名称renew_all_dev_policy_ta
13、ble功能描述将全局参数表的参数刷新到所有设备的策略表里接口与属性void renew_all_dev_policy_table(struct dev_node *node)数据结构与算法无补充说明模块名称update_dev_policy_table功能描述通过调用设备控制层相关方法,取得设备对应状态,更新相应策略表接口与属性void update_dev_policy_table(struct dev_node *node)数据结构与算法struct dev_node char dev_type; char dev_no; char ieee_addr8; char alive; char
14、 failed; void *policy_table; struct list list;补充说明模块名称update_all_dev_policy_table功能描述更新所有设备策略表接口与属性void update_all_dev_policy_table(struct dev_node *node);数据结构与算法同上补充说明模块名称check_dev_type功能描述检查设备类型是否合法接口与属性int check_dev_type(unsigned char dev_type)数据结构与算法同上补充说明模块名称is_dev_exist功能描述检查设备是否存在接口与属性int is_
15、dev_exist(unsigned char dev_type, unsigned char dev_no)数据结构与算法同上补充说明模块名称get_dev_node功能描述根据设备类型和设备号返回设备节点指针接口与属性struct dev_node *get_dev_node(unsigned char dev_type, unsigned char dev_no)数据结构与算法同上补充说明4. 策略管理模块设计模块名称tempmon_policy_table_init功能描述温度计策略表初始化接口与属性void tempmon_policy_table_init(struct dev_n
16、ode *node);数据结构与算法struct _dev_table unsigned char dev_type;void (*policy_table_init)(struct dev_node *);void (*policy_table_load_parm)(struct dev_node *);void (*policy_table_update)(struct dev_node *);void (*policy_table_warn)(struct dev_node *, char);void (*parm_table_save)(struct dev_parm *, FILE
17、*fp);struct tempmon_policy char hi_level; char low_level; char cur_temp; char temp_warn;补充说明为设备节点钟的策略表指针分配内存,并使用参数表中的值初始化对应得设备。模块名称tempmon_policy_table_update功能描述调用设备层温度计操作函数,更新温度计温度策略表接口与属性void tempmon_policy_table_update(struct dev_node *node);数据结构与算法同上补充说明模块名称tempmon_policy_table_set_warn功能描述根据传来
18、的参数,设置对应温度计设备的报警状态接口与属性void tempmon_policy_table_set_warn(struct dev_node *node, char stat);数据结构与算法同上补充说明模块名称tempmon_policy_table_load_parm功能描述将温度计参数表中的值填入策略表里接口与属性void tempmon_policy_table_load_parm(struct dev_node *node)数据结构与算法同上补充说明模块名称tempmon_policy_table_load_default_parm功能描述将温度计默认的参数填入策略表里接口与属
19、性void tempmon_policy_table_load_parm(struct dev_node *node)数据结构与算法同上补充说明5.设备底层操作接口模块设计模块名称tempmon_get_dev_stat功能描述取得温度计设备状态接口与属性char tempmon_get_dev_stat(struct dev_node *node);数据结构与算法无补充说明调用取得温度计温度判断是否有返回值,判断设备是否仍然有响应,如果设备没有响应,则将设备节点中的设备状态标记为设备已死并调用failed_dev_ctl使设备节点操作失败次数加1(考虑到网络延迟等情况,采用设备操作失败计数,
20、当累计到操作失败到指定次数,则会调用del_dev将设备从设备链表中删除。而任何一次成功的设备操作则判定设备再次有响应,失败计数被清零)。模块名称tempmon_get_dev_stat功能描述取得温度计当前温度接口与属性char tempmon_get_cur_temp(struct dev_node *node);数据结构与算法struct gen_frame unsigned char head1; unsigned char head2; / always 0x55 0xAA unsigned char type; / frame type WARN unsigned char len
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 智能家居 系统 方案设计
链接地址:https://www.31ppt.com/p-1669377.html