通过USB(虚拟UART)的协议

本章的整洁、易读HTML版本。

本页是《接口与协议》中“通过USB(虚拟UART)的协议”一章的HTML版本。如有不清楚之处,请打开 本章的原始PDF(第56-85页)(中文) (左上角也有固定链接)。总览: 全部章节.

用于数据流输出的“Marvelmind”协议

所有在 相应章节 (UART部分)中描述的数据包,也均可通过USB(虚拟UART)获取。

注意:这些数据同样适用于Mini-TX,以及未配“UART Cable for Mini-Rx”的Mini-RX。

Marvelmind设备收到任何请求时,数据流将中断5秒。相关请求见 该协议.

用户设备数据读写协议

所有在 相应章节 (UART部分)中描述的数据包,也均可通过USB(虚拟UART)获取。

注意:这些数据同样适用于Mini-TX,以及未配“UART Cable for Mini-Rx”的Mini-RX。

NMEA0183通信协议

所有在 相应章节 (UART部分)中描述的数据包,也均可通过USB(虚拟UART)获取。

注意:这些数据同样适用于Mini-TX,以及未配“UART Cable for Mini-Rx”的Mini-RX。

Marvelmind设备收到任何请求时,数据流将中断5秒。相关请求见 该协议.

通过USB接口与调制解调器交换数据的协议

Dashboard软件以及下一章介绍的Marvelmind API均使用此协议。

调制解调器作为CDC类USB设备连接到USB主机(Windows下为虚拟COM端口,Linux下为ttyUSB或ttyACM)。

由于该接口并未使用真正的RS-232,主机上设置的串口参数(波特率、数据位数、校验等)可任意设置

数据为二进制格式

通过USB连接的设备的“网络地址”为 0xff

多字节数从低字节开始传输(小端格式)

读取最新坐标包(固件V5.13+)

支持的硬件:

Super-Beacon:不支持

Industrial Super-Beacon:不支持

Modem HW5.1:支持

Super-Modem:支持

Mini-RX(胸牌、头盔等):不支持

Mini-TX:不支持

Mini-TX-2:不支持

Modem HW4.9:支持

Beacon HW4.9:不支持

Beacon HW4.5:不支持

请求帧格式(主机发往调制解调器)

偏移量

大小(字节)

类型

说明

值

0

1

uint8_t

调制解调器地址

0xff

1

1

uint8_t

数据包类型

0x03

2

2

uint16_t

数据包中的数据代码

0x4110

4

2

uint16_t

访问模式

0x0000

6

2

uint16_t

CRC-16(见附录1)

0xc004

应答帧格式(调制解调器发往主机)

偏移量

大小(字节)

类型

说明

值

0

1

uint8_t

调制解调器地址

0xff

1

1

uint8_t

数据包类型

0x03

2

1

uint8_t

传输的数据字节数

0x64

3

100 (0x64)

100字节

数据结构(见下文)

103

2

uint16_t

CRC-16(见附录1)

错误应答的格式见附录2。

数据字段格式(100字节)

偏移量

大小(字节)

说明

0

96 (6*16)

调制解调器最近收到的6个坐标结构(见下文)

96

1

标志字节:

位0…1:保留

位2:1 = 有用户数据(见第12节)

位3…7:保留

97

3

保留

坐标结构格式(16字节)

偏移量

大小(字节)

说明

0

1

设备地址

1

4

X坐标,毫米(int32_t)

5

4

Y坐标,毫米(int32_t)

9

4

Z坐标,毫米(int32_t)

13

1

标志字节:

位0:1 – 无有效坐标(Dashboard中显示为红色模式)

位1:1 – 冻结地图上的临时移动信标(蓝色模式)

位2:1 – 该信标用于移动信标定位

14

2

保留(0)

读取/写入调制解调器配置 - 读取调制解调器配置(固件V5.30+)

支持的硬件:

Super-Beacon:不支持

Industrial Super-Beacon:不支持

Modem HW5.1:支持

Super-Modem:支持

Mini-RX(胸牌、头盔等):不支持

Mini-TX:不支持

Mini-TX-2:不支持

Modem HW4.9:支持

Beacon HW4.9:不支持

Beacon HW4.5:不支持

请求帧格式(主机发往调制解调器)

偏移量

大小(字节)

类型

说明

值

0

1

uint8_t

调制解调器地址

0xff

1

1

uint8_t

数据包类型

0x03

2

2

uint16_t

数据包中的数据代码

0x5000

4

2

uint16_t

访问模式

0x0000

6

2

uint16_t

CRC-16(见附录1)

0x0550

