diff --git a/HAL_N_Middlewares/Src/main.c b/HAL_N_Middlewares/Src/main.c index b89d655..13aa79d 100644 --- a/HAL_N_Middlewares/Src/main.c +++ b/HAL_N_Middlewares/Src/main.c @@ -33,6 +33,10 @@ /* Private includes ----------------------------------------------------------*/ /* USER CODE BEGIN Includes */ #include "robot.h" +////////////////////////////////////////////////// +#include "referee_UI.h" +#include "referee.h" +////////////////////////////////////////////////// /* USER CODE END Includes */ /* Private typedef -----------------------------------------------------------*/ @@ -113,6 +117,15 @@ int main(void) RobotInit(); + +////////////////////////////////////////////////// + // Graph_Data shoot_line; + UI_Delete(UI_Data_Del_ALL,0); + // //绘制发射基准线 + // Line_Draw(&shoot_line,"s1",UI_Graph_ADD,7,UI_Color_White,3,710,540,1210,540); + // UI_ReFresh(1,shoot_line); +////////////////////////////////////////////////// + /* USER CODE END 2 */ /* Call init function for freertos objects (in freertos.c) */ diff --git a/application/chassis/chassis.c b/application/chassis/chassis.c index e30a9fe..55625a1 100644 --- a/application/chassis/chassis.c +++ b/application/chassis/chassis.c @@ -49,7 +49,7 @@ static DJIMotorInstance *motor_lb; static DJIMotorInstance *motor_rb; /* 用于自旋变速策略的时间变量,后续考虑查表加速 */ -static float t; +// static float t; /* 私有函数计算的中介变量,设为静态避免参数传递的开销 */ static float chassis_vx, chassis_vy; // 将云台系的速度投影到底盘 diff --git a/modules/referee/referee.c b/modules/referee/referee.c index 8cb685e..7cc9679 100644 --- a/modules/referee/referee.c +++ b/modules/referee/referee.c @@ -2,18 +2,46 @@ #include "string.h" #include "crc.h" #include "bsp_usart.h" -#include "dma.h" -// 参考深圳大学 Infantry_X-master #define RE_RX_BUFFER_SIZE 200 -static USARTInstance *referee_usart_instance; +USARTInstance *referee_usart_instance; //暂时改为非静态变量 -/**************裁判系统数据******************/ static referee_info_t referee_info; +static void JudgeReadData(uint8_t *ReadFromUsart); +static void RefereeRxCallback(); + // static uint8_t Judge_Self_ID; // 当前机器人的ID // static uint16_t Judge_SelfClient_ID; // 发送者机器人对应的客户端ID +/* 裁判系统通信初始化 */ +referee_info_t *RefereeInit(UART_HandleTypeDef *referee_usart_handle) +{ + USART_Init_Config_s conf; + conf.module_callback = RefereeRxCallback; + conf.usart_handle = referee_usart_handle; + conf.recv_buff_size = RE_RX_BUFFER_SIZE; + referee_usart_instance = USARTRegister(&conf); + return &referee_info; +} + + +/** + * @brief 发送函数 + * @param send 待发送数据 + */ +void RefereeSend(uint8_t *send,uint16_t tx_len) +{ + USARTSend(referee_usart_instance,send,tx_len); +} + + +/*裁判系统串口接收回调函数,解析数据 */ +static void RefereeRxCallback() +{ + JudgeReadData(referee_usart_instance->recv_buff); +} + /** * @brief 读取裁判数据,中断中读取保证速度 * @param ReadFromUsart: 读取到的裁判系统原始数据 @@ -103,23 +131,4 @@ static void JudgeReadData(uint8_t *ReadFromUsart) JudgeReadData(ReadFromUsart + sizeof(xFrameHeader) + LEN_CMDID + referee_info.FrameHeader.DataLength + LEN_TAIL); } } -} - -/** - * @brief 裁判系统串口接收回调函数,解析数据 - * - */ -static void RefereeRxCallback() -{ - JudgeReadData(referee_usart_instance->recv_buff); -} - -referee_info_t *RefereeInit(UART_HandleTypeDef *referee_usart_handle) -{ - USART_Init_Config_s conf; - conf.module_callback = RefereeRxCallback; - conf.usart_handle = referee_usart_handle; - conf.recv_buff_size = RE_RX_BUFFER_SIZE; - referee_usart_instance = USARTRegister(&conf); - return &referee_info; } \ No newline at end of file diff --git a/modules/referee/referee.h b/modules/referee/referee.h index 810db85..3ed201f 100644 --- a/modules/referee/referee.h +++ b/modules/referee/referee.h @@ -12,9 +12,10 @@ #ifndef REFEREE_H #define REFEREE_H -#include "bsp_usart.h" #include "usart.h" #include "referee_def.h" +#include "bsp_usart.h" + #define FALSE 0 #define TRUE 1 @@ -184,5 +185,13 @@ typedef struct */ referee_info_t* RefereeInit(UART_HandleTypeDef *referee_usart_handle); +/** + * @brief 发送函数 + * @todo + * @param send 待发送数据 + */ +void RefereeSend(uint8_t *send,uint16_t tx_len); + +extern USARTInstance *referee_usart_instance; #endif // !REFEREE_H diff --git a/modules/referee/referee_UI.c b/modules/referee/referee_UI.c index 2b4d68f..6fbf7c1 100644 --- a/modules/referee/referee_UI.c +++ b/modules/referee/referee_UI.c @@ -1,3 +1,513 @@ +#include "referee_UI.h" +#include "string.h" +#include "crc.h" +#include "bsp_usart.h" +#include "dma.h" +#include "stdio.h" +#include "referee.h" + +uint16_t Robot_ID = UI_Data_RobotID_BHero; +uint16_t Cilent_ID = UI_Data_CilentID_BHero; + +unsigned char UI_Seq; //包序号 +/****************************************串口驱动映射************************************/ +void UI_SendByte(unsigned char ch) +{ + HAL_UART_Transmit_DMA(&huart6,&ch,1); +} + +/********************************************删除操作************************************* +**参数:Del_Operate 对应头文件删除操作 + Del_Layer 要删除的层 取值0-9 +*****************************************************************************************/ +void UI_Delete(uint8_t Del_Operate,uint8_t Del_Layer) +{ + + unsigned char *framepoint; //读写指针 + uint16_t frametail=0xFFFF; //CRC16校验值 + + UI_Packhead framehead; //帧头 + UI_Data_Operate datahead; //数据交互帧 + UI_Data_Delete del; //删除图层帧 + + framepoint=(unsigned char *)&framehead; + + framehead.SOF=UI_SOF; + framehead.Data_Length=8; + framehead.Seq=UI_Seq; + framehead.CRC8=Get_CRC8_Check_Sum_UI(framepoint,4,0xFF); + framehead.CMD_ID=UI_CMD_Robo_Exchange; //填充包头数据 + + datahead.Data_ID=UI_Data_ID_Del; + datahead.Sender_ID=Robot_ID; + datahead.Receiver_ID=Cilent_ID; //填充操作数据 + + del.Delete_Operate=Del_Operate; + del.Layer=Del_Layer; //控制信息 + + frametail=Get_CRC16_Check_Sum_UI(framepoint,sizeof(framehead),frametail); + framepoint=(unsigned char *)&datahead; + frametail=Get_CRC16_Check_Sum_UI(framepoint,sizeof(datahead),frametail); + framepoint=(unsigned char *)&del; + frametail=Get_CRC16_Check_Sum_UI(framepoint,sizeof(del),frametail); //CRC16校验值计算 + + RefereeSend((uint8_t *)&framehead,sizeof(framehead)); + RefereeSend((uint8_t *)&datahead,sizeof(datahead)); + RefereeSend((uint8_t *)&del,sizeof(del)); //发送所有帧 + RefereeSend((uint8_t *)&frametail,sizeof(frametail)); //发送CRC16校验值 + + UI_Seq++; //包序号+1 +} +/************************************************绘制直线************************************************* +**参数:*image Graph_Data类型变量指针,用于存放图形数据 + imagename[3] 图片名称,用于标识更改 + Graph_Operate 图片操作,见头文件 + Graph_Layer 图层0-9 + Graph_Color 图形颜色 + Graph_Width 图形线宽 + Start_x、Start_y 开始坐标 + End_x、End_y 结束坐标 +**********************************************************************************************************/ + +void Line_Draw(Graph_Data *image,char imagename[3],uint32_t Graph_Operate,uint32_t Graph_Layer,uint32_t Graph_Color,uint32_t Graph_Width,uint32_t Start_x,uint32_t Start_y,uint32_t End_x,uint32_t End_y) +{ + int i; + for(i=0;i<3&&imagename[i]!='\0';i++) + image->graphic_name[2-i]=imagename[i]; + image->operate_tpye = Graph_Operate; + image->layer = Graph_Layer; + image->color = Graph_Color; + image->width = Graph_Width; + image->start_x = Start_x; + image->start_y = Start_y; + image->end_x = End_x; + image->end_y = End_y; +} + +/************************************************绘制矩形************************************************* +**参数:*image Graph_Data类型变量指针,用于存放图形数据 + imagename[3] 图片名称,用于标识更改 + Graph_Operate 图片操作,见头文件 + Graph_Layer 图层0-9 + Graph_Color 图形颜色 + Graph_Width 图形线宽 + Start_x、Start_y 开始坐标 + End_x、End_y 结束坐标(对顶角坐标) +**********************************************************************************************************/ + +void Rectangle_Draw(Graph_Data *image,char imagename[3],uint32_t Graph_Operate,uint32_t Graph_Layer,uint32_t Graph_Color,uint32_t Graph_Width,uint32_t Start_x,uint32_t Start_y,uint32_t End_x,uint32_t End_y) +{ + int i; + for(i=0;i<3&&imagename[i]!='\0';i++) + image->graphic_name[2-i]=imagename[i]; + image->graphic_tpye = UI_Graph_Rectangle; + image->operate_tpye = Graph_Operate; + image->layer = Graph_Layer; + image->color = Graph_Color; + image->width = Graph_Width; + image->start_x = Start_x; + image->start_y = Start_y; + image->end_x = End_x; + image->end_y = End_y; +} + +/************************************************绘制整圆************************************************* +**参数:*image Graph_Data类型变量指针,用于存放图形数据 + imagename[3] 图片名称,用于标识更改 + Graph_Operate 图片操作,见头文件 + Graph_Layer 图层0-9 + Graph_Color 图形颜色 + Graph_Width 图形线宽 + Start_x、Start_y 圆心坐标 + Graph_Radius 图形半径 +**********************************************************************************************************/ + +void Circle_Draw(Graph_Data *image,char imagename[3],uint32_t Graph_Operate,uint32_t Graph_Layer,uint32_t Graph_Color,uint32_t Graph_Width,uint32_t Start_x,uint32_t Start_y,uint32_t Graph_Radius) +{ + int i; + for(i=0;i<3&&imagename[i]!='\0';i++) + image->graphic_name[2-i]=imagename[i]; + image->graphic_tpye = UI_Graph_Circle; + image->operate_tpye = Graph_Operate; + image->layer = Graph_Layer; + image->color = Graph_Color; + image->width = Graph_Width; + image->start_x = Start_x; + image->start_y = Start_y; + image->radius = Graph_Radius; +} + +/************************************************绘制圆弧************************************************* +**参数:*image Graph_Data类型变量指针,用于存放图形数据 + imagename[3] 图片名称,用于标识更改 + Graph_Operate 图片操作,见头文件 + Graph_Layer 图层0-9 + Graph_Color 图形颜色 + Graph_StartAngle,Graph_EndAngle 开始,终止角度 + Graph_Width 图形线宽 + Start_y,Start_y 圆心坐标 + x_Length,y_Length x,y方向上轴长,参考椭圆 +**********************************************************************************************************/ + +void Arc_Draw(Graph_Data *image,char imagename[3],uint32_t Graph_Operate,uint32_t Graph_Layer,uint32_t Graph_Color,uint32_t Graph_StartAngle,uint32_t Graph_EndAngle,uint32_t Graph_Width,uint32_t Start_x,uint32_t Start_y,uint32_t x_Length,uint32_t y_Length) +{ + int i; + + for(i=0;i<3&&imagename[i]!='\0';i++) + image->graphic_name[2-i]=imagename[i]; + image->graphic_tpye = UI_Graph_Arc; + image->operate_tpye = Graph_Operate; + image->layer = Graph_Layer; + image->color = Graph_Color; + image->width = Graph_Width; + image->start_x = Start_x; + image->start_y = Start_y; + image->start_angle = Graph_StartAngle; + image->end_angle = Graph_EndAngle; + image->end_x = x_Length; + image->end_y = y_Length; +} + + + +/************************************************绘制浮点型数据************************************************* +**参数:*image Graph_Data类型变量指针,用于存放图形数据 + imagename[3] 图片名称,用于标识更改 + Graph_Operate 图片操作,见头文件 + Graph_Layer 图层0-9 + Graph_Color 图形颜色 + Graph_Size 字号 + Graph_Digit 小数位数 + Graph_Width 图形线宽 + Start_x、Start_y 开始坐标 + Graph_Float 要显示的浮点数数值*1000 +**********************************************************************************************************/ + +void Float_Draw(Float_Data *image,char imagename[3],uint32_t Graph_Operate,uint32_t Graph_Layer,uint32_t Graph_Color,uint32_t Graph_Size,uint32_t Graph_Digit,uint32_t Graph_Width,uint32_t Start_x,uint32_t Start_y,int32_t Graph_Float) +{ + int i; + for(i=0;i<3&&imagename[i]!='\0';i++) + image->graphic_name[2-i]=imagename[i]; + image->graphic_tpye = UI_Graph_Float; + image->operate_tpye = Graph_Operate; + image->layer = Graph_Layer; + image->color = Graph_Color; + image->width = Graph_Width; + image->start_x = Start_x; + image->start_y = Start_y; + image->start_angle = Graph_Size; + image->end_angle = Graph_Digit; + image->graph_Float = Graph_Float; +} + +/************************************************绘制字符型数据************************************************* +**参数:*image Graph_Data类型变量指针,用于存放图形数据 + imagename[3] 图片名称,用于标识更改 + Graph_Operate 图片操作,见头文件 + Graph_Layer 图层0-9 + Graph_Color 图形颜色 + Graph_Size 字号 + Graph_Width 图形线宽 + Start_x、Start_y 开始坐标 +**********************************************************************************************************/ + +void Char_Draw(String_Data *image,char imagename[3],uint32_t Graph_Operate,uint32_t Graph_Layer,uint32_t Graph_Color,uint32_t Graph_Size,uint32_t Graph_Width,uint32_t Start_x,uint32_t Start_y) +{ + int i; + for(i=0;i<3&&imagename[i]!='\0';i++) + image->Graph_Control.graphic_name[2-i]=imagename[i]; + image->Graph_Control.graphic_tpye = UI_Graph_Char; + image->Graph_Control.operate_tpye = Graph_Operate; + image->Graph_Control.layer = Graph_Layer; + image->Graph_Control.color = Graph_Color; + image->Graph_Control.width = Graph_Width; + image->Graph_Control.start_x = Start_x; + image->Graph_Control.start_y = Start_y; + image->Graph_Control.start_angle = Graph_Size; +} + +void Char_Write(String_Data *image,char* fmt, ...) +{ + uint16_t i = 0; + va_list ap; + va_start(ap, fmt); + vsprintf((char*)image->show_Data, fmt, ap); + va_end(ap); + i = strlen((const char*)image->show_Data); + image->Graph_Control.end_angle = i; +} + +/************************************************UI推送函数(使更改生效)********************************* +**参数: cnt 图形个数 + ... 图形变量参数 + + +Tips::该函数只能推送1,2,5,7个图形,其他数目协议未涉及 +**********************************************************************************************************/ +int UI_ReFresh(int cnt,...) +{ + int i,n; + Graph_Data imageData; + unsigned char *framepoint; //读写指针 + uint16_t frametail=0xFFFF; //CRC16校验值 + + UI_Packhead framehead; + UI_Data_Operate datahead; + + va_list ap; + va_start(ap,cnt); + + framepoint=(unsigned char *)&framehead; + framehead.SOF=UI_SOF; + framehead.Data_Length=6+cnt*15; + framehead.Seq=UI_Seq; + framehead.CRC8=Get_CRC8_Check_Sum_UI(framepoint,4,0xFF); + framehead.CMD_ID=UI_CMD_Robo_Exchange; //填充包头数据 + + switch(cnt) + { + case 1: + datahead.Data_ID=UI_Data_ID_Draw1; + break; + case 2: + datahead.Data_ID=UI_Data_ID_Draw2; + break; + case 5: + datahead.Data_ID=UI_Data_ID_Draw5; + break; + case 7: + datahead.Data_ID=UI_Data_ID_Draw7; + break; + default: + return (-1); + } + datahead.Sender_ID=Robot_ID; + datahead.Receiver_ID=Cilent_ID; //填充操作数据 + + framepoint=(unsigned char *)&framehead; + frametail=Get_CRC16_Check_Sum_UI(framepoint,sizeof(framehead),frametail); + framepoint=(unsigned char *)&datahead; + frametail=Get_CRC16_Check_Sum_UI(framepoint,sizeof(datahead),frametail); //CRC16校验值计算(部分) + + framepoint=(unsigned char *)&framehead; + for(i=0;i> 8) ^ wCRC_Table_UI[((uint16_t)(wCRC) ^ (uint16_t)(chData)) & + 0x00ff]; + } + return wCRC; +} + + + + + + + + + + + + + + + + + + + + + + + + + + + + // /** // * @brief 上传自定义数据 // * @param void @@ -8,7 +518,7 @@ // unsigned char CliendTxBuffer[send_max_len]; // void JUDGE_Show_Data(void) // { -// static u8 datalength,i; +// static uint8_t datalength,i; // uint8_t judge_led = 0xff;//初始化led为全绿 // static uint8_t auto_led_time = 0; // static uint8_t buff_led_time = 0; diff --git a/modules/referee/referee_UI.h b/modules/referee/referee_UI.h index e69de29..0efa2e2 100644 --- a/modules/referee/referee_UI.h +++ b/modules/referee/referee_UI.h @@ -0,0 +1,172 @@ +#ifndef REFEREE_UI_H +#define REFEREE_UI_H + +#include "stdarg.h" +#include "usart.h" +#include "stdint.h" +#pragma pack(1) //按1字节对齐 + +// #define NULL 0 +#define __FALSE 100 + +/****************************开始标志*********************/ +#define UI_SOF 0xA5 +/****************************CMD_ID数据********************/ +#define UI_CMD_Robo_Exchange 0x0301 +/****************************内容ID数据********************/ +#define UI_Data_ID_Del 0x100 +#define UI_Data_ID_Draw1 0x101 +#define UI_Data_ID_Draw2 0x102 +#define UI_Data_ID_Draw5 0x103 +#define UI_Data_ID_Draw7 0x104 +#define UI_Data_ID_DrawChar 0x110 +/****************************红方机器人ID********************/ +#define UI_Data_RobotID_RHero 1 +#define UI_Data_RobotID_REngineer 2 +#define UI_Data_RobotID_RStandard1 3 +#define UI_Data_RobotID_RStandard2 4 +#define UI_Data_RobotID_RStandard3 5 +#define UI_Data_RobotID_RAerial 6 +#define UI_Data_RobotID_RSentry 7 +#define UI_Data_RobotID_RRadar 9 +/****************************蓝方机器人ID********************/ +#define UI_Data_RobotID_BHero 101 +#define UI_Data_RobotID_BEngineer 102 +#define UI_Data_RobotID_BStandard1 103 +#define UI_Data_RobotID_BStandard2 104 +#define UI_Data_RobotID_BStandard3 105 +#define UI_Data_RobotID_BAerial 106 +#define UI_Data_RobotID_BSentry 107 +#define UI_Data_RobotID_BRadar 109 +/**************************红方操作手ID************************/ +#define UI_Data_CilentID_RHero 0x0101 +#define UI_Data_CilentID_REngineer 0x0102 +#define UI_Data_CilentID_RStandard1 0x0103 +#define UI_Data_CilentID_RStandard2 0x0104 +#define UI_Data_CilentID_RStandard3 0x0105 +#define UI_Data_CilentID_RAerial 0x0106 +/***************************蓝方操作手ID***********************/ +#define UI_Data_CilentID_BHero 0x0165 +#define UI_Data_CilentID_BEngineer 0x0166 +#define UI_Data_CilentID_BStandard1 0x0167 +#define UI_Data_CilentID_BStandard2 0x0168 +#define UI_Data_CilentID_BStandard3 0x0169 +#define UI_Data_CilentID_BAerial 0x016A +/***************************删除操作***************************/ +#define UI_Data_Del_NoOperate 0 +#define UI_Data_Del_Layer 1 +#define UI_Data_Del_ALL 2 +/***************************图形配置参数__图形操作********************/ +#define UI_Graph_ADD 1 +#define UI_Graph_Change 2 +#define UI_Graph_Del 3 +/***************************图形配置参数__图形类型********************/ +#define UI_Graph_Line 0 //直线 +#define UI_Graph_Rectangle 1 //矩形 +#define UI_Graph_Circle 2 //整圆 +#define UI_Graph_Ellipse 3 //椭圆 +#define UI_Graph_Arc 4 //圆弧 +#define UI_Graph_Float 5 //浮点型 +#define UI_Graph_Int 6 //整形 +#define UI_Graph_Char 7 //字符型 +/***************************图形配置参数__图形颜色********************/ +#define UI_Color_Main 0 //红蓝主色 +#define UI_Color_Yellow 1 +#define UI_Color_Green 2 +#define UI_Color_Orange 3 +#define UI_Color_Purplish_red 4 //紫红色 +#define UI_Color_Pink 5 +#define UI_Color_Cyan 6 //青色 +#define UI_Color_Black 7 +#define UI_Color_White 8 + + + +typedef unsigned char Uint8_t; +typedef unsigned char uint8_t; + +extern uint16_t Robot_ID; +extern uint16_t Cilent_ID; + + + +typedef struct +{ + uint8_t SOF; //起始字节,固定0xA5 + uint16_t Data_Length; //帧数据长度 + uint8_t Seq; //包序号 + uint8_t CRC8; //CRC8校验值 + uint16_t CMD_ID; //命令ID +} UI_Packhead; //帧头 + +typedef struct +{ + uint16_t Data_ID; //内容ID + uint16_t Sender_ID; //发送者ID + uint16_t Receiver_ID; //接收者ID +} UI_Data_Operate; //操作定义帧 + +typedef struct +{ + uint8_t Delete_Operate; //删除操作 + uint8_t Layer; //删除图层 +} UI_Data_Delete; //删除图层帧 + + +typedef struct +{ + uint8_t graphic_name[3]; + uint32_t operate_tpye:3; + uint32_t graphic_tpye:3; + uint32_t layer:4; + uint32_t color:4; + uint32_t start_angle:9; + uint32_t end_angle:9; + uint32_t width:10; + uint32_t start_x:11; + uint32_t start_y:11; + int32_t graph_Float; //浮点数据 +} Float_Data; + + +typedef struct +{ +uint8_t graphic_name[3]; +uint32_t operate_tpye:3; +uint32_t graphic_tpye:3; +uint32_t layer:4; +uint32_t color:4; +uint32_t start_angle:9; +uint32_t end_angle:9; +uint32_t width:10; +uint32_t start_x:11; +uint32_t start_y:11; +uint32_t radius:10; +uint32_t end_x:11; +uint32_t end_y:11; //图形数据 +} Graph_Data; + + +typedef struct +{ + Graph_Data Graph_Control; + uint8_t show_Data[30]; +} String_Data; //打印字符串数据 + +#pragma pack() + +void UI_Delete(uint8_t Del_Operate,uint8_t Del_Layer); +void Line_Draw(Graph_Data *image,char imagename[3],uint32_t Graph_Operate,uint32_t Graph_Layer,uint32_t Graph_Color,uint32_t Graph_Width,uint32_t Start_x,uint32_t Start_y,uint32_t End_x,uint32_t End_y); +int UI_ReFresh(int cnt,...); +unsigned char Get_CRC8_Check_Sum_UI(unsigned char *pchMessage,unsigned int dwLength,unsigned char ucCRC8); +uint16_t Get_CRC16_Check_Sum_UI(uint8_t *pchMessage,uint32_t dwLength,uint16_t wCRC); +void Circle_Draw(Graph_Data *image,char imagename[3],uint32_t Graph_Operate,uint32_t Graph_Layer,uint32_t Graph_Color,uint32_t Graph_Width,uint32_t Start_x,uint32_t Start_y,uint32_t Graph_Radius); +void Rectangle_Draw(Graph_Data *image,char imagename[3],uint32_t Graph_Operate,uint32_t Graph_Layer,uint32_t Graph_Color,uint32_t Graph_Width,uint32_t Start_x,uint32_t Start_y,uint32_t End_x,uint32_t End_y); +void Float_Draw(Float_Data *image,char imagename[3],uint32_t Graph_Operate,uint32_t Graph_Layer,uint32_t Graph_Color,uint32_t Graph_Size,uint32_t Graph_Digit,uint32_t Graph_Width,uint32_t Start_x,uint32_t Start_y,int32_t Graph_Float); +void Char_Draw(String_Data *image,char imagename[3],uint32_t Graph_Operate,uint32_t Graph_Layer,uint32_t Graph_Color,uint32_t Graph_Size,uint32_t Graph_Width,uint32_t Start_x,uint32_t Start_y); +int Char_ReFresh(String_Data string_Data); +void Char_Write(String_Data *image,char* fmt, ...); +void Arc_Draw(Graph_Data *image,char imagename[3],uint32_t Graph_Operate,uint32_t Graph_Layer,uint32_t Graph_Color,uint32_t Graph_StartAngle,uint32_t Graph_EndAngle,uint32_t Graph_Width,uint32_t Start_x,uint32_t Start_y,uint32_t x_Length,uint32_t y_Length); + + +#endif diff --git a/modules/referee/referee_def.h b/modules/referee/referee_def.h index 24c3e30..b632260 100644 --- a/modules/referee/referee_def.h +++ b/modules/referee/referee_def.h @@ -15,7 +15,7 @@ #pragma pack(1) -// 枚举类型,代替#define声明 +/* 通信协议格式偏移,枚举类型,代替#define声明 */ typedef enum { FRAME_HEADER = 0, @@ -23,7 +23,7 @@ typedef enum DATA = 7, } JudgeFrameOffset; -// 帧头偏移,枚举 +/* 帧头偏移 */ typedef enum { SOF = 0, // 起始位 @@ -32,7 +32,7 @@ typedef enum CRC8 = 4 // CRC8 } FrameHeaderOffset; -/* 自定义帧头 */ +/* 帧头定义 */ typedef struct { uint8_t SOF; @@ -41,7 +41,7 @@ typedef struct uint8_t CRC8; } xFrameHeader; -// 命令码ID,用来判断接收的是什么数据 +/* 命令码ID,用来判断接收的是什么数据 */ typedef enum { ID_game_state = 0x0001, // 比赛状态数据 @@ -60,7 +60,7 @@ typedef enum } CmdID; -// 命令码数据段长,根据官方协议来定义长度 +/* 命令码数据段长,根据官方协议来定义长度 */ typedef enum { LEN_game_state = 3, // 0x0001