chore: 导入 Simba-OmniInfantry 基线(云台/底盘双工程)
- 云台(ROBOT_TYPE_GIMBAL)与底盘(ROBOT_TYPE_CHASSIS)完整固件源码 - 新增根级 .gitignore,排除 Keil MDK-ARM 构建产物(.o/.d/.crf/.axf/.lnp/.map/.htm/.sct/.dep/.iex/.lst 等) 与 *.uvguix.* / DebugConfig/(与机器绑定的 UI 布局) - core.autocrlf=false,避免固件源码在检出时被改动换行符
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
#ifndef REFEREE_H
|
||||
#define REFEREE_H
|
||||
|
||||
#include <stdint.h>
|
||||
#include <string.h>
|
||||
|
||||
/* 裁判系统协议解析(0x0201 机器人状态 / 0x0202 实时功率 / 0x0304 自定义控制器)
|
||||
* CRC 校验与字段偏移和 legacy RefereeSystem 模块保持一致 */
|
||||
|
||||
typedef struct
|
||||
{
|
||||
uint8_t robot_id; // 机器人 ID(无裁判系统时为 0,4 号步兵为 4/104)
|
||||
uint8_t shooter_power_on; // 发射机构上电状态(0x0201)
|
||||
uint16_t chassis_power_limit; // 底盘功率上限(W)
|
||||
float chassis_power; // 底盘实时功率(W)
|
||||
float buffer_energy; // 底盘缓冲能量(J)
|
||||
uint8_t link_status; // 收到过有效帧置 1,掉线检测配合 last_update_tick
|
||||
uint32_t last_update_tick;
|
||||
} referee_data_t;
|
||||
|
||||
extern referee_data_t referee;
|
||||
|
||||
/* 流式解析一个字节(中断上下文调用;把串口收到的每个字节依次喂进来) */
|
||||
extern void referee_parse_byte(uint8_t byte);
|
||||
|
||||
/* 批量喂入(usart 整帧回调里循环调用 referee_parse_byte 即可,此函数为便捷封装) */
|
||||
extern void referee_parse_bytes(const uint8_t * data, uint16_t len);
|
||||
|
||||
/* 0x0304(自定义控制器)数据回调,在中断上下文执行 */
|
||||
typedef void (*referee_keyboard_hook_f)(const uint8_t data[12]);
|
||||
extern void referee_set_keyboard_hook(referee_keyboard_hook_f hook);
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user