智能点餐系统开发纪实2-----系统整体结构和业务流程

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(转载请说明出处)

 

你可能感兴趣的:(项目记录)