应答帧格式(调制解调器发往主机)

偏移量

大小(字节)

类型

说明

值

0

1

uint8_t

调制解调器地址

0xff

1

1

uint8_t

数据包类型

0x03

2

1

uint8_t

传输的数据字节数

0x30

3

0x30

结构

数据结构(见下文)

0x33

2

uint16_t

CRC-16(见附录1)

错误应答的格式见附录2。

写入调制解调器配置

警告!写入调制解调器配置时,必须先读取配置,设置下一节所述的数据字段,然后再写入。不要更改结构中的其他任何字节,否则可能影响调制解调器的工作

请求帧格式(主机发往调制解调器)

偏移量

大小(字节)

类型

说明

值

0

1

uint8_t

调制解调器地址

0xff

1

1

uint8_t

数据包类型

0x10

2

2

uint16_t

数据包中的数据代码

0x5000

4

2

uint16_t

访问模式

0x0000

6

1

uint8_t

传输的数据字节数

0x30

7

0x30

结构

数据结构(见下文)

0x37

2

uint16_t

CRC-16(见附录1)

应答帧格式(调制解调器发往主机)

偏移量

大小(字节)

类型

说明

值

0

1

uint8_t

调制解调器地址

0xff

1

1

uint8_t

数据包类型

0x10

2

2

uint16_t

数据代码

0x5000

4

2

uint16_t

保留

6

2

uint16_t

CRC-16(见附录1)

错误应答的格式见附录2。

调制解调器配置数据结构

数据结构中的许多字段未作说明。请勿更改这些字段!它们用于通过Dashboard程序调整系统;擅自更改可能影响调制解调器的工作

偏移量

大小(字节)

类型

说明

0

20

20字节

未说明

20

1

int8_t

空气温度设置值Vt(有符号)。

温度 =(Vt+23)°C

21

1

uint8_t

在地图中坐标应为X=0, Y=0的信标地址

22

4

4字节

未说明

26

1

uint8_t

在地图中坐标应为X>0, Y=0的信标地址

27

1

uint8_t

在地图中坐标应满足Y>0的信标地址

28

1

uint8_t

控制标志:

位0:未说明

位1:1 – 启用移动信标运动滤波

位2:未说明

位3:1 – 高分辨率模式(以毫米而非厘米输出坐标)

位4:未说明

位5:1 = 镜像整个地图

位6:1 = 省电模式(仅当所有子地图都已冻结时省电模式才生效)

位7:未说明

29

2

2字节

未说明

31

1

uint8_t

N,决定获取移动信标坐标的最大频率

F(N)= 2^(N-1) Hz,N= 0…4,

F(5)= 12 Hz,F(6)= 16 Hz,F(7)= 16+(最大)

32

16

16字节

未说明

读取/写入子地图配置

支持的硬件:

Super-Beacon:不支持

Industrial Super-Beacon:不支持

Modem HW5.1:支持

Super-Modem:支持

Mini-RX(胸牌、头盔等):不支持

Mini-TX:不支持

Mini-TX-2:不支持

Modem HW4.9:支持

Beacon HW4.9:不支持

Beacon HW4.5:不支持

读取子地图配置(固件V5.30+)

请求帧格式(主机发往调制解调器)

偏移量

大小(字节)

类型

说明

值

0

1

uint8_t

调制解调器地址

0xff

1

1

uint8_t

数据包类型

0x03

2

2

uint16_t

数据包中的数据代码

0x60XX,其中XX为子地图编号

4

2

uint16_t

访问模式

0x0000

6

2

uint16_t

CRC-16(见附录1)

应答帧格式(调制解调器发往主机)

偏移量

大小(字节)

类型

说明

值

0

1

uint8_t

调制解调器地址

0xff

1

1

uint8_t

数据包类型

0x03

2

1

uint8_t

传输的数据字节数

0x50 (80)

3

80

结构

数据结构(见下文)

83

2

uint16_t

CRC-16(见附录1)

错误应答的格式见附录2。

写入子地图配置(固件V5.30+)

警告!写入子地图配置时,必须先读取配置,设置下一节所述的数据字段,然后再写入。不要更改结构中的其他任何字节,否则可能影响调制解调器的工作

请求帧格式(主机发往调制解调器)

偏移量

大小(字节)

类型

说明

值

0

1

uint8_t

调制解调器地址

0xff

1

1

uint8_t

数据包类型

0x10

2

2

uint16_t

数据包中的数据代码

0x60XX,其中XX为子地图编号

4

2

uint16_t

访问模式

0x0000

6

1

uint8_t

传输的数据字节数

