资源描述
-------------各类专业好文档,值得你下载,教育,管理,论文,制度,方案手册,应有尽有--------------
HM点播系统和收银管理系统的通信协议:
1. 系统概述:
HM点播系统包含服务端软件和客户端软件两个部分,服务端软件不包含收银数据库和收银管理软件,并且,服务端软件基本运行于Linux-2.6.36操作系统,不允许收银管理系统运行于点播服务器;
HM点播系统的客户端软件,运行于Linux-2.4.29 / Linux-2.6.36操作系统,点播界面软件内置了餐饮酒水点单功能; 点播界面软件通过专用协议和收银管理系统通信;
HM点播系统的客户端软件通过局域网连接到收银管理系统上,数据通过UDP协议进行传输,要求收银管理系统必须安装在IP地址为10.0.0.9的主机上面,点播客户机的IP地址由点播服务器分配,每次点播客户机开机,都可能被分配一个新的IP地址,所以,要求收银管理系统及时跟踪点播客户机的IP地址(我们已经提供了跟踪点播客户机IP地址的机制);
点播客户端绑定UDP的2033端口,监听任意IP地址的主机发来的数据;
所有的点播客户机只会向10.0.0.9这台主机的2003端口发送数据;
收银管理端绑定UDP的2003端口,监听任意IP地址的主机发来的数据;
收银管理端根据跟踪的点播客户端的IP地址,向2033端口发送数据;
2. 通信格式:
数据通信格式:
nnnnnnnn:mm.mm.mm.mm.mm.mm:command;
nnnnnnnn 是 8 个字节,是16进制编码的帧顺序号;
随后是一个冒号;
mm.mm.mm.mm.mm.mm 是17个字节,是16进制编码的网卡地址;
随后是一个冒号;
command 是通信数据,UTF-8编码,最多4千个字节;
最后是一个分号;
通信格式举例:
00a1ef71:00.e3.ac.f0.4c.01:lock,0;
00a1ef71 是 8 个字节,代表数据帧的顺序号;
随后是一个冒号;
00.e3.ac.f0.4c.01 是17个字节,代表发送端网卡地址;
随后是一个冒号;
lock,0 是 6 个字节,是通信的数据部分;
最后是一个分号;
数据帧的顺序号:
可以从任意数值开始计数,每帧发送之后,帧的顺序号要加一;
如果帧的顺序号加一后大于0xFFFFFFFF,回复为0,继续加一;
如果帧的顺序号重复,接收端视为发送重复,直接忽略这一帧;
每台主机各自计算本机的发送帧的顺序号(发送后加一);
发送端网卡地址:
点播客户端发送的数据,在这个字段填充点播客户机的网卡地址;
收银管理端发送的数据,在这个字段填充[全零]就可以;
通信的数据部分:
以UTF-8编码的文本,最多4000个字节,不许包含分号;
如果包含了分号,点播系统自动认为数据部分已经结束;
通信的容错方法:
由于采用UDP通信,当局域网交换机比较繁忙的情况下,
部分UDP通信数据会被丢弃,采取重复发送的方法(帧序号是重复的);
3. 指令概述:
收银管理端随时可以发送数据给点播客户端,点播客户端会尽快做出反应;
点播客户端随时可以发送数据给收银管理端,必须要尽快回复点播客户端;
通信指令分为3种:
1.收银管理端发送的指令,要求点播客户端做出反应;(例如:要求锁房)
2.收银管理端发送的查询,要求点播客户端发送回应;(例如:查看歌单)
3.点播客户端发送的查询,要求收银管理端发送回应;(例如:查看账单)
4. 指令解释:
查询点播客户端的已选歌曲列表:
收银管理端发送: request_song_list,00;
点播客户端回应: res_song_list,00,歌曲编号,歌曲编号,…;
查询点播客户端的网络地址(IP):
收银管理端广播: creg;
点播客户端回应: creg,本机MAC地址,主控MAC地址;
锁定点播客户机:
<解锁界面> 收银管理端发送: lock,0;
<锁定界面> 收银管理端发送: lock,1;
<清理全部歌曲> 收银管理端发送: lock,2,0;
<清理待播歌曲> 收银管理端发送: lock,2,1;
<保留一首歌曲> 收银管理端发送: lock,2,2;
<禁止点播舞曲> 收银管理端发送: lock,3;
<允许点播舞曲> 收银管理端发送: lock,4;
<等待开房> 收银管理端发送: lock,5;
<计时关房> 收银管理端发送: lock,6,分钟数值;
<锁定酒水点单> 收银管理端发送: lock,7;
<解锁酒水点单> 收银管理端发送: lock,8;
警告点播客户端:
<解除警告> 收银管理端发送: warn,0;
<火灾警告> 收银管理端发送: warn,1;
<查房警告> 收银管理端发送: warn,2;
关闭点播客户机:
<关闭电源> 收银管理端发送: shut,p;
<重新启动> 收银管理端发送: shut,r;
提示点播客户端:
收银管理端发送: info,提示文本;
弹出特定的消息:
收银管理端发送: mesg,提示消息;
设定客户端名称:
收银管理端发送: name,包厢名称;
协助客户端点播:
收银管理端发送: song,歌曲编号,歌曲编号,…;
在点播客户端设定包厢名称:
点播客户端发送: name,点播客户机网卡地址,包厢名称;
收银管理端回应: name_setdone; <设定成功的回应>
name_setfail; <设定失败的回应>
在点播客户端查询消费账单:
点播客户端发送: review_bill;
收银管理端回应: bill,first,物品标号,物品价格,物品数量,物品名称,…;
bill,items,物品标号,物品价格,物品数量,物品名称,…;
在点播客户端发出服务请求:
点播客户端发送: client_ctrl,service,0; <取消服务<任何服务>>
点播客户端发送: client_ctrl,service,1; <要求服务<任何服务>>
点播客户端发送: client_ctrl,service,1,clean;<要求服务<清扫工到场>>
点播客户端发送: client_ctrl,service,1,audio;<要求服务<调音师到场>>
点播客户端发送: client_ctrl,service,1,waiter;<需要服务<服务生到场>>
点播客户端发送: client_ctrl,service,1,ganger;<需要服务<请经理到场>>
在点播客户端查询菜单大类:
点播客户端发送: review_list,major_class;
收银管理端回应: list,major_class,first,大类标号,大类名称,…;
list,major_class,items,大类标号,大类名称,…;
在点播客户端查询菜单小类:
点播客户端发送: review_list,minor_class,大类标号;
收银管理端回应: list,minor_class,first,小类标号,小类名称,…;
list,minor_class,items,小类标号,小类名称,…;
在点播客户端查询菜单选项:
点播客户端发送: review_list,menu_option;
收银管理端回应: list,menu_option,first,选项标号,选项名称,…;
list,menu_option,items,选项标号,选项名称,…;
在点播客户端查询菜单列表:
点播客户端发送: review_menu,小类标号[,物品查询];
收银管理端回应: menu,first,物品标号,物品价格,赠品限定,物品名称;
menu,items,物品标号,物品价格,赠品限定,物品名称;
额外的解释说明: 赠品限定,就是可以附带多少价值的赠品;
物品查询,就是物品名称包含特定字串的;
在点播客户端查询赠品列表:
点播客户端发送: review_atta,物品标号;
收银管理端回应: atta,first,赠品标号,赠品价值,赠品名称,…;
atta,items,赠品标号,赠品价值,赠品名称,…;
在点播客户端提交点单请求:
点播客户端发送:
transaction,session_begin; <开始提交>
transaction,refer_agio,90; <总体折扣>
transaction,refer_user,工号,密码; <员工认证>
transaction,refer_requ,物品标号,物品数量,赠品关联,物品选项,…; <付费物品>
transaction,refer_requ,物品标号,物品数量,赠品关联,物品选项,…; <付费物品>
transaction,refer_atta,赠品标号,赠品数量,赠品关联,赠品选项,…; <附赠物品>
transaction,refer_atta,赠品标号,赠品数量,赠品关联,赠品选项,…; <附赠物品>
transaction,session_finis; <提交结束>
收银管理端回应: transaction,session_done; <提交成功>
transaction,session_fail; <提交失败>
额外的解释说明: 赠品关联,就是 赠送关联 的序号(不重复序号),
它便于确定 哪些附赠物品 属于 哪个付费物品;
所有transaction开头的指令,都必须按照事务化方法进行处理,session_begin代表一个事务的开始,如果之前有其他事物,一律作废;之后的各个事物指令要求暂存(延后处理),收到session_finis之后,开始处理各个事物指令;
在点播客户端催促物品送达:
点播客户端发送: client_ctrl,menu_urge; <尽快送达所有物品>
client_ctrl,menu_urge,物品标号; <尽快送达特定物品>
在点播客户端要求酒水结算:
点播客户端发送: transaction,session_begin;
transaction,refer_agio,90;
transaction,refer_user,工号,密码;
transaction,check_out;
transaction,session_finis;
收银管理端回应: transaction,session_done; <提交成功>
transaction,session_fail; <提交失败>
在点播客户端查询花篮选单:
点播客户端发送: review_list,custC_list;
收银管理端回应: list,custC_list,first,花篮标号,花篮名称,价格,…;
list,custC_list,items,花篮标号,花篮名称,价格,…;
在点播客户端提交花篮点单:
点播客户端发送: transaction,session_begin;
transaction,refer_user,工号,密码;
transaction,custC_listsend,小姐工号,花篮标号,数量;
transaction,custC_listsend,小姐工号,花篮标号,数量;
transaction,session_finis;
收银管理端回应: transaction,session_done; <提交成功>
transaction,session_fail; <提交失败>
在点播客户端查询陪侍列表:
点播客户端发送: review_list,custA_list[,idel]; <空闲的>
review_list,custA_list[,busy]; <繁忙的>
review_list,custA_list[,all]; <所有的>
收银管理端回应:
list,custA_list,first,工号,别名,组别,身高,体重,三维,状态,…; <具体信息>
list,custA_list,items,工号,别名,组别,身高,体重,三维,状态,…; <具体信息>
在点播客户端要求陪侍到场:
点播客户端发送: client_ctrl,calling,工号,工号,…;
在点播客户端确定陪侍上工:
点播客户端发送: client_ctrl,princess,工号,on;
收银管理端回复: client_ctrl,princess,工号,on,success; <提交成功>
client_ctrl,princess,工号,on,unknown; <工号错误>
client_ctrl,princess,工号,on,repeated; <重复上工>
client_ctrl,princess,工号,on,overload; <台费不足>
client_ctrl,princess,工号,on,monopoly; <不能窜台>
在点播客户端确定陪侍下工:
点播客户端发送: client_ctrl,princess,工号,off;
收银管理端回复: client_ctrl,princess,工号,off,success; <提交成功>
client_ctrl,princess,工号,off,unknown; <工号错误>
client_ctrl,princess,工号,off,repeated; <重复下工>
在点播客户端对陪侍做评分:
点播客户端发送: client_ctrl,grading,工号,分数;
在点播客户端,陪侍组长登录:
点播客户端发送: client_ctrl,mia_login,组别,密码;
收银管理端回应: client_ctrl,mia_login,succeed;
client_ctrl,mia_login,failed;
在点播客户端,陪侍组长查询:
点播客户端发送: review_list,custG_list,组别,1; <按照房间排序>
review_list,custG_list,组别,2; <按照工号排序>
review_list,custG_list,组别,3; <按照业绩排序>
review_list,custG_list,组别,4; <按照状态配需>
收银管理端回复:
list,custG_list,first,组别,工号,别名,所在房间,状态,业绩,工号,别名,…;
list,custG_list,items,组别,工号,别名,所在房间,状态,业绩,工号,别名,…;
-------------各类专业好文档,值得你下载,教育,管理,论文,制度,方案手册,应有尽有--------------
展开阅读全文