本系统包括三种模式:
- 标准模式----系统默认状态是加载已有账户列表,并不断监测RFID模块是否有识别到ID卡,如有则显示对应的ID身份图像;
- 注册账户----通过用户选择进入添加账户模式,把识别到的ID添加到链表中,同时保存到备份文件,并实现摄像头实时捕捉对应的人物信息,保存为JPG图像。
- 注销账户----用户将已注册的ID卡注销,同时删除对应的账户信息,包括删除链表节点及文件的对应内容。
在项目中涉及到一个主线程及三个子线程:
- 主线程(main函数)负责监控用户的输入信息,根据用户的需求切换工作模式;
- 子线程一(rfid_work)负责监测射频识别模块的工作,及时把获取到的身份信息发送给系统,以便进行身份信息的进一步处理;
- 子线程二(Sys_Work)负责系统运行模式的切换及具体功能的实现,包括rfid_standard_mode(); rfid_add_id(); rfid_del_id();
- 子线程三(Cam_Work)负责摄像头的功能实现,当系统进入注册ID模式时,不断地对捕捉到的视频流进行处理,并实时显示到LCD上。
应用层
主要是调用V4L2驱动接口实现: - 打开摄像头并进行初始化;
- 启动摄像头捕捉数据;
- 把摄像头得到的数据保存到内存中;
- 把数据流转换为RGB格式数据供LCD实时显示;
- 把RGB格式的数据编码压缩为JPG格式图片。
系统内部管理流程:
- 在注册账户模式下, 通过射频识别模块的读卡功能,每次读卡成功则保存对应的卡ID到账户链表中,同时把该ID号写到读卡机记录文档中,以便保存历史注册信息。
- 在标准模式下,当读到卡数据时候, 会自动和账户链表中记录的各个账户信息进行匹配,如果匹配项显示对应的信息,如无则不显示。
- 在注销账户下将已注册的ID卡注销,同时删除对应的账户信息,包括删除链表节点及记录文档的对应内容。
使用到链表进行账户管理, 使用记录文档保管对应的账户信息。
项目成品概览

图5-1 项目成品图