0x50 (80)

7

80

结构

数据结构(见下文)

87

2

uint16_t

CRC-16(见附录1)

应答帧格式(调制解调器发往主机)

偏移量

大小(字节)

类型

说明

值

0

1

uint8_t

调制解调器地址

0xff

1

1

uint8_t

数据包类型

0x10

2

2

uint16_t

数据代码

0x5000

4

2

uint16_t

保留

6

2

uint16_t

CRC-16(见附录1)

错误应答的格式见附录2。

子地图配置数据结构

数据结构中的许多字段未作说明。请勿更改这些字段!它们用于通过Dashboard程序调整系统;擅自更改可能影响调制解调器的工作

偏移量

大小(字节)

类型

说明

0

1

uint8_t

构建子地图的起始信标地址

1

1

uint8_t

控制字:

位0:1 – 子地图已冻结(冻结子地图)

位1:1 – 固定信标高于移动信标

位2…4:未说明

位5:1 – 镜像子地图

位6…7:未说明

2

1

uint8_t

距离限制:

位0…6:手动距离限制值(当位7 = 1时)

位7:0 – 自动限制,1 = 手动

3

13

13字节

未说明

16

2

int16_t

子地图X方向偏移,厘米

18

2

int16_t

子地图Y方向偏移,厘米

20

2

uint16_t

子地图旋转角度,单位0.01度

22

58

58字节

未说明

设备休眠/唤醒

支持的硬件:

Super-Beacon:不支持

Industrial Super-Beacon:不支持

Modem HW5.1:支持

Super-Modem:支持

Mini-RX(胸牌、头盔等):不支持

Mini-TX:不支持

Mini-TX-2:不支持

Modem HW4.9:支持

Beacon HW4.9:不支持

Beacon HW4.5:不支持

请求帧格式(主机发往调制解调器)

偏移量

大小(字节)

类型

说明

值

0

1

uint8_t

设备地址

0x01…0xfe

1

1

uint8_t

数据包类型

0x10

2

2

uint16_t

数据包中的数据代码

0xb006

4

2

uint16_t

访问模式

唤醒:0x0002

其他:0x0001

6

1

uint8_t

传输的数据字节数

0x08

7

1

uint8_t

密码,字节0

0x2d

8

1

uint8_t

密码,字节1

0x94

9

1

uint8_t

密码,字节2

0x5e

10

1

uint8_t

密码,字节3

0x81

11

1

uint8_t

命令:

0 – 标准休眠

1 – 深度休眠(仅硬件复位可唤醒)

2 – 从标准休眠中唤醒

3…255 – 保留

0…2

12

3

3字节

保留

15

2

uint16_t

CRC-16(见附录1)

唤醒命令的应答帧格式(调制解调器发往主机)

偏移量

大小(字节)

类型

说明

值

0

1

uint8_t

设备地址

0x01…0xfe

1

1

uint8_t

数据包类型

0x10

2

2

uint16_t

数据代码

0xb006

4

2

uint16_t

保留

6

2

uint16_t

CRC-16(见附录)

休眠命令的应答帧格式(调制解调器发往主机)

偏移量

大小(字节)

类型

说明

值

0

1

uint8_t

设备地址

0x01…0xfe

1

1

uint8_t

数据包类型(调制解调器应答)

0x7f

2

2

uint16_t

数据代码

0xb006

4

2

uint16_t

保留

6

2

uint16_t

字节0…5的CRC-16(见附录1)

8

1

uint8_t

设备地址

0x01…0xfe

9

1

uint8_t

数据包类型

0x10

10

2

uint16_t

数据代码

0xb006

12

2

uint16_t

保留

14

2

uint16_t

字节8…13的CRC-16(见附录)

错误应答的格式见附录2。

设置设备地址

支持的硬件:

Super-Beacon:不支持

Industrial Super-Beacon:不支持

Modem HW5.1:支持

Super-Modem:支持

Mini-RX(胸牌、头盔等):不支持

Mini-TX:不支持

Mini-TX-2:不支持

Modem HW4.9:支持

Beacon HW4.9:不支持

Beacon HW4.5:不支持

请求帧格式(主机发往调制解调器)

偏移量

大小(字节)

类型

说明

值

0

1

uint8_t

设备地址

0x01…0xfe

1

1

uint8_t

数据包类型

0x10

2

2

uint16_t

数据包中的数据代码

0x0101

4

2

uint16_t

访问模式

0x0000

6

1

uint8_t

传输的数据字节数

0x02

7

1

uint8_t

数据项代码(地址)

0x00

8

1

uint8_t

设备新地址

