灯光类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. 控制器状态设置 / 控制器状态信息 控制器状态设置 发送方 接收方 C A N 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都有不同颜色 控制器状态设置 发送方 接收方 C A N 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. 呼吸模式设置 / 设置成功 呼吸模式是所有灯以一种颜色渐变 呼吸模式设置 发送方 接收方 C A N 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 /