智能点餐系统开发纪实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)
上一篇 2022年3月11日 上午11:00
下一篇 2022年3月11日 下午12:00


相关推荐

  • 最全综述 | 医学图像处理「建议收藏」

    0、引言医学图像处理的对象是各种不同成像机理的医学影像,临床广泛使用的医学成像种类主要有X-射线成像(X-CT)、核磁共振成像(MRI)、核医学成像(NMI)和超声波成像(UI)四类。…

    2022年4月12日
    99
  • android attributeset 工具类,android attributeset总结

    android attributeset 工具类,android attributeset总结一般是当项目中遇到这样的场景需要自定义控件的 AttributeSet 属性 一个自定义控件的有些属性内容是随着外部条件而动态改变的 forexample 一个自定义的 ListView 控件 需要在底部添加一个 View 而这个 View 在不同的模块使用中传入的 View 是不同的 这时候有两种方法 一种方法就是在自定义 ListView 控件类中提供一个公开的接口给外部调用从而将 View 动态的传入进去 另外一种

    2026年3月19日
    2
  • 【STM32】HAL库 STM32CubeMX教程六—-定时器中断

    【STM32】HAL库 STM32CubeMX教程六—-定时器中断前言:今天我们来学习定时器,32的定时器有着非常丰富的功能,输入捕获/输出比较,PWM,中断等等。是我们学习STM32最频繁使用到的外设之一,所以一定要掌握好,这节我们讲解定时器中断,本系列教程将对应外设原理,HAL库与STM32CubeMX结合在一起讲解,使您可以更快速的学会各个模块的使用所用工具:1、芯片:STM32F407ZET6/STM32F103ZET62、ST…

    2022年5月27日
    102
  • STM32中IIC协议[通俗易懂]

    IIC协议:接收器和发送器:物理层:SCL–时钟总线SDA–数据总线开始条件:SCL高电平,SDA由高变低停止条件:SCL高电平,SDA由低变高主机:用来产生SCL(发送数据和接收数据)从机:(发送数据和接收数据)总线空闲态:SDA为高电平(没有设备发送开始条件)写:1.主机发送开始条件2.发送从机地址(7位)+写

    2022年4月14日
    53
  • java浅拷贝和深拷贝的区别_js中深拷贝和浅拷贝的区别

    java浅拷贝和深拷贝的区别_js中深拷贝和浅拷贝的区别最近用到了clone方法,并且遭遇到各种奇怪的bug;一,浅拷贝浅拷贝:对基本类型的数据是值拷贝,对String类型的拷贝也可以看作是值拷贝,这里不做讨论;浅拷贝是什么呢,先上一段代码,对着看代码很容易理解: Vector<Vector>data=newVector<Vector>(); for(inti=0;i<4;i++){ …

    2026年4月20日
    8
  • Spring的Bean加载流程

    Spring的Bean加载流程

    2021年4月10日
    228

发表回复

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

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