9

2

uint16_t

CRC-16(见附录1)

读取测得的原始距离

支持的硬件:

Super-Beacon:不支持

Industrial Super-Beacon:不支持

Modem HW5.1:支持

Super-Modem:支持

Mini-RX(胸牌、头盔等):不支持

Mini-TX:不支持

Mini-TX-2:不支持

Modem HW4.9:支持

Beacon HW4.9:不支持

Beacon HW4.5:不支持

此命令有两种使用模式:

  • 数据代码0x4000:读取最近8个距离。应答帧包含截至请求时刻最近测得的8个距离
  • 数据代码0x4001:逐帧读取全部距离。每次后续请求的应答帧包含接下来的8个已保存的测量距离。整个距离表传输完毕后,从头开始

请求帧格式(主机发往调制解调器)

偏移量

大小(字节)

类型

说明

值

0

1

uint8_t

调制解调器地址

0xff

1

1

uint8_t

数据包类型

0x03

2

2

uint16_t

数据包中的数据代码

0x4000或

0x4001

4

2

uint16_t

访问模式

0x0000

6

2

uint16_t

CRC-16(见附录1)

应答帧格式(调制解调器发往主机)

偏移量

大小(字节)

类型

说明

值

0

1

uint8_t

调制解调器地址

0xff

1

1

uint8_t

数据包类型

0x03

2

1

uint8_t

传输的数据字节数

0x28

3

40 (0x28)

40字节

数据结构(见下文)

43

2

uint16_t

CRC-16(见附录1)

错误应答的格式见附录2。

数据字段格式(40字节)

偏移量

大小(字节)

说明

0

32 (8*4)

8个原始距离结构(见下文)

32

8

保留

距离结构格式(4字节)

偏移量

大小(字节)

说明

0

1

超声波接收器地址

1

1

超声波发射器地址

2

2

设备间测得的距离,毫米(uint16_t)

读取信标状态(固件V5.33+)

支持的硬件:

Super-Beacon:不支持

Industrial Super-Beacon:不支持

Modem HW5.1:支持

Super-Modem:支持

Mini-RX(胸牌、头盔等):不支持

Mini-TX:不支持

Mini-TX-2:不支持

Modem HW4.9:支持

Beacon HW4.9:不支持

Beacon HW4.5:不支持

请求帧格式(主机发往调制解调器)

偏移量

大小(字节)

类型

说明

值

0

1

uint8_t

设备地址

0x01…0xfe

1

1

uint8_t

数据包类型

0x03

2

2

uint16_t

数据包中的数据代码

0x0003

4

2

uint16_t

访问模式

0x0002

6

2

uint16_t

CRC-16(见附录1)

应答帧格式(调制解调器发往主机)

偏移量

大小(字节)

类型

说明

值

0

1

uint8_t

设备地址

0x01…0xfe

1

1

uint8_t

数据包类型

0x03

2

1

uint8_t

传输的数据字节数

0x20

3

32

32字节

数据结构(见下文)

35

2

uint16_t

CRC-16(见附录1)

错误应答的格式见附录2。

数据字段格式:

偏移量

大小(字节)

类型

说明

0

4

uint32_t

自复位或唤醒起的工作时间(秒)

4

1

uint8_t

R,无线电RSSI寄存器值(接收信号强度指示)。

若R>128,RSSI(dBm)= ( (R-256)/2) – 74

若R<=128,RSSI(dBm)= (R/2) – 74

5

1

uint8_t

未说明

6

1

int8_t

测得的温度Vt(有符号)。温度 =(Vt+23)°C

7

2

uint16_t

位0…11:电源电压,毫伏

位12…13:未说明

位14:1:电量低,设备将在短时间后进入休眠

位15:1:电量极低,设备将在短时间后进入深度休眠

9

23

23字节

未说明

Marvelmind机器人控制命令

支持的硬件:

Super-Beacon:不支持

Industrial Super-Beacon:不支持

Modem HW5.1:支持

Super-Modem:支持

Mini-RX(胸牌、头盔等):不支持

Mini-TX:不支持

Mini-TX-2:不支持

Modem HW4.9:支持

Beacon HW4.9:不支持

Beacon HW4.5:不支持

机器人控制命令

请求帧格式(主机发往调制解调器)

偏移量

大小(字节)

类型

说明

值

0

1

uint8_t

机器人地址

0x01…0xfe

1

1

uint8_t

数据包类型

0x10

2

2

uint16_t

数据包中的数据代码

0x1000

4

2

uint16_t

访问模式

0x0001

6

1

uint8_t

传输的数据字节数

0x10

