以太网实时消费机通讯协议.docx
- 文档编号:26160901
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:19
- 大小:72.80KB
以太网实时消费机通讯协议.docx
《以太网实时消费机通讯协议.docx》由会员分享,可在线阅读,更多相关《以太网实时消费机通讯协议.docx(19页珍藏版)》请在冰豆网上搜索。
以太网实时消费机通讯协议
实时消费机UDP通讯协议
一、终端向电脑发送的信息
说明:
所有信息以字符串的方式接收和发送,以逗号分隔各段参数。
打开UDP控件,端口设为39190,
如delphi中用IdUDPServer控件,
,属性如下:
VB用Winsock控件,
,属性如下:
VFP用Winsock控件
,属性如下:
表1:
指令名称
指令格式
说明
例子
响应电脑搜寻
100,
包序列号,
终端IP,
子网掩码,
网关IP,
远程电脑主机IP,
端口号,
终端硬件号
响应电脑发出的搜寻局域网内所有终端设备指令000,就是电脑软件用广播式向39190端口发送字符串“000”
100,00009,192.168.1.218,255.255.255.0,192.168.1.1,192.168.1.3,39169,1234567890
设备开机信息
101,
包序列号,
终端IP,
远程电脑主机IP,
机号,
时间
设备开机时向电脑发送的开机信息,电脑可以根据这条信息发送相应的开机提示信息。
电脑发送002查询设备时间时,也是响应这条信息。
101,00009,192.168.1.1,192.168.1.3,00002,2012-04-2011:
12:
13
刷卡
102,
包序列号,
终端IP,
远程电脑主机IP,
机号,
卡号
当设备消费模式不是定额方式或计次方式时,刷卡后设备向电脑发送此信息。
102,00009,192.168.1.1,192.168.1.3,00002,8888888888
输入金额后刷卡消费
或
定额刷卡消费
103,
包序列号,
终端IP,
远程电脑主机IP,
机号,
卡号,
消费额,
时间
以下情况发送:
1、设备消费模式为定额方式或计次方式时刷卡;
2、当设备消费模式为普通模式或快捷键模式时,先按金额后刷卡。
103,00009,192.168.1.1,192.168.1.3,00002,8888888888,5.50,2012-04-2011:
12:
13
计次刷卡消费
104,
包序列号,
终端IP,
远程电脑主机IP,
机号,
卡号,
时间
在设备设定为计次消费模式下时,刷卡后直接发送至电脑
104,00009,192.168.1.1,192.168.1.3,00002,8888888888,2012-04-2011:
12:
13
记帐信息发送
105,
包序列号,
终端IP,
远程电脑主机IP,
机号,
卡号,
消费额,
消费时间,
状态(0:
金额消费1:
计次),
记录地址标识,
总记录数
在网络断线情况下,或刷卡发送后1秒电脑没回应的情况下,消费信息将先记账,在网络联通后,向电脑发送
105,00009,192.168.1.1,192.168.1.3,00002,8888888888,5.50,2012-04-2011:
12:
13,1,12345678,18
键盘输入
106,
包序列号,
终端IP,
远程电脑主机IP,
机号,
键盘输入信息
向电脑发送键盘指令,操作方法是先按设备【Func】进菜单,选【发送数字指令】,输入数字后,按回车发送。
106,00009,192.168.1.1,192.168.1.3,00002,11
刷卡订餐
107,
包序列号,
终端IP,
远程电脑主机IP,
机号,
卡号,
订餐食堂号,
订餐日期,
订餐餐次,
订餐餐号,
订餐份数,
说明:
订餐机待机刷卡时发送缺省的饭堂号,餐号,订餐日期、餐次为离当前有效订餐时间的最近餐次。
可手动修改订餐日期及饭堂号、餐号、份数。
取餐(用于订取餐模式)
108,
包序列号,
终端IP,
远程电脑主机IP,
机号,
卡号,
时间
在设备设定为取餐模式下时,刷卡后直接发送至电脑
108,00009,192.168.1.1,192.168.1.3,00002,8888888888,2012-04-2011:
12:
13
响应电脑发过来的显示指令
109,
包序列号,
终端IP,
远程电脑主机IP,
机号,
接收到的指令
接收到的指令包括电脑发来的006、008、009、010、103
向电脑查询信息
114,
包序列号,
终端IP,
远程电脑主机IP,
机号,
卡号,
查询指令
时间
110,00009,192.168.1.1,192.168.1.3,00002,8888888888,00001,2012-04-2011:
12:
13
如某客户的查询指令:
00001表示向电脑查询自定义卡号00001的消费定额值。
响应电脑的015指令
115,
包序列号,
终端IP,
远程电脑主机IP,
机号,
返回值
返回值为0表示成功;
为1表示,输入卡号不是按从小到大的顺序。
为2表示同一指令里个别卡号已存在设备中,但不存在的卡号已加成功加入。
为3表示存储空间不足,此指令无法执行
没有返回请查看网络通讯
响应电脑的016指令
116,
包序列号,
终端IP,
远程电脑主机IP,
机号,
返回值
返回值为0表示成功;
没有返回请查看网络通讯
响应电脑的017指令
117,
包序列号,
终端IP,
远程电脑主机IP,
机号,
返回值
返回值为0表示成功;
没有返回请查看网络通讯
响应电脑的018指令
118,
包序列号,
终端IP,
远程电脑主机IP,
机号,
返回值
返回值为0表示成功;
没有返回请查看网络通讯
响应电脑的019指令
119,
包序列号,
终端IP,
远程电脑主机IP,
机号,
返回值
返回值为0表示成功;
没有返回请查看网络通讯
响应电脑的020指令,查询卡号是否存在白名单中
120,
包序列号,
终端IP,
远程电脑主机IP,
机号,
返回值
返回值为0表示卡号存在;
1表示卡号不存在;
2表示卡号白名单区为空
没有返回请查看网络通讯
响应电脑的021指令
121,
包序列号,
终端IP,
远程电脑主机IP,
机号,
顺序白名单区卡号数量,
随机白名单区卡号数量
响应电脑驱动继电器的030指令
130,
包序列号,
终端IP,
远程电脑主机IP,
机号,
本次被操作的继电器编号,
......
本次被操作的继电器编号
二、电脑向终端发送的信息
说明:
所有信息以字符串的方式接收和发送,以逗号分隔各段参数。
表2:
指令名称
指令格式
说明
例子
搜寻设备
000,
搜寻局域网内所有终端设备指令,终端会向主机回应100指令(请看表1)
000
确认信息已收到
001,
包序列号
用于告诉终端,信息已收到,不需要重发3次相同信息了。
001,00009
读设备时间
002,
机号
读取终端时间,终端收到这些指令后会回应101指令(请看表1)
002,00002
改设备时间
003,
机号,
时间
设定终端设备时间
003,00002,2012-04-2011:
12:
13
改IP地址
004,
终端IP,
子网掩码,
网关IP,
网送MAC,
远程电脑主机IP,
远程电脑主机MAC,
是否自动搜出MAC,
端口号,
终端硬件号
设定指定的终端IP地址等参数
004,192.168.1.228,255.255.255.0,192.168.1.1,AA-BB-CC-DD-EE-FF,255.255.255.255,AA-BB-CC-DD-EE-FF,0,39190,0138215662
批量改远程地址
005,
子网掩码,
网关IP,
网关MAC,
远程电脑主机IP,
远程电脑主机MAC,
是否自动搜出MAC,
端口号,
005-005:
:
005-005(这个固定常量用于防止网络误改)
批量设定终端远程电脑主机IP等参数
005,255.255.255.000,192.168.001.001,AA-BB-CC-DD-EE-FF,192.168.1.168,AA-BB-CC-DD-EE-FF,0,39190,005-005:
:
005-005
扣款不成功
006,
机号,
卡号,
信息,
显示延时(秒),
蜂鸣器发声种类(见表3),
语音种类(见表4)
扣款不成功时,电脑向终端发送的显示及声响信息,此信息仅在设备刷卡后显示“正在等待电脑回应..”时有效。
006,00002,1234567890,此卡尚未开户\,余额信息不存在,10,0,1
要让设备显示逗号用“\,”表示。
显示换行用“\n”表示。
用C++语言编程需要用“\\,”“\\n”。
如果需要将某些字用反白显示,请用“{”和“}”来括起来。
扣款成功
008,
机号,
卡号,
消费额,
信息,
显示延时(秒),
蜂鸣器发声种类(见表3),
语音种类(见表4)
扣款成功时,电脑向终端发送的显示及声响信息,此信息仅在设备刷卡后显示“正在等待电脑回应..”时有效。
008,00002,1234567890,5.50,姓名扣费成功\n余额12256.60元\n,10,1,1
要让设备显示逗号用“\,”表示。
显示换行用“\n”表示。
用C++语言编程需要用“\\,”“\\n”。
如果需要将某些字用反白显示,请用“{”和“}”来括起来。
显示及声响信息
009,
机号,
信息,
显示延时(秒),
蜂鸣器发声种类(见表3),
语音种类(见表4)
电脑发送,
用于驱动终端设备显示信息及声响。
009,00002,显示信息,10,1,1
要让设备显示逗号用“\,”表示。
显示换行用“\n”表示。
用C++语言编程需要用“\\,”“\\n”。
如果需要将某些字用反白显示,请用“{”和“}”来括起来。
声响信息
010,
机号,
蜂鸣器发声种类(见表3),
语音种类(见表4)
电脑发送,
用于驱动终端设备声响。
010,00002,1,1
清除记帐记录
011,
机号,
卡号,
消费额,
消费时间,
记录地址标识
清除一条记帐记录
011,00002,8888888888,5.50,2012-04-2011:
12:
13,12345678
更改设备管理员密码
012,
机号,
新密码(必须为数字)
更改设备管理员密码
012,00002,123456
取餐成功时显示及声响信息
013,
机号,
信息,
显示延时(秒),
蜂鸣器发声种类(见表3),
语音种类(见表4)
电脑发送,
用于驱动终端设备显示信息及声响。
013,00002,显示信息,10,1,1
响应读卡器的查询信息
014,
机号,
查询结果信息
电脑发送,响应读卡器的查询信息
014,00002,1234567890,
白名单顺序下传
015,
机号,
第0张卡卡号,..,第N张卡卡号(最多8张,最后一张卡号不需要逗号结束)
返回值请查看上表
顺序最大容量为16384张卡
随机下传
016,
机号,
第0张卡卡号,..,第N张卡卡号(最多8张,最后一张卡号不需要逗号结束)
返回值请查看上表
随机区最大容量为2048张卡
单个白名单删除
017,
机号,
第0张卡卡号,..,第N张卡卡号(最多8张,最后一张卡号不需要逗号结束)
返回值请查看上表
所有顺序区清空
018,
机号,
018-018:
:
018-018(这个固定常量用于防止网络误操作)
返回值请查看上表
顺序最大容量为16384张卡
所有随机区清空
019,
机号,
019-019:
:
019-019(这个固定常量用于防止网络误操作)
返回值请查看上表
随机区最大容量为2048张卡
查询卡号是否在白名单中
020,
机号,
卡号
返回值请查看上表
查卡白名单有效卡号数量
021,
机号
返回值请查看上表
向设备提取键盘信息
022,
机号,
信息模式(1为需要密码米字屏蔽方式输入,其他为不需要),
提示信息,
等待输入延时(秒),
蜂鸣器发声种类(见表3),
语音种类(见表4)
向读卡器申请键盘信息,如果键盘有输入,读卡器将向电脑发送106指令信息
驱动继电器
030,
机号,
030-030:
:
030-030(这个固定常量用于防止网络误操作),
继电器编号,
开或关,
开关保续时间(20毫秒),
继电器编号,
开或关,
开关保续时间(20毫秒),
......
继电器编号,
开或关,
开关保续时间(20毫秒)
机号:
为0表示操作机号的读卡器;
继电器编号:
为0表示操作所有继电器(如果同一条指令中有指定的继电器编号,则为无0的继电器编号操作无效);
开或关:
1为开0为关
发送打印信息至消费机
040,
机号,
打印信息
电脑发送,
用于驱动终端设备打印小票。
警示:
每次发送的打印信息,字符串长度不能超过200个字节,其中一个汉字为两个字节
040,00002,打印信息
用C++语言编程需要用“\\,”“\\n”。
打印逗号
\,
换行
\n
下划线
\U(0):
取消下划线
\U
(1):
一点宽下划线
\U
(2):
两点宽下划线
粗体字
\B(0):
正常
\B
(1):
加粗
字体
\T
(1):
1大字体
\T(0)小字体
切纸
\C(0)全切
\C
(1)半切
直接发送信息到小票打印机\S(XXXXXX)
其中X为十六进制数,X字符串长度最大只能为16
设定波特率
\L(4800):
设定为4800
\L(9600):
设定为9600
\L(19200):
设定为19200
\L(38400):
设定为38400
表3:
蜂鸣器声响表
0
不发声音
1
短嘀一声
2
短滴两声
3
短滴三声
4
长鸣一声
5
长鸣两声
6
长鸣三声
7
一长一短
8
一长两短
9
一长三短
10
两长一短
11
两长两短
12
两长三短
表4:
语音声响表
0
不发音
1
本次消费xx元
2
设备故障,请看屏幕提示
3
无效卡
4
非本单位卡
5
此卡类型不许可
6
此卡已挂失
7
卡已过期
8
余额不足
9
次数不足
10
密码错误
11
本餐累计消费已超出
12
当天累计消费已超出
13
本餐累计次数已超出
14
当天累计次数已超出
15
不允许在此时段刷卡
16
消费成功
17
消费失败
18
充值成功
19
充值失败
20
请重新刷卡
编程提示:
一、关于以逗号分隔取出字符串中各个子字符串的算法:
1、Delphi
strls:
string;
AStrings:
TStringList;
Strls:
=’子字符串1,子字符串2,子字符串3,子字符串4’;
AStrings:
=TStringList.Create;
ExtractStrings([','],[],Pchar(strls),AStrings);
//处理Astrings信息
//处理完后要释放
AStrings.Free;
2、Vfp
DIMENSION shuzuis(GETWORDCOUNT(cData,","))
thisform.str_split(",",cData,@shuzuis)
function str_split
LPARAMETERS cSepara,o_str,shuzuis
LOCAL i
FOR i=1 TO GETWORDCOUNT(o_str,cSepara)
shuzuis[i]=GETWORDNUM(o_str,i,",")
ENDFOR
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 以太网 实时 消费 通讯 协议