sentry_gimbal_hzz/modules/referee/referee_communication.h

92 lines
2.7 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* @file referee_communication.h
* @author kidneygood (you@domain.com)
* @version 0.1
* @date 2022-12-02
*
* @copyright Copyright (c) HNU YueLu EC 2022 all rights reserved
*
*/
#ifndef REFEREE_COMMUNICATION_H
#define REFEREE_COMMUNICATION_H
#include "stdint.h"
#include "referee_def.h"
#pragma pack(1)
//暂时放在这里
/***************交互数据********************/
/*
0x0301 机器人间交互数据,发送方触发发送,上限 10Hz
己方机器人间通信与UI绘制共用同一个cmd_id
根据数据段内容ID的不同区分
*/
/* 交互数据接收信息0x0301 */
typedef struct
{
uint16_t data_cmd_id;
uint16_t send_ID;
uint16_t receiver_ID;
} ext_student_interactive_header_data_t;
/*
客户端 客户端自定义数据cmd_id:0x0301。内容 ID:0xD180
发送频率:上限 10Hz
1. 客户端 客户端自定义数据cmd_id:0x0301。内容 ID:0xD180。发送频率上限 10Hz
字节偏移量 大小 说明 备注
0 2 数据的内容 ID 0xD180
2 2 送者的 ID 需要校验发送者机器人的 ID 正确性
4 2 客户端的 ID 只能为发送者机器人对应的客户端
6 4 自定义浮点数据 1
10 4 自定义浮点数据 2
14 4 自定义浮点数据 3
18 1 自定义 8 位数据 4
*/
typedef struct
{
float data1;
float data2;
float data3;
uint8_t masks;
} client_custom_data_t;
/*
学生机器人间通信 cmd_id 0x0301内容 ID:0x0200~0x02FF
交互数据 机器人间通信0x0301。
发送频率:上限 10Hz
*/
typedef struct
{
uint8_t data[10]; // 数据段,n需要小于113
} robot_interactive_data_t;
// 发送给客户端的信息
//交互数据包括一个统一的数据段头结构。数据段包含了内容 ID发送者以及接收者的 ID 和内容数据段,
// 整个交互数据的包总共长最大为 128 个字节,减去 frame_header,cmd_id 和 frame_tail 共 9 个字节以及
// 数据段头结构的 6 个字节,故而发送的内容数据段最大为 113。
// 帧头 命令码 数据段头结构 数据段 帧尾
typedef struct
{
xFrameHeader txFrameHeader; // 帧头
uint16_t CmdID; // 命令码
ext_student_interactive_header_data_t dataFrameHeader; // 数据段头结构
client_custom_data_t clientData; // 数据段
uint16_t FrameTail; // 帧尾
} ext_SendClientData_t;
// 机器人交互信息
typedef struct
{
xFrameHeader txFrameHeader; // 帧头
uint16_t CmdID; // 命令码
ext_student_interactive_header_data_t dataFrameHeader; // 数据段头结构
robot_interactive_data_t interactData; // 数据段
uint16_t FrameTail; // 帧尾
} ext_CommunatianData_t;
#pragma pack()
#endif