7

16(0x10)字节

uint8_t

机器人控制数据(见下文)

23

2

uint16_t

CRC-16(见附录1)

应答帧格式(调制解调器发往主机)

偏移量

大小(字节)

类型

说明

值

0

1

uint8_t

调制解调器地址

0xff

1

1

uint8_t

数据包类型(调制解调器应答)

0x7f

2

2

uint16_t

数据代码

0x1000

4

2

uint16_t

保留

6

2

uint16_t

字节0…5的CRC-16(见附录1)

8

1

uint8_t

机器人地址

0x01…0xfe

9

1

uint8_t

数据包类型(机器人应答)

0x10

10

2

uint16_t

数据代码

0x1000

12

2

uint16_t

保留

14

2

uint16_t

字节8…13的CRC-16(见附录1)

错误应答的格式见附录2。

机器人控制数据格式:

偏移量

大小(字节)

类型

说明

0

1

uint8_t

控制模式:

0 – 无控制(等待模式)

1 – 电机功率控制

2 – 速度控制

3 – 写入运动程序

4 – 暂停运动程序

5 – 暂停后继续运动

1

1

uint8_t

操作代码:

0 – 前进

1 – 后退

2 – 顺时针旋转

3 – 逆时针旋转

4 – 暂停指定时间(模式3)

5 – 从头重复运动程序(模式3)

6 – 按坐标移动到指定点(模式3)

7 – 设置运动速度(模式3)

2

1

uint8_t

控制字节1:

模式1:电机功率,%

模式2:运动速度,%

模式3:程序步骤编号(从0开始)

3

2

Int16_t

程序数据(模式3):

操作代码0或1:运动距离,厘米

操作代码2或3:旋转角度,度

操作代码4:暂停时间,毫秒

操作代码6:运动目标X坐标,厘米

操作代码7:运动速度,%

5

1

uint8_t

模式3:程序的总步骤数。

6

2

int16_t

程序附加数据(模式3):

操作代码6:运动目标Y坐标,厘米

8

2

int16_t

操作代码6:运动目标Z坐标,厘米

10

6

6字节

保留(0)

关于这一复杂命令的几点说明。

机器人控制结构的字节0指定了三种主要的机器人控制模式:

  • 功率控制(模式1)
  • 速度控制(模式2)
  • 按程序运动(模式3)

模式1和模式2通常用于测试。在模式1下,机器人以选定的电机功率前进、后退、左转或右转。在模式2下,机器人执行同样的动作,但会调节功率以保持选定的速度。功率或速度在结构的字节2中设置,运动类型在字节1中设置。

模式4和模式5是特殊命令,用于在程序执行过程中暂停运动,以及在暂停后继续运动。

沿复杂轨迹运动的主要模式是模式3。

它允许为机器人编写一系列基本动作,这些动作组合起来构成轨迹。序列中的每一项都应通过一条此类命令发送。每条命令应在机器人控制结构的字节2中包含当前步骤编号,在字节5中包含总步骤数。

机器人控制结构的字节1指定基本运动的类型。基本运动的参数在“程序数据”(字节3…4)和“程序附加数据”(字节6…7)字段中指定。

因此,可用的基本动作如下:

  • 前进指定距离;
  • 后退指定距离;
  • 顺时针旋转指定角度;
  • 逆时针旋转指定角度;
  • 暂停指定时间;
  • 从首项重新开始运动程序(用于循环运动);
  • 移动到Marvelmind导航系统坐标中的指定点(X, Y);
  • 改变运动速度。

机器人收到基本动作序列后开始执行程序,程序执行完毕后停止。但如果程序中包含操作代码为5(从头重复)的项,程序将无限循环执行,直到收到停止命令或上传新程序。

停止机器人

请求帧格式(主机发往调制解调器)

偏移量

大小(字节)

类型

说明

值

0

1

uint8_t

机器人地址

0x01…0xfe

1

1

uint8_t

数据包类型

0x10

2

2

uint16_t

数据包中的数据代码

0x403

4

2

uint16_t

访问模式

0x0001

6

1

uint8_t

传输的数据字节数

0x04

7

4字节

4字节

保留(0)

0

11

2

uint16_t

CRC-16(见附录1)

应答帧格式(调制解调器发往主机)

偏移量

大小(字节)

类型

说明

值

0

1

uint8_t

调制解调器地址

0xff

1

1

uint8_t

数据包类型(调制解调器应答)

0x7f

2

2

uint16_t

数据代码

0x403

4

2

uint16_t

保留

6

2

uint16_t

字节0…5的CRC-16(见附录1)

