智能家居系统方案设计文档内容摘要:

《模块设计报告》  机构名称, 2020 Page 37 of 124 unsigned char dev_no。 unsigned char con_cmd。 char con_value。 }。 补充说明 按照协议,组装好设备的控制数据包,从串口发出,并调用取得设备温度,刷新设备状态。 其他设备以 此类类推。 模块名称 auth_user 功能描述 根据传来的用 户名和密码返回验证结果 接口与属性 char auth_user(char *name,char *pass)。 数据结构与算法 无 项目名称,《模块设计报告》  机构名称, 2020 Page 38 of 124 补充说明 模块名称 add_user 功能描述 根据传来的用户名和密码将用户添加到密码文件中 接口与属性 char add_user(char *name,char *pass)。 数据结构与算法 无 补充说明 模块名称 del_user 功能描述 根据传来的用户名将用户从密码文件中删除 项目名称,《模块设计报告》  机构名称, 2020 Page 39 of 124 接口与属性 char del_user(char *name)。 数据结构与算法 无 补充说明 注意此处仅作用户存在性检查不做用户检查,用户检查应该由 UI 发命令使用 auth_user 检查通过后再来调用此函数。 功能性模块尽可能在自己被调用时提供方法而不是策略。 模块名称 change_pass 功能描述 根据传来的用户名和密码将用户从密码文件中修改对应的记录 接口与属性 char change_pass(char *name,char *pass)。 数据结 无 项目名称,《模块设计报告》  机构名称, 2020 Page 40 of 124 构与算法 补充说明 注意事项同上。 用户配置文件格式为用户名和密码定长不足定长使用空格补 足,分隔符为:防止频繁修改文件大小,加剧 Nand Fland 的读写。 模块名称 Load_parm 功能描述 解析器的前端,根据解析器的结果,抛出对应得错误 接口与属性 int load_parm(char *fname) 数据结构与算法 无 补充说明 无 项目名称,《模块设计报告》  机构名称, 2020 Page 41 of 124 模块名称 do_parser 功能描述 解析器主体,根据传进来的文件指针,将文件中相应的参数解析到全局参数表。 接口与属性 int do_parser(FILE *fp)。 数据结构与struct temp_parm { int temp_hi_level。 int temp_low_level。 }。 项目名称,《模块设计报告》  机构名称, 2020 Page 42 of 124 算法 union parm { struct temp_parm temp_parm。 }。 struct dev_parm { char dev_type。 char dev_no。 union parm parm。 }。 struct parm_table { unsigned int nr_parm。 struct dev_parm dev_parm[NR_MAX_PARM]。 }。 struct parm_action { char name[MAX_PARM_NAME_LEN]。 void (*func)(struct dev_parm*, char *)。 }。 项目名称,《模块设计报告》  机构名称, 2020 Page 43 of 124 示例: struct parm_action parm_action[PARM_ACTION_LEN]={ {dev_type,load_dev_type}, {dev_no,load_dev_no}, {temp_hi_level,load_temp_hi_level}, {temp_low_level,load_temp_low_level}, }。 补充说明 模块名称 save_parm 功能描述 根据传进来的文件名 ,将全局参数表存储到配置文件中。 接口与 int save_parm(char *fname)。 项目名称,《模块设计报告》  机构名称, 2020 Page 44 of 124 属性 数据结构与算法 同上 补充说明 模块名称 get_dev_parm 功能描述 根据传来的设备类型和设备号,返回对应设备的参数指针 接口与属性 struct dev_parm *get_dev_parm(char dev_type, char dev_no)。 数据结构与算法 同上 补充说明 项目名称,《模块设计报告》  机构名称, 2020 Page 45 of 124 模块名称 getnline 功能描述 根据传进来的文件指针,从中取得一行,此行最大长度为 count。 接口与属性 size_t getnline(char *buf, size_t count, FILE *fp)。 数据结构与算法 无 补充说明 会将行尾的回车符替换为字符串结束的尾零,并且遇到 EOF 时停止。 返回值为实际取得的字符数(含尾零 /回车)。 模块名称 trim 功能描 将传进来的字符串头尾 的空格以及项目名称,《模块设计报告》  机构名称, 2020 Page 46 of 124 述 制表符砍去,然后将结果复制到dst。 接口与属性 char *trim(char *dst, const char *src)。 数据结构与算法 无 补充说明 各个参数的 handler: 模块名称 load_dev_type 功能描述 将 设 备 类 型 填 入 到 传 入 的dev_parm。 接口与属性 void load_dev_type(struct dev_parm *dev_parm, char *value); 数据结 无 项目名称,《模块设计报告》  机构名称, 2020 Page 47 of 124 构与算法 补充说明 模块名称 load_dev_no 功能描述 将设备号填入到传入的 dev_parm。 接口与属性 void load_dev_type(struct dev_parm *dev_parm, char *value); 数据结构与算法 无 补充说明 模块名 load_temp_hi_level 项目名称,《模块设计报告》  机构名称, 2020 Page 48 of 124 称 功能描述 将温度计最高报警温度填入到传入的 dev_parm。 接口与属性 void load_temp_hi_level(struct dev_parm *dev_parm, char *value) 数据结构与算法 无 补充说明 模块名称 load_temp_low_level 功能描述 将温度计最低报警温度填入到传入的 dev_parm 接口与属性 void load_temp_low_level(struct dev_parm *dev_parm, char 项目名称,《模块设计报告》  机构名称, 2020 Page 49 of 124 *value) 数据结构与算法 无 补充说明 模块名称 temp_parm_save 功能描述 将传入的温度计的 dev_parm 按照格式写入到文件指针里 接口与属性 void temp_parm_save(struct dev_parm *dev_parm, FILE *fp) 数据结构与算法 无 补充说明 项目名称,《模块设计报告》  机构名称, 2020 Page 50 of 124 模块名称 init_list 功能描述 初始化链表头节点 接口与属性 void init_list(struct list *list)。 数据结构与算法 struct list { struct list *prev,*next。 }。 补充说明 模块名称 list_add_node 功能描述 将节点加入链表。 接口与属性 void list_add_node(struct list *new, struct list *node, int 项目名称,《模块设计报告》  机构名称, 2020 Page 51 of 124 location)。 数据结构与算法 同上 补充说明 可以使用 location 标志指定插入node 制定节点的左边还是右边,如果 node 指向头节点,那么左边及为链表尾部, 右边是链表头。 模块名称 list_del_node 功能描述 将节点从量表中删除 接口与属性 void list_del_node(struct list *node)。 数据结构与算法 无 补充说 项目名称,《模块设计报告》  机构名称, 2020 Page 52 of 124 明 模块名称 is_last_node 功能描述 判断节点是否是链表的尾节点 接口与属性 int is_last_node(struct list *list, struct list *node)。 数据结构与算法 无 补充说明 真为尾节点 模块名称 is_empty_list 功能描述 返回链表是否为空链表 接口与 int is_empty_list(struct list 项目名称,《模块设计报告》  机构名称, 2020 Page 53 of 124 属性 *list)。 数据结构与算法 无 补充说明 真为空链表 模块名称 offsetof 宏 功能描述 返回成员在结构体中的偏移 接口与属性 offsetof(TYPE, MEMBER); 数据结构与算法 无 补充说明 TYPE 为对应结构体的类型,MEMBER 为成员在结构体中的名字 项目名称,《模块设计报告》  机构名称, 2020 Page 54 of 124 模块名称 get_node_owner 宏 功能描述 传入指向结构体中成员的指针,返回指向结构体的指针。 接口与属性 get_node_owner(ptr, type, member)。 数据结构与算法 无 补充说明 type,member 定义同 offsetof,ptr 为指向结构体中成员的指针。 模块名称 each_node_in_list 宏 功能描述 使用 pos 指针遍历结构体。 接口与属性 each_node_in_list(pos, head)。 项目名称,《模块设计报告》  机构名称, 2020 Page 55 of 124 数据结构与算法 define each_node_in_list(pos, head) \ for (pos = (head)next。 pos != (head)。 pos = posnext)。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。