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

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

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

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

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

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

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

手机就用的android,不多说,

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

 

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

 

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

 

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

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

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

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

找工作,压力颇大。

作者:jason0539

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

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

原文地址:https://www.cnblogs.com/lcchuguo/p/4015589.html