8

1

uint8_t

机器人地址

0x01…0xfe

9

1

uint8_t

数据包类型(机器人应答)

0x10

10

2

uint16_t

数据代码

0x403

12

2

uint16_t

保留

14

2

uint16_t

字节8…13的CRC-16(见附录1)

错误应答的格式见附录2。

此命令直接终止任何机器人运动或运动程序的执行。机器人停止并等待新命令。

读取/写入设备控制设置(固件V6.01+)

支持的硬件:

Super-Beacon:不支持

Industrial Super-Beacon:不支持

Modem HW5.1:支持

Super-Modem:支持

Mini-RX(胸牌、头盔等):不支持

Mini-TX:不支持

Mini-TX-2:不支持

Modem HW4.9:支持

Beacon HW4.9:不支持

Beacon HW4.5:不支持

读取设备控制设置

请求帧格式(主机发往调制解调器)

偏移量

大小(字节)

类型

说明

值

0

1

uint8_t

设备地址(信标/调制解调器)

0x01…0xfe或0xff

1

1

uint8_t

数据包类型

0x03

2

2

uint16_t

数据包中的数据代码

0x1201

4

2

uint16_t

访问模式

0x0001

6

2

uint16_t

CRC-16(见附录1)

应答帧格式(调制解调器发往主机)

偏移量

大小(字节)

类型

说明

值

0

1

uint8_t

调制解调器地址

0xff

1

1

uint8_t

数据包类型

请求发往调制解调器时为0x03

请求发往信标时为0x7f

2

1

uint8_t

传输的数据字节数

0x10

3

16

结构

数据结构(见第9.3节)。

仅当请求发往调制解调器(0xff)时有效

11

2

uint16_t

字节0…10的CRC-16(见附录1)

如果请求发往信标,将收到以下数据

13

1

uint8_t

设备地址

0x01…0xfe

14

1

uint8_t

数据包类型

0x03

15

1

uint8_t

传输的数据字节数

0x08/0x10

16

16

结构

数据结构(见下文)。

32

2

uint16_t

字节12…22的CRC-16(见附录1)

错误应答的格式见附录2。

写入设备控制设置

请求帧格式(主机发往调制解调器)

偏移量

大小(字节)

类型

说明

值

0

1

uint8_t

设备地址(信标/调制解调器)

0x01…0xfe或0xff

1

1

uint8_t

数据包类型

0x10

2

2

uint16_t

数据包中的数据代码

0x1201

4

2

uint16_t

访问模式

0x0001

6

1

uint8_t

传输的数据字节数

0x10

7

16

结构

数据结构(见下文)

23

2

uint16_t

CRC-16(见附录1)

应答帧格式(调制解调器发往主机)

偏移量

大小(字节)

类型

说明

值

0

1

uint8_t

调制解调器地址

0xff

1

1

uint8_t

数据包类型

请求发往调制解调器时为0x03

请求发往信标时为0x7f

2

2

uint16_t

数据代码

0x1201

4

2

uint16_t

保留

6

2

uint16_t

字节0…5的CRC-16(见附录1)

如果请求发往信标(地址0x01…0xfe),将收到以下数据

8

1

uint8_t

设备地址

0x01…0xfe

9

1

uint8_t

数据包类型

0x10

10

2

uint16_t

数据代码

0x1201

12

2

uint16_t

保留

14

2

uint16_t

字节8…13的CRC-16(见附录1)

错误应答的格式见附录2。

控制设置有效载荷数据格式

偏移量

大小(字节)

类型

说明

0

1

uint8_t

标志:

位0…5:未说明,必须始终为0!

位6:0 – 固定信标模式,1 – 移动信标模式

位7:保留(0)

1

1

uint8_t

UART波特率设置:

0:500000 bps(默认值)

1:4800 bps

2:9600 bps

3:19200 bps

4:38400 bps

5:57600 bps

6:115200 bps

7…255:保留

2

1

uint8_t

保留(0)

3

1

uint8_t

位0…3:无线电配置:

0:38.4 kbps

1:150 kbps

2:500 kbps

3…7:保留

位4…6:无线电频段:

0:433 MHz

1:868 MHz

2:915 MHz

3:315 MHz

4…7:保留

位7:保留

4

1

uint8_t

UART/USB输出类型:

0:Marvelmind协议

1:NMEA0183

5

1

uint8_t

NMEA0183模式下发送的NMEA帧掩码:

位0:1 – 发送$GPRMC帧

位1:1 – 发送$GPGGA帧

位2:1 – 发送$GPVTG帧

位3:1 – 发送$GPZDA帧

