智能点餐系统开发纪实2—–系统整体结构和业务流程「建议收藏」

1请看这里http://blog.csdn.net/jason0539/article/details/20854329 写完之前这个就没写,趁着新鲜感几天就把这个弄完了,也没再写别的东西,前几天已经完成了,今天需要写一个文档,写完文档就把里面我写的部分贴到这里来了,有点罗嗦,凑字数。其实就是讲了一个整体流程,整个系统主要分四部分:小车,手机,收银台,厨房。服务器写了两个,收银

大家好,又见面了,我是全栈君。

1请看这里http://blog.csdn.net/jason0539/article/details/20854329

 

写完之前这个就没写,趁着新鲜感几天就把这个弄完了,也没再写别的东西,前几天已经完成了,今天需要写一个文档,写完文档就把里面我写的部分贴到这里来了,有点罗嗦,凑字数。

其实就是讲了一个整体流程,整个系统主要分四部分:

小车,手机,收银台,厨房。

服务器写了两个,收银台一个,用来处理手机的连接,包括菜单更新和订单处理,

                                厨房一个,用来处理送餐小车的连接,主要用来给小车发送桌号,让小车送餐到指定桌号。

手机就用的android,不多说,

小车用的arduino,都是一个个的模块,连上写点程序,处理下各个串口的数据就行。

 

客户端:采用android平台开发的应用,主要功能是客人在餐厅打开应用后,连接到餐厅的wifi信号,通过开启一个socket去后台服务器查询菜单,如果是第一次打开,自动下载所有菜单,否则的话会检查菜单是否有更新,如果菜单更新则自动下载最新菜单,并自动存储在应用的数据库中,方便离线查看.客人在应用中选择要点的菜品,填上自己所在桌号,然后提交订单,即可将订单发送到服务器.

 

收银台:在收银台可进行菜单的增删改查.客人打开客户端应用之后,会自动连接到收银台的服务器这边来,服务器开启一个线程去处理该客户端的请求,服务器根据客户端的请求指令做出相应,给客户端发送菜单或者接受客户端的点餐订单,客户端的订单请求被服务器存储到后台的MySql数据库中, 收银台的可视化界面通过jdbc与数据库交互存取数据,然后显示到收银台的可视化界面.当客人过来买单,则通过收银台查询数据库中对应桌号的信息,即可获取订单信息,包括所点菜单,总价等,点击结账按钮之后,从数据库中删除此条订单信息.

 

厨房后台:厨房与收银台连接同一个数据库,与收银台不同的是厨房只查询订单信息,然后厨师根据订单信息做菜.小车上面安装了wifi模块,自动连接到厨房的服务器上面,当订单完成后,厨房工作人员通过送餐按钮发送送餐指令给小车,小车收到指令来到厨房,把菜品送到客人所在的餐桌.同时指令发送成功之后,数据库中的相应订单会被删除掉,并自动刷新订单列表,厨师继续做下一张订单的菜品.

 

小车:平时在指定地点充电,收到厨房的送餐指令之后(就是一个桌号)。这个在餐厅里的地面上是有黑色的轨迹和RFID标签的,黑色轨迹用来让小车循迹,不要到处跑,RFID卡片里写着桌子的号码。小车首先到厨房把要送的菜装好,然后按照地板上的循迹线路走,如果读到到写好了指定桌号的RFID卡片,则转弯到餐桌旁边,然后返回充电地点。之后重复以上过程。

 

写这篇的时候突然发现,我为什么要写智能两个字,根本没有体现出智能来,但是现在不管什么行业,都要跟智能两个字贴个边,智能家具,智能热水器,智能这个,智能那个,不明白到底智能在哪里,大部分也就是能做到自动而已,跟智能还差得远。

 

如果没有意外的话这个后面就不再写别的了,之前一直做这个项目做那个项目,大部分做的是重复劳动,很少涉及数据结构和算法之类的原理性的知识,感觉有点虚,之后少写代码,能保持手感就行,多看书,初步打算看完《think in java》《android内核剖析》《深入理解java虚拟机》《数据结构与算法分析(java语言描述)》,然后再作别的打算。

找工作,压力颇大。

 

作者:jason0539

微博:http://weibo.com/2553717707

博客:http://blog.csdn.net/jason0539(转载请说明出处)

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/121345.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • maven使用入门[通俗易懂]

    maven使用入门[通俗易懂]maven面临的问题一个项目就是一个工程。如果项目非常大,最好是每一个模块对应一个工程。借助maven可以将一个项目拆分成多个工程项目中需要的jar必须要手动”复制”,”粘贴”到WEB-INF/lib目录下,带来的问题是:同样的jar包文件重复出现在不同的项目工程中,浪费空间。maven可以将jar仅仅保存在”仓库”中,有需要使用的工程”引用”这个文件接口,并不需要真的把jar包复制过来jar包需要别人替我们准备好,或到官网下载。不同技术的官网提供jar包下载的形式是五花八门的,有些技术的官网就是

    2022年8月8日
    5
  • 网页刷新快捷键ctrl加什么_谷歌浏览器刷新快捷键

    网页刷新快捷键ctrl加什么_谷歌浏览器刷新快捷键强制刷新ctrl+F5

    2022年8月1日
    4
  • 深入理解volatile关键字的作用(一)

    深入理解volatile关键字的作用(一) (一)计算机内存模型大家都知道在计算机执行程序的时候每条指令都是在cpu中执行的,那么执行指令的同时势必会有读取和写入的操作,那么这样就引申出了一个问题。那么在程序运行时数据的存储是在计算机中的主存中(物理内存)的而内存的读取和写入的速度与cpu的执行指令速度相比差距是很大的,这样就造成了与内存交互时程序执行效率大大降低,因此在cpu中就有了高速缓存。 也就说计算机cpu在执行指令时…

    2022年5月6日
    39
  • js获取当前时间的方法_c获取当前时间毫秒

    js获取当前时间的方法_c获取当前时间毫秒1.获取时间vardate=newDate();varyear=date.getFullYear();//返回的是年份varmonth=date.getMonth()+1;//返回的月份上个月的月份,记得+1才是当月vardates=date.getDate();//返回的是几号varday=date.getDay();//周一返回的是1,周六是6,但是周日是0

    2022年9月24日
    1
  • import duties(Python import变量)

    最近在读《编程之美》,打算用C#实现其中一个题目,就是如何控制CPU的使用率在50%,使得在资源管理器中CPU利用率维持在一条直线。单核的还容易办到,但是现在的机器一般都是多核的,这样就需要调用Win32API SetThreadAffinityMask 来给线程制定CPU去执行。但这个API只能在C++调用,那么在C#里如何调用呢?更进一步,就是在C#里为什么没有全部的WIN32API可

    2022年4月15日
    54
  • 一码中_amp是什么意思

    一码中_amp是什么意思每日一码将每天看到的优秀的代码或者特别的实现,记录下来a&b赋值问题_2019218_Q&Aa.x//这时a.x的值是多少?b.x//这时b.x的值是多少

    2022年8月2日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号