餐饮无线点菜机
来源:互联网 发布:淘宝刷注册单有风险吗 编辑:程序博客网 时间:2024/04/28 21:15
餐饮无线点菜机:
客户端程序与接口程序通过收发windows消息和读写文本文件这两种方式进行交互。过程如下:
1.消息发送方将消息的内容写入到指定的文件。
2.消息发送方通过Windows消息通知消息接收方接受消息。
3.当消息接收方收到windows消息后,读取指定的文件以获取消息的内容。
发送windows消息需要用到下面两个WindowsAPI:
BOOL PostMessage(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);(In user32.dll)
LRESULT SendMessage(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);(In user32.dll)
为了向指定程序发送windows消息,需要获取指定程序的句柄(PostMessage和SendMessage的第一个参数)。
接口程序由客户端程序启动,因此可以在启动过程中将客户端程序的句柄当做参数传给接口程序,启动接口程序需要用到下面的WindowsAPI:
HINSTANCE ShellExecute(HWND hwnd, LPCTSTR lpOperation, LPCTSTR lpFile, LPCTSTR lpParameters, LPCTSTR lpDirectory, INT nShowCmd); (In shell32.dll)
接口程序启动后,再将自己的句柄通过Windows消息发送给客户端程序。
客户端程序可以通过向接口程序发送关闭消息将其关闭
点菜机供应商提供的接口是windows消息+文本文件,所以程序中会对接受消息进行处理,和对文本文件进行解析.对于Windows消息,采用UDP接受,供应商修改接口程序。
因为java Swing不支持windows消息机制,后来因为公司开发一个来电显示软件,发现swt中可以支持windows消息机制。不过对于修改为UDP消息通知,对于供应商和公司开发
问题都不是很大。目前公司支持多种供应商。因为多种供应商的处理机制都是一样。只是对于消息的格式可能存在差异。对于长度,位置,字段的多少。对于消息的格式不同。可
以封装接口。让不同的消息解析交个不同的接口处理。无线点菜机客户端程序概要图如下>
<1>BackWorker 后台监听,当监听到消息就交个IController处理
<2>IController是负责整个处理过程:
通过IRead接口读取文本文件,考虑以后可能读取的位置或者方式不同,或者不同的消息应该使用不同的IRead 其实现在暂时也没有发现这样的扩展。不过在此地方设置
成IRead接口,也不是属于过渡设计。
通过ParserMessage解析请求String到在整个IController处理过程中都作为信息传递的visitorModel中的requestBean.通过commandKey寻找请求消息文件规则XML
(其实此处的解析都是通过ParserMessage解析请求,实际上更好的做法是分析请求消息,将不同的请求消息格式交给不同的类来处理,
在开发一个供应商的时候,不会有这样的感受,两个供应商的时候也不会有很多的感觉,三个供应商等等的时候,因为供应商的命令总是有小许的差别,当供应商增加过多的时
候,为了程序的可读性,可维护性,可修改行。还是应该提出接口,这样也清晰,同理解析响应的时候也是如此)
独立为接口,接口封装请求命令的格式)
ICommand处理请求,不用过多解释
ParserMessage将VisitorModel中的responseBean解析为字符串,通过commandKey寻找响应消息文件规则XML,
IWriter将responseBean写入文件,此处的IWriter接口的提取,在实际多个供应商的时候,就派上用场,因为可能对于同一个命令,不同的供应商写入文件的要求不同,
比如大小的替换。
- 餐饮无线点菜机
- 尚吉ipad点菜机及餐饮管理系统
- 无线点菜系统方案
- 无线点菜系统
- 开发餐饮点菜PDA设备记录一
- 开发餐饮点菜PDA设备记录一
- 开发餐饮点菜PDA设备记录一
- 龙脉pda无线点菜系统 bt
- 无线点菜系统免狗破解
- 无线点菜系统01(需求分析)
- 无线点菜系统02(开发流程)
- 智谷电无线餐饮管理系统方案
- 用手机预先点菜
- 点菜
- 无线点菜系统03(界面布局设计)
- 无线点菜系统04(配置说明、源文件设计下载)
- 在测试PDA无线点菜时,总是说没有足够的存储空间?
- 点菜文化
- 关于GPS偏移的基础知识
- imo入职文档中学到的东西
- The ARM Instruction Set
- excel 导入 指定列导入到对应位置
- Ruby mysql lib compare with Python mysql lib
- 餐饮无线点菜机
- 单向链表的创建与迭代访问
- gcc预定义的一些宏
- delegate不求甚解版之:小新寫檢討
- SQL中 decode()函数简介
- 居住证申领以及续办
- DbUnit入门实战
- Others: 英语名句
- 同步复制技术实现步骤