【基于RFID的公共餐厅就餐系统设计14000字(论文)】_第1页
【基于RFID的公共餐厅就餐系统设计14000字(论文)】_第2页
【基于RFID的公共餐厅就餐系统设计14000字(论文)】_第3页
【基于RFID的公共餐厅就餐系统设计14000字(论文)】_第4页
【基于RFID的公共餐厅就餐系统设计14000字(论文)】_第5页
已阅读5页,还剩33页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于RFID的公共餐厅就餐系统设计TOC\o"1-2"\h\u143171.绪论 2310151.1研究背景、目的及意义 2228731.2内外研究现状 3217772.相关技术简介 5136182.1RFID技术 5251822.2RFID系统工作流程 6235182.3软件架构分析 6284833.系统概述 7278003.1安卓平台特性 8267493.2餐饮管理系统概述 1025124.RFID公共餐厅就餐系统下位机设计 10216974.1系统设计原则 11239094.2系统目标 11257274.3公共餐厅就餐系统下位机设计 1250724.4数据库概念结构设计 162424.5数据库物理结构设计 19116385.RFID公共餐厅就餐系统上位机设计 21237105.1总体功能设计 21163145.2PC端管理系统设计 22226835.3注册界面 23193425.4菜单主界面 24280015.5菜品详情界面 24157595.6购物车列表 25314885.7结账界面 2530545.8信息管理模块设计 27173665.9中间件设计 28186116.系统测试 30118526.1系统测试方法 30294786.2系统测试用例 3133566.3系统测试评价 36269697.总结 3627442参考文献: 361.绪论1.1研究背景、目的及意义现今世界的技术核心,主要以计算机技术、软件技术为重点,在大多数行业中都得到了广泛的应用,在娱乐、社会文化、艺术、家电等领域中也有存在的痕迹。各种新奇的科学技术得到应用与普及,使得各种消费电子、通信一体化得到了很好的发展,发展速度显著提升。嵌入式系统是以应用为中心,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等综合性严格要求的专用计算机系统。嵌入式操作系统将进入一个快速发展时期,嵌入式系统的应用将越来越多样化,当前是餐饮业由传统操作方式向信息化管理模式转换的时期,对信息化产品的需求量很大。根据其对产品要求小型化、低功耗、专用性等特点,可以断言嵌入式技术将在餐馆信息化的过程中发挥重要作用[[]王田苗.《嵌入式系统设计与实例开发——基于ARM微处理器与UC/OS-II实时操作系统》.清华大学出版社.2002[]王田苗.《嵌入式系统设计与实例开发——基于ARM微处理器与UC/OS-II实时操作系统》.清华大学出版社.2002通过高清液晶触摸屏进行点餐,能极大的方便用户进行浏览、点餐操作。相对于传统纸质菜单来说,都能起到点餐的作用。但是电子菜单更便于后期维护,更换菜单。传统纸质菜单都是成批量打印,一旦有部分菜谱中的内容需要更换,就需要白白花费大量的人力、财力去重新打印。而电子菜单不同,可能只需要单人就能完成更换菜谱的工作,极大的减少了餐厅运营成本。传统纸质菜单在实际使用过程中,还造成了资源上的浪费,不环保,往往在使用没多久,就能造成一堆垃圾,破坏生态环境。现在的市场上的点菜系统大部分都是作为餐馆信息化管理系统的一部分出现的,主要是都是实现基本的点餐功能,方便管理者和顾客的使用,在此之外还附加了很多其他功能,单人操作起来较为繁琐。在电子点菜系统中,没有这些复杂的操作,使用起来更为方便;传统的纸质菜单容易弄脏、需要服务人员写、单据易丢、不环保、复杂的财务核算工作;而电子菜单方便快捷,点单灵活,不需要过多的服务人员等待客人点单,管理方便,点单取餐全自助,节省人力及时间[2]。1.2内外研究现状随着新的基础设施建设和相关政策的出台,人工智能、物联网等技术得到了迅速的发展。印度圣弗朗西斯技术学院的JediahHarpanahalli、KevinBhingradia等人在使用Python和RaspberryPi等开放源码技术的基础上,设计了一套RFID的自助餐厅管理系统,并在此基础上建立扫描平台,以完成对标签的阅读与付款[3]。中国郭立渌、马腾、刘俊峰等人利用物联网技术,设计了一套智慧餐饮系统,包括自助点餐、服务呼叫等服务和管理信息管理,从而达到节约人力、提高管理效率、降低经营成本等目的。由Yogalakshmi.C.N.Vivek.Maik公司开发了一种以RFID读取器和体重传感器为基础的餐馆管理系统,它是在时间效率因子的基础上建立的,并且可以降低人员数量[4]。中国嘉兴的刘亚华、王勇等人,利用RFID技术实现了一种在高架单轨上工作的餐馆服务机器人。主机控制器将询问ID卡的命令发送给RFID读取器,以确认对应的桌面卡号,当卡号比较成功时,机器人就不动了;机器人模型见图1-1[5]。图1-1RFID就餐系统机器人模型杭州电子技术学院的王宁基于NFC技术,开发了智能点餐系统,其重点是NFC设备和tag之间的通信以及智能点餐系统的总体实现。加拿大卡尔顿大学的哈萨因·赛德、阿里.舒曼等人利用手机和网络应用、物联网、近场通讯(NFC)等技术,构建了一套方便快捷的餐饮管理系统,其系统结构如图1-2所示[6]。图1-2NFC智能餐厅管理系统架构钟鼎文基于人脸识别技术,开发了一种基于用户、网络、服务、数据四层的智慧餐饮管理系统。四个层次分别实现用户交互、请求转发和服务调用;通过数据的存储,系统能够完成无人支付,在线订餐,营养分析,以及后台的管理[7]。总结起来,目前的智慧餐饮系统的实现方式主要有四种:(1)以RFID技术为主,并与计算机程序相结合。(2)以RFID技术为辅助手段,与机器人、其它传感器相配合,完成了系统的底层设计,并与PC程序相结合。(3)以NFC技术为主,与PC程序相结合。(4)以面部识别技术为主,并与计算机程序相结合。其中RFID技术具有非接触式识别、价格低廉等特点;采用机器人送餐可以降低员工的人数,提高员工的送餐效率;NFC价格低廉,并且在某些电子产品上安装有这种功能,使用起来非常方便;通过人脸识别,可以使用餐人员无需使用任何设备。但是,如果将上述技术运用于公共餐厅,那么使用机器人进行配送,不仅费用较高,而且用餐时间内人员较多,会给机器人带来不便;NFC技术的应用要求用餐人员的移动电话必须具备NFC功能,这对某些顾客来说是不友好的;虽然使用了人脸识别技术,方便快捷,但是还是存在着排队付款难的问题。2.相关技术简介2.1RFID技术RFID(RadioFrequencyIdentification)是一种利用无线电波进行目标识别、接收相关资料的无线通讯技术。它的优点是:识读准确率高,能识别一个或多个具体目标;三是采用RF读取和写入,具有很好的抗干扰能力,如遮蔽、覆盖等。RFID系统的下位机一般由标签、天线、阅读器等组成,上层计算机由软件管理系统组成,用于处理、存储和显示信息。系统基本组成如图2-1所示。图2-1RFID系统的基本组成其具体功能如下:(1)一个读取装置。读取器是以射频方式读取和写入电子标签的底层硬件系统的核心;可对读取设备进行二次开发。利用它的通讯界面和管理系统进行通讯。(2)电子标签。电子标签可以识别真实对象,它的内部有一个存储区,用于储存数据,通常所用的数据是储存在标签中的编码信息;它把项目作为惟一的标志。(3)天线:每个读卡机和标签都有各自的天线,它们的功能是发射和接收无线电频率。(4)应用程序。本系统主要完成RFID读取设备的数据传输、数据处理、存储、数据处理、数据处理及数据显示等工作。2.2RFID系统工作流程RFID系统的工作过程为:对RFID进行上电初始化,由下位机接受上位机发出的存盘指令,读取器逻辑部对收到的指令进行编码、调制,然后由读取器天线发送,在标签进入到天线的工作区域后,接收RF信号并返回响应信号;在此过程中,通过解调、译码、传输至主机系统进行处理,主机系统会依据逻辑运算来识别标签的标识,并按照设定的方式进行相应的处理与控制,最终通过发送命令来控制读取程序。上位机与下位机的通讯方式可分为有线通讯和无线通讯,藉由软体与硬体系统间的通讯来监控电子标签所标示的物件。2.3软件架构分析C/S结构(Client/Server)按照层的数量可以分为:单层结构、两层结构、三层结构。在单一的体系结构中,用户界面、数据、业务和数据逻辑是一体的。但是,由于系统太单一,难以进行有效的管理。在两级结构下,用户接口和数据存储在客户机和数据服务器中,同时在客户机或者服务器上存储了业务逻辑和数据库逻辑。客户机与服务器进行直接的互动,并在维护的时候进行同步的维护。双层架构如图2-2所示。图2-2双层架构图三级体系结构的核心是利用附加的中间件把客户端和服务器分开,中间件负责接收、处理、发送客户端和服务器之间的交互信息,也就是负责业务逻辑和数据信道逻辑。采用中间件可以有效地增强系统的灵活性,使系统的其它部件能够更好地完成自己的功能,并且易于维护。在三个层次结构中,表现层负责向用户提供的与用户进行交互的信息,例如客户机的接口;应用层是对程序逻辑进行处理的,它通常由服务器的设计来完成;数据层的主要功能是存储数据。三层架构如图2-3所示。图2-3三层架构图B/S体系结构(Browser/Server结构),通常用于企业应用程序的开发。在这个体系结构中,浏览器直接充当了客户端,在浏览器上实现了接口的设计,在服务器端进行了主逻辑的设计。B/S体系结构主要有三个层次,即利用Firefox、google、微软Edge等浏览器为客户端,利用包含中间件逻辑的Web服务器与数据库进行信息交换,而服务器则将Oracle、MySQL等数据库进行数据存储。该设计方式可以大大简化客户机,减轻客户机的负荷,同时也可减少系统的维护工作。C/S结构与B/S结构之间最大差异是[8]:(1)C/S体系结构要求专用的硬件环境;B/S结构不一定要这样做,B/S结构的适应性要好于C/S结构。(2)C/S结构通常针对固定的用户群体,所以它具有很好的安全性;基于广域网的B/S结构,面向的范围很广,安全性不高。(3)C/S程序的完整性,当发生故障时,系统管理员必须进行全面的调试,并对其进行及时的维护和更新;B/S系统的管理员只要对配置在机房内的服务器进行维护,就可以利用浏览器进行访问。在公共餐厅的应用环境中,PC端的PC端管理系统并不要求有很高的信息安全控制能力,但是它更多地考虑了维护费用和工作量,因此,它采用了B/S结构来实现对硬件发送的数据的处理和接收,同时还需要设计一个中间件,而手机APP则涉及到了支付和固定的用户群体,因此,它的开发采用了C/S结构。3.系统概述本系统主要分为前台和后台两部分,前台功能主要有登录、开泰、点菜、查询、结算等,后台主要负责利用线程队前台的数据进行传输与处理。3.1安卓平台特性(1)Android平台特性①应用程序框架支持组件的复用和更换‚②Dalvik虚拟机专门为移动设备进行过优化③ƒ集成的浏览器基于开源的WebKit引擎④优化的图形机制自定义的2D图形库,基于OpenGLES1.0规范的3D图形实现(本项为硬件加速器可选)⑤SQLite轻量级的数据库,支持结构化数据的存储⑥媒体支持面向常见的音频、视频以及静态图形档案格式(MPEG4,H.264,MP3,AAC,AMR,JPG,PNG,GIF)⑦GSM技术GSM:globalsystemformobilecommunications(依赖硬件支持)⑧Bluetooth,EDGE,3G,andWiFi(依赖硬件支持)⑨Camera,GPS,compass,andaccelerometer(依赖硬件支持)⑩Richdevelopmentenvironment丰富的开发环境,包含一套硬件仿真器,一些用于程序调试、内存和性能剖析的工具,以及支持Eclipse集成开发环境的插件(ADT)。(2)Android系统是一个非常优秀的、开放式的手机、平板电脑操作系统,Android已经成为应用最为广泛的移动互联网平台,而Android平台应用的主要开发语言依然是Java。(3)Android是基于Linux的移动设备操作系统,中文名为安卓,主要用于智能手机与平板电脑,现已拓展至互联网电视、可穿戴设备、车载终端、智能家居等等。Android与iOS同为智能手机市场的两大操作系统,但安卓系统的全球市场份额大幅领先于苹果。在中国大陆,Android的市场份额更是遥遥领先,据2018年4月的移动系统调研报告,Android在中国的市场份额为86%,其余份额为iOS[[]欧阳燊.《AndroidStudio开发实战:从零基础到App上线》(第2版).清华大学出版社.2018.58[]欧阳燊.《AndroidStudio开发实战:从零基础到App上线》(第2版).清华大学出版社.2018.58早期,在Android下开发App主要使用Eclipse和基于Eclipse的ADT。不过Eclipse毕竟是为Java工程而生的开发平台,并非专门用于Android,所以先天性不足难以避免。自2015年之后,谷歌公司便停止了ADT的版本更新,转而重点打造自家的AndroidStudio。AndroidStudio是谷歌公司推出的Android应用开发环境,与基于Eclipse的ADT不同,AndroidStudio是个全新的开发环境,拥有更强大的功能和更高效的性能。使用AndroidStudio比起使用Eclipse开发有如下好处:①AndroidStudio使用V7库等只需增加一行配置,而Eclipse要想使用这些库得引用整个工程。②高版本的SDK与NDK只支持AndroidStudio,不支持Eclipse。③更多新功能只能在AndroidStudio中运用,如自动保存、多渠道打包、整个版本管理、支持预览drawable图形文件等。[[][]李刚,《疯狂的Android讲义》(第4版).清华大学出版社.20系统开发语言:C#C#是微软公司在2000年7月份发布的一种全新且简单、安全、面向对象的程序语言,是专门为.NET的应用而开发的语言。它吸收了C++、VisualBasic、Delphi、JAVA等语言的优点,体现了当今最新的程序设计技术的功能和精华。C#继承了C语言的语法风格,同时又继承了C++的面向对象特性。不同的是,C#的对象模型已经面向Internet进行了重新设计,使用的是.NET框架的类库;C#不再提供对指针类型的支持,使得程序不能随便访问内存地址空间,从而更加健壮;C#不再支持多重继承,避免了以往类层次结构中由于多重继承带来的可怕后果。.NET框架为C#提供了一个强大的、易用的、逻辑结构一致的程序设计环境。同时,公共语言运行时(CommonLanguageRuntime)为C#程序语言提供了一个托管的运行时环境,使程序比以往更加稳定、安全。3.1.2系统数据库:SQLserver2005SQLServer2005是一个免费、易用且便于管理的数据库。SQLServer2005与MicrosoftVisualStudio2010集成在一起,可以轻松开发功能丰富、存储安全、可快速部署的数据驱动应用程序。SQLServer是免费的,可以再分发(受制于协议),还可以起到客户端数据库以及基本服务器数据库的作用。SQLServer2005是低端ISV、低端服务器用户、创建Web应用程序的非专业开发人员以及创建客户端应用程序的编程爱好者的理想选择。SQLServer2005通过在可伸缩性、数据集成、开发工具和强大的分析等方面的革新更好的确立了微软在BI领域的领导地位。SQLServer2005能够把关键的信息及时的传递到组织内员工的手中,从而实现了可伸缩的商业智能。从CEO到信息工作者,员工可以快速的、容易的处理数据,以更快更好的做出决策。SQLServer2005全面的集成、分析和报表功能使企业能够提高他们已有应用的价值,即便这些应用是在不同的平台上。3.2餐饮管理系统概述餐饮管理系统包括预定、点菜、加菜、退菜、换台、并台、并单、清台、结账等操作,并可对每日销售的现金进行严格明细管理,保证无差错;可对会员进行管理,制作会员卡等,可使用磁卡、卡、条码卡管理会员。整个餐饮管理系统主要包括三个部分:前台管理、客户关系管理和后台管理分别给不同的人员使用。[[][]蔡泳浩.餐饮管理系统设计与实现[D].2012.6[6]马英华.基于微信小程序的点餐APP的设计与实现[J].视界观,2020.[7]潘春花,赵小婷.青海民族大学食堂点餐APP设计与实现[J].计算机时代,2021.[8]陈帅.微信点餐系统小程序的设计与实现[J].电子技术与软件工程,2021(000-024).4.RFID公共餐厅就餐系统下位机设计本文按照第3章的技术原理,结合实践,对RFID公众用餐系统进行了详细的设计,并给出了相应的功能框图。从功能上看,主要分为三个模块,前两个模块构成了下位机,第一个模块为读写器,它包含读出器、天线和标签,主要用于收集餐具标签的数据;第二部分为数据的传送,采用了TCP/IP协议,通过GPRS模块进行数据的传送。第三部分为上位机,也就是信息处理和显示终端,它包括PC端管理系统、移动用户系统和MySQL数据库。PC端管理系统包括:权限管理、信息管理、数据处理中间件,完成对下位机数据的接收、处理和调用后台数据的调用和显示;手机用户系统是为用户提供登陆后查询用餐付款信息的服务;数据库将全部数据保存在数据库中。图4-1系统结构图4.1系统设计原则简洁实用:在满足功能要求的情况下,尽可能地减少多余的功能,便于维护和管理。可靠性:从可靠性和安全性两方面进行分析。为了保证用户的个人信息和数据的安全,避免数据泄漏,保证用户的数据安全。为了达到可靠性,实现了系统的稳定运行,降低了故障发生率。可扩充:在设计软件的功能时,要充分考虑到后期的功能扩充,在编写和实施代码时,要为以后的功能扩充预留空间。4.2系统目标熟悉此系统的发展过程和应用到的相关技术。掌握数据库的应用方法,并能够使用SQL语句进行增删查改。4.3公共餐厅就餐系统下位机设计本论文所研制的无接触式用餐系统,是在高校、企业、饭店等公共场所使用的。整个设计理念是对传统的餐盘、餐具的用餐方式进行创新,利用RFID无接触的自动识别功能,实现餐盘和餐具的自动识别,并将数据上传至服务器。RFID用餐系统下位机的设计包括餐盘,带有标签的餐具,阅读器;五个部件,包括天线、无线传输模块,下位机系统概念框图如图4-2所示。图4-2硬件系统概念框图在该系统中,一个读卡机放置在餐盘的一侧,一个独立的读出天线连接在该读卡机的内部,并考虑到该读卡机的读出特征,将该读卡机的天线放置在该餐盘的底部;并且天线的大小比放置天线的面积要小一些,把读取器的天线识别区限制在食物盘的正上方。一个带有标签的餐具,放在盘子上,标签放在盘子的下面,以便它和阅读天线的距离是最近的;而且与食客的接触更少,可有效地保护标签,延长其使用寿命。从图4-2中可以看出,带有RFID硬件的餐盘必须能同时携带阅读器、天线、餐具等,所以必须进行特别的结构设计;阅读器,天线连接孔,中部直径为10毫米;右侧上方的碗碟摆放区域,尺寸为210毫米*210毫米*20毫米;右边的天线位置是210毫米*210毫米*10毫米。图4-3硬件搭载平台结构4.3.1硬件需求分析由于该系统工作时,该系统位于餐盘上,且该系统的活动区域始终在该天线的识别范围之内,因此,该系统可以被看作是一个静止的环境。在不考虑系统动态的前提下,硬件的要求可以分为物理要求和性能要求,而物理要求则是读卡器、天线和标签的尺寸要符合硬件的要求。性能要求包含下列内容:(1)阅读能力:系统学习的一个目标是改善用餐效率,所以阅读速度要快,多标记阅读能力强。(2)抗干扰性,抗干扰性是电子设备性能的一个重要指标,在读取时应注意降低外界干扰。(3)读出距离,读出天线与标签之间的距离为10毫米,因此,在近场阅读标签时,必须使用读出天线。(4)通讯方法,在端着一个盘子的情况下,很明显地不适宜有线通讯,而主、下位计算机之间的信息传送必须使用适当的无线通讯模式。RFID的频段选择是RFID系统中的一个重要问题,读取器的工作频率将直接影响到RFID的读取距离、读取速度和标签供电方式;具有良好的环境敏感性和多重识别能力。表4-1显示了RFID技术各个波段的特定特性。表4-1RFID技术各频段特点频段读取距离标签供电模式多标签识读能力识读速度环境敏感度低频<10cm无源最弱慢弱高频<1m无源较弱超高频3~8m无源/有源最强微波>10m无源/半有源/有源强v从表4-1可以看出,RFID系统中,射频识别的频次和读出的距离随着射频识别的频带的变化而逐渐增大,这主要是因为射频识别系统的天线在不同的频带上存在着不同的耦合模式,其天线的耦合模式为感应耦合(闭磁路),而高频RFID系统的天线则是电容耦合(电磁波的辐射)。因此,在一定的发射功率和连续的发射条件下,随着频段的增加,载波承载的信息也会随之增加,数据的传送速度也会随之提高。与低频射频识别系统相比,高频射频识别系统能够同时读取更多的标签。然而,随着射频识别技术的发展,射频识别技术的应用越来越受到外界的干扰,例如:金属、液体等。本论文所设计的RFID公共食堂用餐系统,对RFID下位机的阅读需求为:对多个标签的快速准确阅读。从表4-1可以看出,随着频率的提高,阅读速度和UHF波段的多标记的读出性能都是最好的,因此,本文首先将UHF频带作为系统的工作频带;但是超高频波段的识读距离较远,容易受到外界的影响,因此,本文提出了一种利用超高频近场天线进行超高频识别的方法。其次,选用白色树脂作为餐盘材质,使用塑胶餐具,将标签贴在餐具底部,可以很好地解决金属、液体等外界环境的影响。最后,论文将超高频带用作系统的工作频带。ISO/IEC18000-6C具有多种功能,能够同时读取多个标签,并具有多种硬件选择,因此本文选择了ISO/IEC18000-6C标准作为本文所研究的射频识别技术。4.3.2RFID阅读器选择从实际应用的角度,本系统要求选择一款符合ISO18000-6C标准,并能在PC上实现对相应的协议进行读取和写入,并能实现二次开发,并采用UHF读取程序。因此,我们选用Austriamicrosystems公司生产的AS3992RF模块,作为一款全面支持开发要求的RFID读取器,且大小为85mm*50mm*10mm,其实物图如图4-4所示。图4-4阅读器实物图4.3.3RFID标签选择电子标签是RFID中的一个关键部件,它具有标识真实商品的作用。对于EPCG2UHF标准的电子标签,其性能和性能都要达到EPCG2(ISO1800-6C)UHF有关的无线接口的性能。在设计应用系统时,并不要求特定的参数和无线通讯接口协议,但是在后续的编码方案设计中,必须要对其内部存储结构有所了解。存储器逻辑结构如图4-6所示。图4-5存储器内部逻辑结构如图4-5所示,一个电子标签的内部包括四个按顺序的存储单元:存储器0,用于储存所述保留的记忆口令的存储器。一存储器1,一EPC存储器,用以储存EPC号码、PC(协议-控制字)和该存储器块数据的CRC-16检查代码。CRC-16是CRC检查代码,用于存储存储在该内存中的数据。PC:用于电子标签的协议-控制字,存储位为02-03H,2个字节.PC是指该电子标签的控制信息,它包含以下内容:PC有2个字节,16个比特,00-04比特用于指定EPC的数据长度。EPC是这个标记的代码。当您使用标记时,您可以重写EPC号码,以便在您的系统中指定一个项目的ID号码。通常,EPC编号是96比特,12比特。(3)记忆体2、TID记忆体(TID),记忆体是指电子标记的产品标识号码,各厂商的TID编号各不相同。标签生产商在储存区内储存其产品类别资料及产品厂商资讯。(4)存储器3,用于存储用户自定义数据的用户存储器。4.4数据库概念结构设计用户信息联系ER图,用来存取用户的主要信息。如下:图4-64-6用户信息联系ER图菜品信息联系ER图。如下:图4-74-7菜品信息联系ER图餐桌信息联系ER图。如下:图4-84-8餐桌信息联系ER图菜品分类信息ER图。如下:图4-94-9菜品分类信息ER图在数据库设计过程中,必须充分了解数据的属性。并根据具体的数据属性设计目标数据实体。只有这样,才能设计出既能表达信息相关性又能将结构建模与实际数据紧密联系在一起的数据结构。该模型具有许多独特的特点,主要表现在简洁和清晰的方面,可以通过一种更加直观的方式来表现抽象的数据关系。然后更直观、全面地反映事物的具体实体关系。因此,在表示数据库实体的过程中,数据库实体与其属性之间的直接关系可以用E-R图来表示。它让我们清楚地看到了实体之间的联系。在E-R图中,我们可以从数量上清楚地知道它们之间的内在联系;微观上,我们可以清楚地知道它们之间的内部联系。在实践中,标准E-R图在其繁琐的设计过程中通常使用椭圆来表示实体的属性,实体和属性之间的关系通常用无方向线来表示。每个实体都由一个矩形表示,实体之间的关系由一个菱形表示。实体之间还有三种关系,一对多,一对一,多对多。餐饮管理系统的数据库总体E-R图如4-10所示。4-10餐饮管理系统数据库总体E-R图4.5数据库物理结构设计4.5.1数据库关系模式根据ER图,可以将相应的实体联系,转换为对应的关系模式,也就是关系模型,是数据模型模型中的一种,数据模型是数据库的核心,是根据计算机系统对数据进行建模,将现实中的事物进行转换成数据,存储到数据库中。数据模型的好坏,决定了程序运行的效率。用户信息(用户id、用户名、用户密码)菜品信息(菜品id、菜品名称、菜品图片地址、菜品类型、菜品数量、菜品单价)餐桌信息(餐桌编号、名称、备注、状态)菜品分类信息(编号、分类)4.5.2创建数据库表依据详细的需求分析,我们可以根据相应的关系模型来创建对应的数据库表存储对应的信息。用户信息表users用户信息表主要是用来存储使用用户的相关信息,定义结构如下:表4-2用户信息表序号名称字段数据类型及长度主键是否为空1用户编号idint(默认)是不可为空2用户名usernamevarchar(16)否不可为空3用户密码passwordvarchar(16)否不可为空菜品信息表goods菜品信息表主要是用来存储菜品的相关信息,定义结构如下:表4-3菜品信息表序号名称字段数据类型及长度主键是否为空1菜品编号idint(默认)是不可为空2菜品名称gnamevarchar(16)否可为空3菜品类型gtypevarchar(10)否可为空4菜品数量gcountint(默认)否可为空5菜品单价gtypedouble(默认)否可为空(3)餐桌信息表desk表4-4餐桌信息表序号名称字段数据类型及长度主键1编号idint(4)是2名称mcvarchar(50)否3备注bzvarchar(50)否4状态ztvarchar(50)否(4)菜品分类信息表表4-5菜品分类信息表序号名称字段数据类型及长度主键1编号idint(4)是2菜品分类flvarchar(50)否5.RFID公共餐厅就餐系统上位机设计5.1总体功能设计本论文所涉及的计算机系统,即本论文所涉及的信息处理和展示终端,主要包括三个部分:PC端的餐饮管理,其中以员工为主;其中一个是用于控制主机与下位机之间的数据传送的中间件;另外一种是以食客为主的手机支付系统,它的上层结构见图5-1。4-11上位机框图5.2PC端管理系统设计5.2.1详细设计主要功能如下:账号登录退出、账号注册、菜单列表、菜品详情、购物车界面、结账界面5.2.2登录界面在登陆界面中,点击“注册”键,页面跳转到账号注册界面。输入用户名和密码,点击“注册”,用户名和密码发送到服务器,服务器和数据库匹配,完成匹配,登陆成功;如果匹配不成,那么登陆就会失败。为了保持网页的干净,采用LinearLayout的布局方法,先用android:orientation="vertical"来指定控制项沿纵向直线排列,然后用ImageView控件设定登陆界面图标,并在TextView控制下写“欢迎使用”文字。登陆界面的主要功能是登录,使用TextView控件来编写文本框名称“用户名”,用EditText来设定用户名,并在文字框中使用android:hint属性来指定提示文字,请键入用户名。最后,用Button控制项来设定登陆键。后端主ActivityActivity中的特定登录,在主Activity中登记Button的单击事件,doLoginfang的onClick方法来监控登陆的doLoginfang方法;通过输入用户名,密码调用用户名,调用自定义的getDingBydiners_nameAndding_password方法,在没有用户信息的情况下,会弹出不存在的对话框,如果有,则“登陆成功”,进入用餐信息界面。图5-1登录界面5.3注册界面用户可以通过注册界面注册账号,输入用户名、密码、姓名后,点击“注册”按钮,客户端会把注册信息传输给服务端,服务端会在数据库中通过SQL语句完成用户信息的添加。用户在进行登录操作时,可使用正确的账号、密码进行登录。用户名要求6~16位字母或数字,不可输入其他特殊符号;密码要求8~16位字母、数字组合。只有在注册账号时使用符合要求的账号、密码才能注册成功,否则失败,并提示按照要求输入。5-2账号注册界面5.4菜单主界面此界面主要显示菜品类型、菜品图片、菜品名称、菜品单价。点击菜品类型可以通过对菜品分类的选择,快速找到需要的菜品。点击菜品名称或者图片,可跳转到菜品详情界面,查看具体描述、做法。5-3菜单主界面5-4菜品详情页5.5菜品详情界面此页面主要用于展示菜品的详细说明、口味、做法。用户可以根据上方菜品选择自己喜爱的品种加入购物车,每样菜品都可以点进详情页看里面的详细内容。选好品种以及规格后,在购物车中进行结算。5.6购物车列表点击菜单界面的“结账”按钮,可以跳转到购物车列表,所有已点的菜品,将在此界面中以列表的形式展示(图片、菜品名称、菜品单价、菜品数量),方便用户随时查看已点菜品的数量情况。5-5购物车列表5.7结账界面结账界面,展示已点菜品的情况(菜品名称、菜品单价、菜品数量、菜品总价)、订单总价、支付方式选择。5-6结账界面使用ListVeiw控件来显示用户的当前帐单,并在activity_user_manager.xml中写入与ListView控制有关的信息,因为您必须将特定的数据输入到ListView控件中。后端正在执行UserManagerActivityActivity,在此过程中,onCreate方法被改写,接口被加载,并调用initView方法初始化列表,CURD数据库,启动主线程。通过调用loadDingDb进行数据的采集和更新,子线程启动,通过调用getAllUserList方法获得全部的用户数据,在子线程中使用Handler.post(newRunnable(){})来更新该控件。因为数据库中的数据不能被直接传送到ListView,因此我们需要定制适配器类向ListView传送数据库的目的数据,此处定义LvXdinginfoAdapter适配器,而getView则用于更新其所在的ListView;在这个方法中填入资料,然后再回到版面。定制的适配器已经完成。最后,通过调用ListView中的setAdapter方法来导入已编译的适配器对象,从而ListView与数据的关系就会建立起来。就餐信息程序流程如图5-7所示。图5-7就餐信息程序流程5.8信息管理模块设计厨师管理、就餐者管理、餐盘管理、就餐信息是PC端系统具体管理的功能,统称为信息管理模块,信息管理模块主要如图4.5所示。图5-8信息管理模块主要功能图其中厨师的管理,包括厨师的姓名,国家,性别;部门,入职时间,出生日期,身份证号码,烹饪风格;餐者的管理内容主要是:餐者的编号,姓名,性别;部门,职位,入职时间;出生日期,身份证号码,密码;餐盘管理包含餐盘ID,餐品分类,厨师编号;食品名称,EPC编码,价格;用餐资料包含餐者的编号,姓名,密码;餐具编号,食品编号,食品价格。其中,以餐盘管理为主体,它是主机与中间件之间的接口,数据库中的数据表格负责保存中间件接收、处理、转发的EPC代码及有关的信息。用餐信息是基于餐盘信息和顾客的信息而产生的。该系统主要是为食堂提供数据。通过@click监听并连接Comtroller层的接口,通过前端html界面显示了相关的信息,通过Comtroller层的@PostMapping、@DeleteMapping、,可以通过Comtroller层的@PostMapping、@DeleteMapping、@PutMapping、@GetMapping实现。本节的主要工作是设计数据库表。5.9中间件设计为了实现RFID数据采集和数据处理和显示终端的通讯,需要在读取设备和系统数据库的接口上建立RFID中间件,实现从实体到虚拟物体的转化,所以数据处理是RFID中间件最大的特点。RFID中间件应该具有三个主要的作用:第一,对读取和写入程序进行控制;二是根据一定的规则对数据进行筛选,筛选出重复、无效的数据,尽可能地向后台发送有效的数据;三是底层屏蔽,RFID中间件为上层应用提供了一个统一的界面,方便了上层应用的数据采集,而上层的信息处理和显示终端则可以对底层的细节进行隐藏;在更新底层终端设备和上层数据库软件时,仅需在不修改上层应用系统逻辑的情况下对其进行修改,从而减少了系统的维护费用;改善了资料传送的效率和储存的安全性。从总体上看,RFID中间件是一种通信业务,它通常是通过Socket通讯和多线程技术来完成。本论文的中间件是以通讯业务的思想为基础,通过对下位机的数据采集、对外来标签数据的过滤、对接收到的数据的过滤、对接收到的数据进行处理、对有效数据进行截获,与PC数据库进行比对,如果数据符合,将数据插入到目标数据库表格中;并显示读入的数据,如果不符合,就不会被插入,并且会显示一个错误的结果。本文从RFID中间件的设计目的出发,对RFID中间件的主要功能进行了三个方面的设计,首先是TCPServer,主要完成对服务器和读取端之间的通讯和数据的处理;第二个模块是网络服务器,它负责数据传输的显示;第三个模块是数据库连接池,它主要是对数据库进行增删和修改。当中间件模块被初始化时,TCP服务被创建,TCP_PORT端口8888,网络服务被建立,PORT8080接口被接收,并对数据库连接池进行初始化。在TCP_PORT接口的基础上,通过TCP/IP协议与TCP_PORT接口进行接口通讯,为数据传输做好准备。在系统运行过程中,由PC将指令传送给读取器,读取器在收到命令后对标签进行扫描,并将其返回,在完成Socket通讯后,生成子线程,以进行TCP报文的处理;当读取机与服务端进行通讯时,读取机将“310301”以while周期形式监听,并在循环中将该固定读取命令发送给读取器,读取该指示后,读取该标记,获得该标记EPC信息;所获得的EPC资讯是16进制的,且其长度是不确定的,因此伺服器作为字节数组被接受,因此必须处理字节资料;转换成16进制数的字符串,每个信息集合为36个比特,头12个是标记系统信息,包括厂商信息、EPC长度信息等,在这个系统中是没有用的,24个位置是定制的EPC代码,是有用的信息;该算法采用deal方法对TCP所收到的信息进行处理,以36比特的方式将所收到的数据分成若干组,然后在每个分组中截取最后24个字符作为有效信息,然后加入到Set《String》中,并根据设置集的不可重复性特点,同时进行解重。调用WebServer.send方法,在Web接口上显示已处理的数据,然后通过deal.stream().forEach(str-》DBServer.queryAndInsert(str)),以if(query==null||query.size()==0)来判断数据查询的结果,如果没有得到数据,那么该数据就会被WebServer.send方法显示在网页上。然后对数据进行处理,将整行的匹配数据插入到目标表格中,完成数据的转存和显示。在进行数据传送时,必须考虑到数据格式的转换问题。读取器收到的指令和传送的资料都是十六进制,而服务器则是用来显示和处理数据的,因此为了让读取器与服务器之间的数据进行交互,就需要在进行十六进制的数据处理中进行字符串和十六进制的转换。在传输资料时,必须将一个字串资料转换成十六进制,并视传送资料的长度而定,以两个字节来呼叫Integer.parseInt(str.substring(i,i+2),16)。当接收到资料时,必须将十六进制数转换成字符串,然后调用Integer.toHexString(byte&0xFF),将该字节数据转化为十六进制字符串数据,当该字符串长度为1时,在前面补0,并将该字符串数据存储到一个预定的StringBuffer对象(result)中,然后进行转换。中间件程序流程如图5-9所示。图5-9中间件程序流程图6.系统测试6.1系统测试方法系统测试就是要检测所设计APP的某些功能与性能,一是要避免因客户的某些非常规操作导致系统出现界面不友好,这对用户来

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论