网络抓娃娃机,云凡游艺娃娃机串口协议,对接线上抓娃娃机

抓娃娃机串口通信协议(初稿)



网络抓娃娃技术解决方案, 云凡游艺技术流程解析

[if !supportLists]一、[endif]文档说明:

此文档用于PC主机(以下简称“上位机”)与抓娃娃机控制板(以下简称“下位机”)之间串口通信协议说明。

串口使用RS232标准进行通信,波特率:9600,校验位:无;数据位:8

协议使用“请求/应答”模式完成通讯任务;

输出:特指从“上位机”到“下位机”的数据传输;

输入:特指从“下位机”到“上位机”的数据传输;

校验:数据累加和方式。

数据长度:未特殊说明数据长度均为1个字节。

[if !supportLists]二、[endif]协议格式:

上位机到下位机指令格式:

数据1:开始码(0x8A)

数据2:数据长度,表示该次通讯字节个数(不包括开始码)

数据3:指令ID

数据4:指令类型

数据5:指令数据

数据6:校验位,存储指令数据累加和(数据2+数据3+数据4+。。。。数据7之累加和,不包括开始码,只保留8位)

数据7:结束码(0x55)

下位机到上位机指令格式:

数据1:开始码(0x8A)

数据2:数据长度,该次通讯字节个数(不包括开始码)

数据3:指令ID

数据4:指令类型

数据5:游戏局数数据

数据6:运行状态数据

数据7:礼物感应状态

数据8:指令数据累加和(数据2+数据3+数据4+。。。。数据8之累加和,不包括开始码,只保留8位)

数据9:结束码(0x55)

指令ID说明:

01:连接到下位机

02:游戏开始

03:向左移动抓机

04:向右移动抓机

05:向前移动抓机

06:向后移动抓机

07:停止移动抓机

08:执行抓取动作

09:悬空收拢抓机

0A:悬空张开抓机

0B:下位机发送状态

0C:上位机请求当前状态

0D:下位机发送错误码

指令类型说明:

01:上位机发送到下位机的指令

02:下位机对上位机指令的应答指令

03:下位机发送到上位机的指令

04:上位机对下位机指令的应答指令

超时异常:

1000ms

[if !supportLists]三、[endif]协议指令格式说明:

[if !supportLists]1、[endif]连接到下位机(指令ID01

开始码数据长度指令ID指令类型指令数据校验位结束码

8A030101无0555

示例:下位机接收到8A0301010555表示请求上位机连接到下位机

下位机应答:

开始码数据长度指令ID指令类型指令数据校验位结束码

8A0A01027位ID

(F4 06 01 55 70 62 05)

3455

示例:上位机接收到8A 0A 01 02 F4 06 01 55 70 62 05 34 55表示与下位机连接功,其中7位数据(F4 06 01 55 70 62 05)为下位机唯一码。

[if !supportLists]2、[endif]游戏开始(指令ID02

开始码数据长度指令ID指令类型指令数据校验位结束码

8A030201无0655

示例:下位机接收到8A 03 02 01 06 55表示开始游戏,启动游戏倒计时

下位机应答

开始码数据长度指令ID指令类型指令数据校验位结束码

8A030202无0755

示例:上位机接收到8A 03 02 02 07 55表示游戏开始成功,已开始倒计时

[if !supportLists]3、[endif]向左移动机械抓(指令ID03

开始码数据长度指令ID指令类型指令数据校验位结束码

8A030301无0755

示例:8A03 03 01 07 55

下位机应答:

开始码数据长度指令ID指令类型指令数据校验位结束码

8A030302无0855

示例:8A03 03 02 08 55

[if !supportLists]4、[endif]向右移动机械抓(指令ID04

开始码数据长度指令ID指令类型指令数据校验位结束码

8A030401无0855

示例:8A03 04 01 08 55

下位机应答:

开始码数据长度指令ID指令类型指令数据校验位结束码

8A030402无0955

示例:8A03 04 02 09 55

[if !supportLists]5、[endif]向前移动机械抓(指令ID05

开始码数据长度指令ID指令类型指令数据校验位结束码

8A030501无0955

示例:8A03 05 01 09 55

下位机应答:

开始码数据长度指令ID指令类型指令数据校验位结束码

8A030502无0A55

示例:8A03 05 02 0A 55

[if !supportLists]6、[endif]向后移动机械抓(指令ID06

开始码数据长度指令ID指令类型指令数据校验位结束码

8A030601无0A55

示例:8A03 06 01 0A 55

下位机应答:

开始码数据长度指令ID指令类型指令数据校验位结束码

8A030602无0B55

示例:8A03 06 02 0B 55

[if !supportLists]7、[endif]停止移动机械抓(指令ID07

开始码数据长度指令ID指令类型指令数据校验位结束码

8A030701无0B55

示例:8A03 07 01 0B 55

下位机应答:

开始码数据长度指令ID指令类型指令数据校验位结束码

8A030702无0C55

示例:8A03 07 02 0C 55

[if !supportLists]8、[endif]机械抓执行抓取(指令ID08

开始码数据长度指令ID指令类型指令数据校验位结束码

8A040801抓力累加和55

示例:8A04 08 01 C8D5 55表示要求机械抓执行抓力为C8(200)的抓取动作

如果抓力数据为FF表示本次抓取的抓力为机器的内部默认值

抓力:0-200之间的整数,数值越大抓力越大

下位机应答:

开始码数据长度指令ID指令类型指令数据校验位结束码

8A030802无0D55

示例:8A03 08 02 0D 55

[if !supportLists]9、[endif]悬空收拢机械抓(指令ID09

开始码数据长度指令ID指令类型指令数据校验位结束码

8A040901抓力0D55

示例:8A04 09 01 A0 AE 55表示要求抓机执行抓力为160(A0)的悬空抓取动作

抓力:0-200之间的整数,数值越大抓力越大

下位机应答:

开始码数据长度指令ID指令类型指令数据校验位结束码

8A030902无0E55

示例:8A03 09 02 0E 55

[if !supportLists]10、[endif]悬空张开机械抓(指令ID0A

开始码数据长度指令ID指令类型指令数据校验位结束码

8A030A01无0E55

示例:8A03 0A 01 0E 55

下位机应答:

开始码数据长度指令ID指令类型指令数据校验位结束码

8A030A02无0F55

示例:8A03 0A 02 0F 55

[if !supportLists]11、[endif]下位机发送状态数据(指令ID0B

开始码长度ID类型局数状态礼物校验结束码

8A060B03

局数:

03表示还能进行3次游戏;

00表示不可以进行游戏,需要投币

状态:

00等待游戏开始

01游戏开始

02爪子开始向下移动下抓

03爪子到达下抓限定位置

04爪子开始上移

05爪子到达上限定位置,并向礼品出口移动

06爪子到达礼品出口,并松爪

礼物:

[if !supportLists]00[endif]没有抓到礼品

[if !supportLists]01[endif]抓到一次礼品

示例:8A

06 0B 03 05 01 00 1A 55表示下位机向上位机发送了一次状态数据,告诉上位机还可以进行5次游戏,当前游戏已开始,没有抓到礼品。

上位机应答

开始码数据长度指令ID指令类型指令数据校验位结束码

8A030B04无1255

示例:

[if !supportLists]12、[endif]上位机请求当前状态(指令ID0C

开始码数据长度指令ID指令类型指令数据校验位结束码

8A030C01无1055

示例:8A 03 0C 01 10 55表示上位机向下位机请求状态信息

下位机应答:

开始码长度ID类型局数状态礼物校验结束码

8A060C0255

局数,状态,礼物数据参照“下位机发送状态数据”。

[if !supportLists]13、[endif]下位机发送错误码(指令ID0D

开始码长度ID类型错误码校验结束码

8A040D0355

示例:8A04 0D 03 01 14 55表示下位机告诉上位机发生了编码为01的错误。

[if !supportLists]14、[endif]上位机发送币数(指令ID0F

开始码数据长度指令ID指令类型指令数据校验位结束码

8A040F0101(币数)1555

下位机应答:

开始码数据长度指令ID指令类型指令数据校验位结束码

8A040F0201(接收到的币数)1655

备注:上位机通知设备支付的金额。举例说明:上位机先发送支

付命令,如果设备三秒内没收到设备的应答,视为这次的支付失

败,

错误码:(请电子工程师补充)

错误码:

00正常状态

01前限位故障

[if !supportLists]02[endif]后限位故障

03左限位故障

04右限位限位故障

05上限位故障

06下限位故障

07赠送错误

08爪子过热

09光眼故障

[if !supportLists]四、[endif]通讯机制

下位机在状态(局数,状态,礼物)改变时主动向上位机发送状态数据;

下位机在发生错误时主动向上位机发送错误码;

其它指令均由上位机向下位机主动发出,下位机只做应答。

添加设置查询命令

[if !supportLists]一、[endif]基础数据设置命令:(由上位机发送到控制板)

例子:8A 13 10 01 01 01

00 01 01 01 14 02 0A 00 01 01 01 01 01 01 4F 55

命令字节数据说明数据取值范围

8A开始码固定为8A

13该次通讯字节个数不包括开始码共19个字节

10指令ID固定为10

01指令类型固定为1

01语言取值范围(0-1)0为英文,1为中文

01广告音乐开关取值范围(0-1)0音乐无,1音乐有

00广告音乐间隔时间取值范围(0-30)当广告音乐开关为1有效

01币数取值范围(1-10)币数设置

01局数取值范围(1-10)局数设置

01币数保留取值范围(0-1)0关机不保留,1关机保留

14游戏时间取值范围(5-60)

02游戏模式取值范围(1-6)

0A出奖概率取值范围(1-250)

00礼品出口位置取值范围(0-1)0左后角,1左前角

01空中抓物取值范围(0-1)0为关,1为开

01背景音乐

01游戏音乐

01光眼电平取值范围(0-1)0为常开,1为常闭

01摇晃清分取值范围(0-1)

01保留取值范围(0-1)

4F累加和从通讯字节个数到赠送票币数量所有字节的累加和

55结束码

下位机基础数据如果设置成功,下位机返回命令:

8A 04 10 02 01 17 55

8A是开始码,04数据个数,10指令ID,02指令类型,01数据表示设置成功,17是累加和。

下位机如果设置失败,控制板返回命令:

8A 04 10 02 00 16 55

8A是开始码,04数据个数,10指令ID,02指令类型,00数据表示设置失败,16是累加和。

[if !supportLists]二、[endif]爪力电压设置命令:(由上位机发送到控制板)

例子:8A 13 11 01 01 0E 00 41 00 41 010E 08 08 00 0C 02 01 00 01 E5 55

命令字节数据说明数据取值范围

8A开始码固定为8A

13该次通讯字节个数不包括开始码共19个字节

11指令ID固定为11

01指令类型固定为1

01强爪电压高八位取值范围十进制(130-475),由高八位和低八位组合,010E十进制为270即27V

0E强爪电压低八位

00弱爪电压高八位取值范围十进制(20-200),由高八位和低八位组合,0041十进制为65即6.5V

41弱爪电压低八位

00弱抓后电压高八位取值范围十进制(20-400),由高八位和低八位组合,0041十进制为65即6.5V

41弱抓后电压低八位

01中奖电压高八位取值范围十进制(45-480),由高八位和低八位组合,010E十进制为270即27V

0E中奖电压低八位

08强力维持时间取值范围(1-30)08表示0.8秒

08弱力维持时间取值范围(1-30)08表示0.8秒

00强变弱方式取值范围(0-1)0强爪时间后变弱抓1碰到微动后变弱抓

0C放线长度时间取值范围(5-100)0C表示1.2秒

02收爪速度取值范围(0-20)

01上升延时取值范围(1-30)

00掉落延时比例取值范围(0-99)

01掉落延时时间取值范围(1-30)

E5累加和13+ 11+  01 +01 +0E +00 +41 +00 +41+ 01 +0E +08+ 08 +00 +0C+ 02+ 00 +00 +01

55结束码

下位机爪力如果设置成功,控制板返回命令:

8A 04 11 02 01 18 55

8A是开始码,04数据个数,11指令ID,02指令类型,01数据表示设置成功,18是累加和。

下位机如果设置失败,控制板返回命令:

8A 04 11 02 00 17 55

8A是开始码,04数据个数,11指令ID,02指令类型,,00数据表示设置失败,17是累加和。

[if !supportLists]三、[endif]马达速度设置命令:(由上位机发送到控制板)

例子:8A 06 12 01 02 02 02 1F 55

命令字节数据说明数据取值范围

8A开始码固定为8A

06该次通讯字节个数不包括开始码共6个字节

12指令ID固定为12

01指令类型固定为1

02前后马达速度取值范围(1-10)

02左右马达速度取值范围(1-10)

02上下马达速度取值范围(1-10)

1F累加和06+12+ 01+ 02+ 02+ 02

55结束码

下位机速度如果设置成功,控制板返回命令:

8A 04 12 02 01 19 55

8A是开始码,04数据个数,12指令ID,02指令类型,01数据表示设置成功,19是累加和。

下位机如果设置失败,控制板返回命令:

8A 04 12 02 00 18 55

8A是开始码,04数据个数,12指令ID,02指令类型,00数据表示设置失败,18是累加和。

[if !supportLists]四、[endif]资料清除命令:(由上位机发送到控制板)

例子:8A 06 13 01 00 00 00 1A 55

命令字节数据说明数据取值范围

8A开始码固定为8A

06该次通讯字节个数不包括开始码共7个字节

13指令ID固定为13

01指令类型固定为01

00帐目清除取值范围(0-1)0为不清除,1为清除

00当前局数清除取值范围(0-1)0为不清除,1为清除

00概率结算清除取值范围(0-1)0为不清除,1为清除

1A累加和07+ 02+ 04 +00+ 00 +00

55结束码

下位机资料清除如果成功,控制板返回命令:

8A 04 13 02 01 1A 55

8A是开始码,04数据个数,13指令ID,02指令类型,01数据表示设置成功,1A是累加和。

下位机如果清除失败,控制板返回命令:

8A 04 13 02 00 19 55

8A是开始码,04数据个数,13指令ID,02指令类型,00数据表示设置失败,19是累加和。

[if !supportLists]五、[endif]恢复工厂设置和免费模式命令:(由上位机发送到控制板)

例子:8A 05 14 01 00 00 1A 55

命令字节数据说明数值取值范围

8A开始码固定为8A

05该次通讯字节个数不包括开始码共6个字节

14指令ID固定为14

01指令类型固定为01

00免费游戏字节取值范围(0-1)0正常模式,1免费模式

00恢复设置字节取值范围(0-1)0保持原有设置,1恢复工厂设置

1A累加和05 +14+ 01+ 00+ 00

55结束码

下位机恢复工厂设置命令如果设置成功,控制板返回命令:

8A 04 14 02 01 1B 55

8A是开始码,04数据个数,14指令ID,02指令类型,01数据表示设置成功,1B是累加和。

下位机恢复工厂设置命令如果设置失败,控制板返回命令:

8A 04 14 02 00 1A 55

8A是开始码,04数据个数,14指令ID,02指令类型,00数据表示设置失败,1A是累加和。

[if !supportLists]六、[endif]查账命令:(由上位机发送到控制板)

例子:8A 03 15 01 19 55

命令字节数据说明数值取值范围

8A开始码固定为8A

03该次通讯字节个数不包括开始码共4个字节

15指令ID固定为15

01指令类型固定为01

19累加和03 +15+ 01

55结束码

下位机返回数据如下。

例子:8A 17 15 02 00 00 01 02 00 00 0001 00 00 00 00 00 00 00 00 00 00 00 03 35 55

命令字节数据说明数值取值范围

8A开始码固定为8A

17该次通讯字节个数不包括开始码共23个字节

15指令ID固定为15

02指令类型固定为02

00总投币记录最高位总投币记录为32位无符号数据,00000102十进制为258,表示总共投了258个币。

00总投币记录高位

01总投币记录次高位

02总投币记录低位

00出礼品记录最高位礼品记录为32位无符号数据,00000001十进制为1,表示总共出了一个礼品。

00出礼品记录高位

00出礼品记录次高位

01出礼品记录低位

00本次投币记录最高位记录为32位无符号数据,

00本次投币记录高位

00本次投币记录次高位

00本次投币记录低位

00本次出礼品记录最高位记录为32位无符号数据,

00本次出礼品记录次高位

00本次出礼品记录高位

00本次出礼品记录低位

00概率结算最高位概率结算为32位有符号数据。概率结算=概率内入币–概率内出礼品*出奖概率

00概率结算高位

00概率结算次高位

03概率结算低位

35累加和

55结束码

[if !supportLists]七、[endif]查询当前基础数据:(由上位机发送到控制板)

示例:8A 03 16 01 1A 55

命令字节数据说明数据取值范围

8A开始码固定为8A

03该次通讯字节个数不包括开始码共4个字节

16指令ID固定为16

01指令类型固定为01

1A累加和03 +16+ 01

55结束码

下位机返回命令示例:

例子:8A 13 16 02 01 01

00 01 01 01 14 02 0A 00 01 01 01 01 01 01 56 55

命令字节数据说明数据取值范围

8A开始码固定为8A

13该次通讯字节个数不包括开始码共19个字节

16指令ID固定为16

02指令类型固定为2

01语言取值范围(0-1)0为英文,1为中文

01广告音乐开关取值范围(0-1)0音乐无,1音乐有

00广告音乐间隔时间取值范围(0-30)当广告音乐开关为1有效

01币数取值范围(1-10)币数设置

01局数取值范围(1-10)局数设置

01币数保留取值范围(0-1)0关机不保留,1关机保留

14游戏时间取值范围(5-60)

02游戏模式取值范围(1-6)

0A出奖概率取值范围(1-250)

00礼品出口位置取值范围(0-1)0左后角,1左前角

01空中抓物取值范围(0-1)0为关,1为开

01背景音乐

01游戏音乐

01光眼电平取值范围(0-1)0为常开,1为常闭

01摇晃清分取值范围(0-1)

01保留取值范围(0-1)

56累加和从通讯字节个数到赠送票币数量所有字节的累加和

55结束码

[if !supportLists]八、[endif]查询爪力电压命令:(由上位机发送到控制板)

示例:8A 03 17 01 1B 55

命令字节数据说明数据取值范围

8A开始码固定为8A

03该次通讯字节个数不包括开始码共3个字节

17指令ID固定为17

01指令类型固定为01

1B累加和03 +17+ 01

55结束码

下位机返回命令示例:

例子:8A 13 17 02 01 0E 00 41 00 41 010E 08 08 00 0C 02 00 00 01 EB 55

命令字节数据说明数据取值范围

8A开始码固定为8A

13该次通讯字节个数不包括开始码共19个字节

17指令ID固定为17

02指令类型固定为2

01强爪电压高八位取值范围十进制(130-475),由高八位和低八位组合,010E十进制为270即27V

0E强爪电压低八位

00弱爪电压高八位取值范围十进制(20-200),由高八位和低八位组合,0041十进制为65即6.5V

41弱爪电压低八位

00弱抓后电压高八位取值范围十进制(20-400),由高八位和低八位组合,0041十进制为65即6.5V

41弱抓后电压低八位

01中奖电压高八位取值范围十进制(45-480),由高八位和低八位组合,010E十进制为270即27V

0E中奖电压低八位

08强力维持时间取值范围(1-30)08表示0.8秒

08弱力维持时间取值范围(1-30)08表示0.8秒

00强变弱方式取值范围(0-1)0强爪时间后变弱抓1碰到微动后变弱抓

0C放线长度时间取值范围(5-100)0C表示1.2秒

02收爪速度取值范围(0-20)

00上升延时取值范围(1-30)

00掉落延时比例取值范围(0-99)

01掉落延时时间取值范围(1-30)

EB累加和13+ 17+  02 +01+ 0E +00+ 41 +01 +0E +08+ 08 +0C+ 02 +00+ 00 +01

55结束码

[if !supportLists]九、[endif]查询马达速度命令:

示例:8A 03 18 01 1C 55

命令字节数据说明数据取值范围

8A开始码固定为8A

03该次通讯字节个数不包括开始码共3个字节

18指令ID固定为18

01指令类型固定为01

1C累加和03 +18+ 01

55结束码

下位机返回命令示例:

8A 06 18 02 02 02 02 25 55

命令字节数据说明数据取值范围

8A开始码固定为8A

06该次通讯字节个数不包括开始码共6个字节

18指令ID固定为18

02指令类型固定为02

02前后马达速度取值范围(1-10)

02左右马达速度取值范围(1-10)

02上下马达速度取值范围(1-10)

26累加和06 +18+ 02+ 02+ 02+ 02

55结束码

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,390评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,821评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,632评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,170评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,033评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,098评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,511评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,204评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,479评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,572评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,341评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,893评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,171评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,486评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,676评论 2 335

推荐阅读更多精彩内容