跳转到主要内容

灯光类CAN协议标准

为了更好的兼容不同设备,我们规范了CAN协议的标准,使得同类型不同型号设备能无缝切换,自动被ROS识别并直接使用,方便更换硬件时候的软件移植工作。以下为灯光使用的专用CAN协议。

请先确保阅读了CAN协议构架说明再开始以下内容

请注意使用设备CANID替换表中XX部分

灯光类设备的大类ID为 04

灯光控制器指令总表

指令集

 

反馈集

重要性

说明

设备对象

命令内容

大类

( 00~1F)

型号

(00~FF)

编号

( 00~FF)

功能

( 00~FF)

 

大类

(00~1F)

型号

(00~FF)

编号

(00~FF)

功能

(00~FF)

反馈内容

周期性

灯光控制器

控制器状态设置

04

xx

xx

11

 

04

xx

xx

B1

控制器状态信息

周期反馈

必备

 

单点灯光状态设置

04

xx

xx

12

 

/

/

/

/

/

/

必备

 

呼吸模式设置

04

xx

xx

13

 

04

xx

xx

B3

设置成功

单次反馈

必备



1. 控制器状态设置 / 控制器状态信息

控制器状态设置

发送方

接收方

CAN ID

数据长度

周期(ms

外部

本设备

0x 04 XX XX 11

3

/

数据位

功能

数据类型

说明

byte[0]

工作模式

unsigned int8

查看工作模式表

byte[1]

亮度倍率

unsigned int8

1~100(最大亮度百分比,用于总控)

byte[2]

灯光数量

unsigned int8

控制的灯光LED数量

byte[3~7]

/

/

/

控制器状态信息

发送方

接收方

CAN ID

数据长度

周期(ms)

本设备

外部

0x 04 XX XX B1

8

500

数据位

功能

数据类型

说明

byte[0]

工作模式

unsigned int8

查看工作模式表

byte[1]

亮度倍率

unsigned int8

1~100

byte[2]

灯光数量

unsigned int8

控制的灯光LED数量

byte[3~7]

/

/

/

触碰开关表

说明

byte[0]

0x00

待机模式(蓝色呼吸灯)

0x01

警报模式(红色快闪)

0x02

单点控制

0x03

呼吸模式

举例: 型号0x02 编号0x03 的灯光使用警报模式 100亮度 50个led,发送CANID:0x04 02 03 11 数据:01 64 32 。 

发送实例

传输目标

CAN ID

帧格式

帧类型

数据长度

数据位(L->H)

设备

0x04 02 03 11

数据帧

扩展帧

3

01 64 32

上位机

0x04 02 03 B1

数据帧

扩展帧

3

01 64 32


2. 单点灯光状态设置

用于单一LED的控制,可以每个LED都有不同颜色

控制器状态设置

发送方

接收方

CAN ID

数据长度

周期(ms

外部

本设备

0x 04 XX XX 12

8

/

数据位

功能

数据类型

说明

byte[0]

灯光ID

unsigned int8

ID从1开始,0为空

byte[1]

R值

unsigned int8

RGB的R值

byte[2]

G值

unsignedint8

RGB的G值

byte[3]

B值

unsigned int8

RGB的B值

byte[4]

灯光ID

unsigned int8

ID从1开始,0为空

byte[5]

R值

unsigned int8

RGB的R值

byte[6]

G值

unsignedint8

RGB的G值

byte[7]

B值

unsigned int8

RGB的B值

每次至多设置两个LED,可以连续发送,单个LED可以设置另一个ID为0

需要工作模式为单点控制才有效

举例: 型号0x02 编号0x03 的灯光设置第一个LED 白色,发送CANID:0x04 02 03 12 数据:01 FF FF FF 00 00 00 00 

发送实例

传输目标

CAN ID

帧格式

帧类型

数据长度

数据位(L->H)

设备

0x04 02 03 12

数据帧

扩展帧

8

01 FF FF FF 00 00 00 00

上位机

/

/

/

/

/


3. 呼吸模式设置 / 设置成功

呼吸模式是所有灯以一种颜色渐变

呼吸模式设置

发送方

接收方

CAN ID

数据长度

周期(ms

外部

本设备

0x 04 XX XX 13

4

/

数据位

功能

数据类型

说明

byte[0]

呼吸周期

unsigned int8

单位:S

byte[1]

R值

unsigned int8

RGB的R值

byte[2]

G值

unsigned int8

RGB的G值

byte[3]

B值

unsigned int8

RGB的B值

byte[4~7]

/

/

/

设置成功

发送方

接收方

CAN ID

数据长度

周期(ms)

本设备

外部

0x 04 XX XX B3

0

/

数据位

功能

数据类型

说明

byte[0~7]

/

/

/

需要工作模式为呼吸模式才有效

举例: 型号0x02 编号0x03 的灯光设置LED 白色1s呼吸,发送CANID:0x04 02 03 13 数据:01 64 32 。 

发送实例

传输目标

CAN ID

帧格式

帧类型

数据长度

数据位(L->H)

设备

0x04 02 03 13

数据帧

扩展帧

4

01 FF FF FF 

上位机

0x04 02 03 B3

数据帧

扩展帧

0

/