位4…7:保留(0)

6

1

uint8_t

由该移动信标发送到调制解调器的用户有效载荷数据字节数(0…32)

7

1

uint8_t

“IMU via modem”模式下发送到调制解调器的IMU数据掩码:

位0:IMU融合位置

位1:四元数

位2:速度

位3:加速度

位4:加速度计原始数据

位5:陀螺仪原始数据

位6:罗盘原始数据

位7:0 = 发送IMU融合数据,1 = 发送IMU原始数据

8

1

uint8_t

位0…6:遥测数据输出间隔(0 = 不输出)

位7:保留(0)

9

1

uint8_t

位0:使用IMU计算速度

位1…7 – 保留(0)

10

6

6字节

保留(0)

警告! 如果更改通过无线电连接的信标的无线电配置,无线电连接将会中断。如需切换配置,请先逐个切换所有信标的无线电配置,然后再切换调制解调器的无线电配置。几秒钟后,所有信标应可在新的无线电配置下连接。

读取网络中的设备列表(固件V6.01+)

支持的硬件:

Super-Beacon:不支持

Industrial Super-Beacon:不支持

Modem HW5.1:支持

Super-Modem:支持

Mini-RX(胸牌、头盔等):不支持

Mini-TX:不支持

Mini-TX-2:不支持

Modem HW4.9:支持

Beacon HW4.9:不支持

Beacon HW4.5:不支持

请求帧格式(主机发往调制解调器)

偏移量

大小(字节)

类型

说明

值

0

1

uint8_t

调制解调器地址

0xff

1

1

uint8_t

数据包类型

0x03

2

2

uint16_t

数据包中的数据代码

0x31xx,其中xx为设备组编号

4

2

uint16_t

访问模式

0x0000

6

2

uint16_t

CRC-16(见附录1)

应答帧格式(调制解调器发往主机)

偏移量

大小(字节)

类型

说明

值

0

1

uint8_t

调制解调器地址

0xff

1

1

uint8_t

数据包类型

0x03

2

1

uint8_t

传输的数据字节数

0x72

3

1

uint8_t

网络中的设备总数(K)

4

112

112字节

0…16个网络设备信息结构,说明见下文

116

1

uint8_t

保留

0x00

117

2

uint16_t

CRC-16(见附录1)

错误应答的格式见附录2。

网络设备数据格式(7字节)

偏移量

大小(字节)

说明

0

1

设备地址(0x01…0xfe)

1

1

固件主版本号

2

1

固件次版本号

3

1

位0…5:设备类型:

10:轮式机器人

12:履带式机器人

22:Beacon HW V4.5

23:Beacon HW V4.5(移动信标模式)

24:调制解调器(HW V4.5/4.9)

30:Beacon HW V4.9

31:Beacon HW V4.9(移动信标模式)

32:Mini-RX信标

36:Mini TX信标(HW V5.07)

37:Industrial-TX信标

41:Industrial-RX信标

42:Super-Beacon

43:Super-Beacon(移动信标模式)

44:Industrial Super-Beacon

45:Industrial Super-Beacon(移动信标模式)

位6:1 – 存在多个使用此地址的设备

位7:1 – 休眠模式

4

1

固件第二次版本号

读取固件版本

支持的硬件:

Super-Beacon:支持

Industrial Super-Beacon:支持

Modem HW5.1:支持

Super-Modem:支持

Mini-RX(胸牌、头盔等):支持

Mini-TX:支持

Mini-TX-2:支持

Modem HW4.9:支持

Beacon HW4.9:支持

Beacon HW4.5:支持

请求帧格式(主机发往调制解调器)

偏移量

大小(字节)

类型

说明

值

0

1

uint8_t

设备地址

0xff

1

1

uint8_t

数据包类型

0x03

2

2

uint16_t

数据包中的数据代码

0xfe00

4

2

uint16_t

访问模式

0x0000

6

2

uint16_t

CRC-16(见附录1)

应答帧格式(调制解调器发往主机)

偏移量

大小(字节)

类型

说明

值

0

1

uint8_t

调制解调器地址

0xff

1

1

uint8_t

数据包类型

0x03

2

1

uint8_t

传输的数据字节数

0x08

3

1

uint8_t

固件次版本号

4

1

uint8_t

固件主版本号

5

3

3字节

保留

8

1

uint8_t

设备类型ID

9

2

uint16_t

保留

11

2

uint16_t

CRC-16(见附录1)

错误应答的格式见附录2。

读取用户数据

支持的硬件:

Super-Beacon:不支持

Industrial Super-Beacon:不支持

Modem HW5.1:支持

Super-Modem:支持

Mini-RX(胸牌、头盔等):不支持

Mini-TX:不支持

Mini-TX-2:不支持

Modem HW4.9:支持

Beacon HW4.9:不支持

Beacon HW4.5:不支持

请求帧格式(主机发往调制解调器)

偏移量

大小(字节)

类型

说明

值

0

1

uint8_t

调制解调器地址

0xff

1

1

uint8_t

数据包类型

0x03

2

2

uint16_t

数据包中的数据代码

0x0004

4

2

uint16_t

访问模式

0x0000

6

2

uint16_t

CRC-16(见附录1)

应答帧格式(调制解调器发往主机)

偏移量

大小(字节)

类型

说明

值

0

1

uint8_t

调制解调器地址

0xff

1

1

uint8_t

数据包类型

0x03

2

1

uint8_t

传输的数据字节数

0x84

3

1

uint8_t

用户数据总大小

4

3

3字节

保留(0)

7

128

uint8_t

来自移动信标的用户数据

135

2

uint16_t

CRC-16(见附录1)

错误应答的格式见附录2。

来自移动信标的用户数据是一系列记录,结构如下:

偏移量

大小(字节)

类型

说明

值

0

1

uint8_t

移动信标地址

H

1

1

uint8_t

来自移动信标的用户数据字节数

M

2

M

uint8_t

来自移动信标H的M字节数据

写入手动设定的设备位置

支持的硬件:

Super-Beacon:不支持

Industrial Super-Beacon:不支持

Modem HW5.1:支持

Super-Modem:支持

Mini-RX(胸牌、头盔等):不支持

Mini-TX:不支持

Mini-TX-2:不支持

Modem HW4.9:支持

Beacon HW4.9:不支持

Beacon HW4.5:不支持

请求帧格式(主机发往调制解调器)

偏移量

大小(字节)

类型

说明

值

0

1

uint8_t

信标地址

0x01…0xfe

1

1

uint8_t

数据包类型

0x10

2

2

uint16_t

数据包中的数据代码

0x5003

4

2

uint16_t

访问模式

0x0002

6

1

uint8_t

传输的数据字节数

0x20

7

32

结构

数据结构(见下文)

39

2

uint16_t

CRC-16(见附录1)

应答帧格式(调制解调器发往主机)

偏移量

大小(字节)

类型

说明

值

0

1

uint8_t

调制解调器地址

0xff

1

1

uint8_t

数据包类型

0x10

2

2

uint16_t

数据代码

0x5003

4

2

uint16_t

保留

6

2

uint16_t

CRC-16(见附录1)

错误应答的格式见附录2。

数据结构格式:

偏移量

大小(字节)

类型

说明

值

0

4

int32_t

X坐标,毫米

4

4

int32_t

Y坐标,毫米

8

4

int32_t

Z坐标,毫米

12

1

uint8_t

未说明

0xff

13

4

int32_t

未说明

0

17

4

int32_t

未说明

0

21

4

int32_t

未说明

0

25

1

uint8_t

未说明

0x02

26

6

6字节

保留

0

写入手动设定的信标间距离

支持的硬件:

Super-Beacon:不支持

Industrial Super-Beacon:不支持

Modem HW5.1:支持

Super-Modem:支持

Mini-RX(胸牌、头盔等):不支持

Mini-TX:不支持

Mini-TX-2:不支持

Modem HW4.9:支持

Beacon HW4.9:不支持

Beacon HW4.5:不支持

请求帧格式(主机发往调制解调器)

偏移量

大小(字节)

类型

说明

值

0

1

uint8_t

调制解调器地址

0xff

1

1

uint8_t

数据包类型

0x10

2

2

uint16_t

数据包中的数据代码

0x4003

4

2

uint16_t

访问模式

0x0000

6

1

uint8_t

传输的数据字节数

0x10

7

16

结构

数据结构(见下文)

23

2

uint16_t

CRC-16(见附录1)

应答帧格式(调制解调器发往主机)

偏移量

大小(字节)

类型

说明

值

0

1

uint8_t

调制解调器地址

0xff

1

1

uint8_t

数据包类型

0x10

2

2

uint16_t

数据代码

0x4003

4

2

uint16_t

保留

6

2

uint16_t

CRC-16(见附录1)

错误应答的格式见附录2。

数据结构格式:

偏移量

大小(字节)

类型

说明

值

0

1

uint8_t

第一个信标的地址

1

1

uint8_t

第二个信标的地址

2

4

uint32_t

信标间距离,毫米

6

10

10字节

保留

0

返回顶部