完整ref

This commit is contained in:
RB 2025-03-18 02:39:30 +08:00
parent 498ee93880
commit 1a57383fcf
26 changed files with 13242 additions and 12947 deletions

File diff suppressed because one or more lines are too long

View File

@ -324,6 +324,11 @@
<pMon>BIN\CMSIS_AGDI.dll</pMon>
</DebugOpt>
<TargetDriverDllRegistry>
<SetRegEntry>
<Number>0</Number>
<Key>ST-LINKIII-KEIL_SWO</Key>
<Name>-U-O206 -O206 -SF10000 -C0 -A0 -I0 -HNlocalhost -HP7184 -P1 -N00("ARM CoreSight SW-DP (ARM Core") -D00(2BA01477) -L00(0) -TO131090 -TC10000000 -TT10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_1024.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32F407IGHx$CMSIS\Flash\STM32F4xx_1024.FLM)</Name>
</SetRegEntry>
<SetRegEntry>
<Number>0</Number>
<Key>ARMRTXEVENTFLAGS</Key>
@ -360,7 +365,7 @@
<Ww>
<count>0</count>
<WinNumber>1</WinNumber>
<ItemText>chassis</ItemText>
<ItemText>param_default</ItemText>
</Ww>
<Ww>
<count>1</count>
@ -370,54 +375,52 @@
<Ww>
<count>2</count>
<WinNumber>1</WinNumber>
<ItemText>gimbal_out</ItemText>
<ItemText>shoot</ItemText>
</Ww>
<Ww>
<count>3</count>
<WinNumber>1</WinNumber>
<ItemText>for_chassis</ItemText>
<ItemText>param_hero</ItemText>
</Ww>
<Ww>
<count>4</count>
<WinNumber>1</WinNumber>
<ItemText>task_runtime</ItemText>
<ItemText>ref</ItemText>
</Ww>
<Ww>
<count>5</count>
<WinNumber>1</WinNumber>
<ItemText>ref</ItemText>
<ItemText>for_chassis</ItemText>
</Ww>
<Ww>
<count>6</count>
<WinNumber>1</WinNumber>
<ItemText>shoot</ItemText>
<ItemText>cap_out,0x0A</ItemText>
</Ww>
<Ww>
<count>7</count>
<WinNumber>1</WinNumber>
<ItemText>ai</ItemText>
<ItemText>pm01_od,0x0A</ItemText>
</Ww>
<Ww>
<count>8</count>
<WinNumber>1</WinNumber>
<ItemText>for_chassis</ItemText>
<ItemText>cap,0x0A</ItemText>
</Ww>
<Ww>
<count>9</count>
<WinNumber>1</WinNumber>
<ItemText>for_shoot</ItemText>
</Ww>
<Ww>
<count>10</count>
<WinNumber>1</WinNumber>
<ItemText>cmd</ItemText>
</Ww>
<Ww>
<count>11</count>
<WinNumber>1</WinNumber>
<ItemText>host</ItemText>
<ItemText>ref</ItemText>
</Ww>
</WatchWindow1>
<MemoryWindow4>
<Mm>
<WinNumber>4</WinNumber>
<SubType>0</SubType>
<ItemText>for_chassis</ItemText>
<AccSizeX>0</AccSizeX>
</Mm>
</MemoryWindow4>
<Tracepoint>
<THDelay>0</THDelay>
</Tracepoint>
@ -1224,7 +1227,7 @@
<Group>
<GroupName>Middlewares/USB_Device_Library</GroupName>
<tvExp>0</tvExp>
<tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel>
<RteFlg>0</RteFlg>
@ -1280,7 +1283,7 @@
<Group>
<GroupName>User/bsp</GroupName>
<tvExp>1</tvExp>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel>
<RteFlg>0</RteFlg>
@ -1504,7 +1507,7 @@
<Group>
<GroupName>User/component</GroupName>
<tvExp>1</tvExp>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel>
<RteFlg>0</RteFlg>

View File

@ -2044,7 +2044,7 @@
<uC99>0</uC99>
<uGnu>0</uGnu>
<useXO>0</useXO>
<v6Lang>5</v6Lang>
<v6Lang>6</v6Lang>
<v6LangP>3</v6LangP>
<vShortEn>1</vShortEn>
<vShortWch>1</vShortWch>

Binary file not shown.

View File

@ -22,7 +22,7 @@ Dialog DLL: TCM.DLL V1.48.0.0
<h2>Project:</h2>
C:\Users\lvzucheng\Documents\RMUL2025\MDK-ARM\DevC.uvprojx
Project File Date: 03/11/2025
Project File Date: 03/18/2025
<h2>Output:</h2>
*** Using Compiler 'V6.16', folder: 'C:\Keil_v5\ARM\ARMCLANG\Bin'
@ -37,11 +37,11 @@ Note: source file '..\User\task\ai.c' - object file renamed from 'DevC\ai.o' to
Note: source file '..\User\task\can.c' - object file renamed from 'DevC\can.o' to 'DevC\can_3.o'.
Note: source file '..\User\task\cap.c' - object file renamed from 'DevC\cap.o' to 'DevC\cap_1.o'.
Note: source file '..\User\task\referee.c' - object file renamed from 'DevC\referee.o' to 'DevC\referee_1.o'.
compiling freertos.c...
compiling can.c...
compiling freertos.c...
compiling referee.c...
compiling cap.c...
compiling ai.c...
compiling cap.c...
compiling chassis.c...
compiling config.c...
compiling gimbal.c...
@ -57,12 +57,12 @@ compiling ctrl_gimbal.c...
compiling ctrl_shoot.c...
compiling info.c...
compiling init.c...
compiling monitor.c...
compiling rc.c...
compiling monitor.c...
compiling referee.c...
compiling user_task.c...
linking...
Program Size: Code=148856 RO-data=6908 RW-data=760 ZI-data=43840
Program Size: Code=149000 RO-data=6908 RW-data=760 ZI-data=44208
FromELF: creating hex file...
"DevC\DevC.axf" - 0 Error(s), 0 Warning(s).

File diff suppressed because it is too large Load Diff

View File

@ -3,7 +3,7 @@
<title>Static Call Graph - [DevC\DevC.axf]</title></head>
<body><HR>
<H1>Static Call Graph for image DevC\DevC.axf</H1><HR>
<BR><P>#&#060CALLGRAPH&#062# ARM Linker, 6160001: Last Updated: Wed Mar 12 10:05:36 2025
<BR><P>#&#060CALLGRAPH&#062# ARM Linker, 6160001: Last Updated: Tue Mar 18 02:07:16 2025
<BR><P>
<H3>Maximum Stack Usage = 632 bytes + Unknown(Cycles, Untraceable Function Pointers)</H3><H3>
Call chain for Maximum Stack Depth:</H3>
@ -3537,13 +3537,13 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[261]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Referee_PackUI
</UL>
<P><STRONG><a name="[2a3]"></a>Referee_PackAI</STRONG> (Thumb, 56 bytes, Stack size 8 bytes, referee.o(.text.Referee_PackAI))
<P><STRONG><a name="[2a3]"></a>Referee_PackAI</STRONG> (Thumb, 54 bytes, Stack size 8 bytes, referee.o(.text.Referee_PackAI))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = Referee_PackAI
</UL>
<BR>[Called By]<UL><LI><a href="#[96]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Task_Referee
</UL>
<P><STRONG><a name="[2a2]"></a>Referee_PackCap</STRONG> (Thumb, 68 bytes, Stack size 8 bytes, referee.o(.text.Referee_PackCap))
<P><STRONG><a name="[2a2]"></a>Referee_PackCap</STRONG> (Thumb, 70 bytes, Stack size 8 bytes, referee.o(.text.Referee_PackCap))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = Referee_PackCap
</UL>
<BR>[Called By]<UL><LI><a href="#[96]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Task_Referee
@ -3555,7 +3555,7 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[96]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Task_Referee
</UL>
<P><STRONG><a name="[2a4]"></a>Referee_PackShoot</STRONG> (Thumb, 112 bytes, Stack size 8 bytes, referee.o(.text.Referee_PackShoot))
<P><STRONG><a name="[2a4]"></a>Referee_PackShoot</STRONG> (Thumb, 104 bytes, Stack size 8 bytes, referee.o(.text.Referee_PackShoot))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = Referee_PackShoot
</UL>
<BR>[Called By]<UL><LI><a href="#[96]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Task_Referee
@ -3574,7 +3574,7 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[96]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Task_Referee
</UL>
<P><STRONG><a name="[264]"></a>Referee_Parse</STRONG> (Thumb, 966 bytes, Stack size 56 bytes, referee.o(.text.Referee_Parse))
<P><STRONG><a name="[264]"></a>Referee_Parse</STRONG> (Thumb, 1118 bytes, Stack size 56 bytes, referee.o(.text.Referee_Parse))
<BR><BR>[Stack]<UL><LI>Max Depth = 108<LI>Call Chain = Referee_Parse &rArr; CRC16_Verify &rArr; CRC16_Calc &rArr; CRC16_Byte
</UL>
<BR>[Calls]<UL><LI><a href="#[d5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;CRC16_Verify

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -20,12 +20,12 @@ extern "C" {
/* Exported constants ------------------------------------------------------- */
/* Exported macro ----------------------------------------------------------- */
#define REF_SWITCH_STATUS(ref, stat) ((ref).ref_status = (stat))
#define REF_SWITCH_STATUS(ref, stat) ((ref).ref_status = (stat))
#define CHASSIS_POWER_MAX_WITHOUT_REF 2000.0f /* 裁判系统离线底盘最大功率 */
#define REF_UI_MAX_GRAPIC_NUM (7)
#define REF_UI_MAX_STRING_NUM (7)
#define REF_UI_MAX_DEL_NUM (3)
#define REF_UI_MAX_GRAPIC_NUM (7) /* 最大图形数量 */
#define REF_UI_MAX_STRING_NUM (7) /* 最大字符串数量 */
#define REF_UI_MAX_DEL_NUM (3) /* 最大删除数量 */
/* Exported types ----------------------------------------------------------- */
typedef struct __packed {
@ -38,30 +38,39 @@ typedef struct __packed {
typedef enum { REF_STATUS_OFFLINE = 0, REF_STATUS_RUNNING } Referee_Status_t;
typedef enum {
REF_CMD_ID_GAME_STATUS = 0x0001,
REF_CMD_ID_GAME_RESULT = 0x0002,
REF_CMD_ID_GAME_ROBOT_HP = 0x0003,
REF_CMD_ID_DART_STATUS = 0x0004,
REF_CMD_ID_ICRA_ZONE_STATUS = 0x0005,
REF_CMD_ID_FIELD_EVENTS = 0x0101,
REF_CMD_ID_SUPPLY_ACTION = 0x0102,
REF_CMD_ID_REQUEST_SUPPLY = 0x0103,
REF_CMD_ID_WARNING = 0x0104,
REF_CMD_ID_DART_COUNTDOWN = 0x0105,
REF_CMD_ID_ROBOT_STATUS = 0x0201,
REF_CMD_ID_POWER_HEAT_DATA = 0x0202,
REF_CMD_ID_ROBOT_POS = 0x0203,
REF_CMD_ID_ROBOT_BUFF = 0x0204,
REF_CMD_ID_DRONE_ENERGY = 0x0205,
REF_CMD_ID_ROBOT_DMG = 0x0206,
REF_CMD_ID_SHOOT_DATA = 0x0207,
REF_CMD_ID_BULLET_REMAINING = 0x0208,
REF_CMD_ID_RFID = 0x0209,
REF_CMD_ID_DART_CLIENT = 0x020A,
REF_CMD_ID_INTER_STUDENT = 0x0301,
REF_CMD_ID_INTER_STUDENT_CUSTOM = 0x0302,
REF_CMD_ID_CLIENT_MAP = 0x0303,
REF_CMD_ID_KEYBOARD_MOUSE = 0x0304,
REF_CMD_ID_GAME_STATUS = 0x0001, //比赛状态数据固定以1Hz频率发送
REF_CMD_ID_GAME_RESULT = 0x0002, //比赛结果数据,比赛结束触发发送
REF_CMD_ID_GAME_ROBOT_HP = 0x0003, //机器人血量数据固定以3Hz频率发送
//REF_CMD_ID_DART_STATUS = 0x0004,
// REF_CMD_ID_ICRA_ZONE_STATUS = 0x0005,
REF_CMD_ID_FIELD_EVENTS = 0x0101, //场地事件数据固定以1Hz频率发送
//REF_CMD_ID_SUPPLY_ACTION = 0x0102,
//REF_CMD_ID_REQUEST_SUPPLY = 0x0103,
REF_CMD_ID_WARNING = 0x0104, //裁判警告数据
REF_CMD_ID_DART_COUNTDOWN = 0x0105, //飞镖发射相关数据
REF_CMD_ID_ROBOT_STATUS = 0x0201, //机器人性能体系数据
REF_CMD_ID_POWER_HEAT_DATA = 0x0202, //实时底盘缓冲能量和射击热量数据
REF_CMD_ID_ROBOT_POS = 0x0203, //机器人位置数据
REF_CMD_ID_ROBOT_BUFF = 0x0204, //机器人增益和底盘能量数据
//REF_CMD_ID_DRONE_ENERGY = 0x0205,
REF_CMD_ID_ROBOT_DMG = 0x0206, //伤害状态数据
REF_CMD_ID_SHOOT_DATA = 0x0207, //实时射击数据
REF_CMD_ID_BULLET_REMAINING = 0x0208, //允许发弹量
REF_CMD_ID_RFID = 0x0209, //机器人RFID模块状态
REF_CMD_ID_DART_CLIENT = 0x020A, //飞镖选手端指令数据
REF_CMD_ID_ROBOT_POS_TO_SENTRY = 0X020B, //地面机器人位置数据
REF_CMD_ID_RADAR_MARK = 0X020C, //雷达标记进度数据
REF_CMD_ID_SENTRY_DECISION = 0x020D, //哨兵自主决策相关信息同步
REF_CMD_ID_RADAR_DECISION = 0x020E, //雷达自主决策相关信息同步
REF_CMD_ID_INTER_STUDENT = 0x0301, //机器人交互数据
REF_CMD_ID_INTER_STUDENT_CUSTOM = 0x0302, //自定义控制器与机器人交互数据
REF_CMD_ID_CLIENT_MAP = 0x0303, //选手端小地图交互数据
REF_CMD_ID_KEYBOARD_MOUSE = 0x0304, //键鼠遥控数据
REF_CMD_ID_MAP_ROBOT_DATA = 0x0305, //选手端小地图接收雷达数据
REF_CMD_ID_CUSTOM_KEYBOARD_MOUSE = 0X0306, //自定义控制器与选手端交互数据
REF_CMD_ID_SENTRY_POS_DATA = 0x0307, //选手端小地图接收哨兵数据
REF_CMD_ID_ROBOT_POS_DATA = 0x0308, //选手端小地图接受机器人消息
REF_CMD_ID_DATA = 0x0309, //自定义控制器接收机器人数据
} Referee_CMDID_t;
typedef struct __packed {
@ -69,19 +78,18 @@ typedef struct __packed {
uint8_t game_progress : 4;
uint16_t stage_remain_time;
uint64_t sync_time_stamp;
} Referee_GameStatus_t;
} Referee_GameStatus_t;/* 0x0001 */
typedef struct __packed {
uint8_t winner;
} Referee_GameResult_t;
} Referee_GameResult_t;/* 0x0002 */
typedef struct __packed {
uint16_t red_1;
uint16_t red_2;
uint16_t red_3;
uint16_t red_4;
uint16_t red_5;
uint16_t red_6;
uint16_t reserved;
uint16_t red_7;
uint16_t red_outpose;
uint16_t red_base;
@ -89,12 +97,11 @@ typedef struct __packed {
uint16_t blue_2;
uint16_t blue_3;
uint16_t blue_4;
uint16_t blue_5;
uint16_t blue_6;
uint16_t reserved1;
uint16_t blue_7;
uint16_t blue_outpose;
uint16_t blue_base;
} Referee_GameRobotHP_t;
} Referee_GameRobotHP_t;/* 0x0003 */
typedef struct __packed {
uint8_t dart_belong;
@ -121,51 +128,44 @@ typedef struct __packed {
} Referee_ICRAZoneStatus_t;
typedef struct __packed {
uint8_t copter_pad : 2;
uint8_t energy_mech : 2;
uint8_t virtual_shield : 1;
uint32_t res : 27;
} Referee_FieldEvents_t;
uint32_t exchange_nooverlap_status : 1;
uint32_t exchange_overlap_status : 1;
uint32_t supply_status : 1;
uint32_t energy_mech_small_status : 1;
uint32_t energy_mech_big_status : 1;
uint32_t highland_annular : 2;
uint32_t highland_trapezium_1 : 2;
uint32_t last_hit_time : 9;
uint32_t last_hit_target : 3;
uint32_t activation_status : 2;
uint32_t res : 9;
} Referee_FieldEvents_t;/* 0x0101 */
typedef struct __packed {
uint8_t supply_id;
uint8_t robot_id;
uint8_t supply_step;
uint8_t supply_sum;
} Referee_SupplyAction_t;
} Referee_SupplyAction_t;/* 0x0102 */
typedef struct __packed {
uint8_t place_holder; /* TODO */
} Referee_RequestSupply_t;
} Referee_RequestSupply_t;/* 0x0103 */
typedef struct __packed {
uint8_t level;
uint8_t robot_id;
} Referee_Warning_t;
uint8_t count;
} Referee_Warning_t;/* 0x0104 */
typedef struct __packed {
uint8_t countdown;
} Referee_DartCountdown_t;
uint16_t dart_last_target : 3;
uint16_t attack_count : 2;
uint16_t dart_target : 2;
uint16_t res : 8;
} Referee_DartCountdown_t;/* 0x0105 */
// typedef struct __packed {
// uint8_t robot_id;
// uint8_t robot_level;
// uint16_t remain_hp;
// uint16_t max_hp;
// uint16_t shoot_id1_17_cooling_rate;
// uint16_t shoot_id1_17_heat_limit;
// uint16_t shoot_id1_17_speed_limit;
// uint16_t shoot_id2_17_cooling_rate;
// uint16_t shoot_id2_17_heat_limit;
// uint16_t shoot_id2_17_speed_limit;
// uint16_t shoot_42_cooling_rate;
// uint16_t shoot_42_heat_limit;
// uint16_t shoot_42_speed_limit;
// uint16_t chassis_power_limit;
// uint8_t power_gimbal_output : 1;
// uint8_t power_chassis_output : 1;
// uint8_t power_shoot_output : 1;
// } Referee_RobotStatus_t;
typedef struct __packed {
uint8_t robot_id;
@ -188,22 +188,15 @@ typedef struct __packed {
uint16_t shoot_id1_17_heat;
uint16_t shoot_id2_17_heat;
uint16_t shoot_42_heat;
} Referee_PowerHeat_t;
} Referee_PowerHeat_t; /* 0x0202 */
typedef struct __packed {
float x;
float y;
float z;
float yaw;
} Referee_RobotPos_t;
} Referee_RobotPos_t; /* 0x0203 */
// typedef struct __packed {
// uint8_t healing : 1;
// uint8_t cooling_acc : 1;
// uint8_t defense_buff : 1;
// uint8_t attack_buff : 1;
// uint8_t res : 4;
// } Referee_RobotBuff_t;
typedef struct __packed {
uint8_t healing_buff;
@ -211,16 +204,17 @@ typedef struct __packed {
uint8_t defense_buff;
uint8_t vulnerability_buff;
uint16_t attack_buff;
} Referee_RobotBuff_t;
uint8_t remaining_energy;
} Referee_RobotBuff_t; /* 0x0204 */
typedef struct __packed {
uint8_t attack_countdown;
} Referee_DroneEnergy_t;
} Referee_DroneEnergy_t; /* 0x0205 *///删
typedef struct __packed {
uint8_t armor_id : 4;
uint8_t damage_type : 4;
} Referee_RobotDamage_t;
} Referee_RobotDamage_t; /* 0x0206 */
typedef struct __packed {
uint8_t bullet_type;
@ -233,38 +227,106 @@ typedef struct __packed {
uint16_t bullet_17_remain;
uint16_t bullet_42_remain;
uint16_t coin_remain;
} Referee_BulletRemain_t;
} Referee_BulletRemain_t;/* 0x0208 */
typedef struct __packed {
uint8_t base : 1;
uint8_t high_ground : 1;
uint8_t energy_mech : 1;
uint8_t slope : 1;
uint8_t outpose : 1;
uint8_t resource : 1;
uint8_t healing_card : 1;
uint32_t res : 24;
} Referee_RFID_t;
uint32_t own_base : 1; //0
uint32_t own_highland_annular : 1; //1
uint32_t enemy_highland_annular : 1; //2
uint32_t own_trapezium_R3B3 : 1; //3
uint32_t enemy_trapezium_R3B3 : 1; //4
uint32_t own_slope_before : 1; //坡道前5
uint32_t own_slope_after : 1; //坡道后6
uint32_t enemy_slope_before : 1; //坡道前7
uint32_t enemy_slope_after : 1; //坡道后8
uint32_t own_crosses_above : 1; //增益点 上方9
uint32_t own_crosses_below : 1; //增益点 下方10
uint32_t enemy_crosses_above : 1; //增益点 上方11
uint32_t enemy_crosses_below : 1; //增益点 下方12
uint32_t own_highway_above : 1; //公路 上方13
uint32_t own_highway_below : 1; //公路 下方14
uint32_t enemy_highway_above : 1; //公路 上方15
uint32_t enemy_highway_below : 1; //公路 下方16
uint32_t own_fortress : 1; //己方堡垒增益点17
uint32_t own_outpost : 1; //己方前哨站增益点18
uint32_t own_RMUL : 1; //己方RMUL增益点19
uint32_t enemy_RMDL : 1; //敌方RMDL增益点20
uint32_t own_island : 1; //己方资源岛 21
uint32_t enemy_island : 1; //敌方资源岛 22
uint32_t centre : 1; //中心 23
uint32_t res : 8;
} Referee_RFID_t;/* 0x0209 */
typedef struct __packed {
uint8_t opening;
uint8_t opening_status;
uint8_t target;
uint8_t target_changable_countdown;
uint8_t dart1_speed;
uint8_t dart2_speed;
uint8_t dart3_speed;
uint8_t dart4_speed;
uint16_t last_dart_launch_time;
uint16_t target_changable_countdown;
uint16_t operator_cmd_launch_time;
} Referee_DartClient_t;
} Referee_DartClient_t;/* 0x020A */
typedef struct __packed {
float hero_x;
float hero_y;
float engineer_x;
float engineer_y;
float standard_3_x;
float standard_3_y;
float standard_4_x;
float standard_4_y;
float reserved;
float reserved1;
} Referee_Robot_Position_t;/* 0x020B */
typedef struct __packed
{
uint8_t mark_hero_progress;
uint8_t mark_engineer_progress;
uint8_t mark_standard_3_progress;
uint8_t mark_standard_4_progress;
uint8_t mark_sentry_progress;
}Referee_Radar_mark_data_t; /* 0x020C */
typedef struct __packed
{
uint32_t exchanged_bullet_num : 11;
uint32_t exchanged_bullet_times : 4;
uint32_t exchanged_blood_times : 4;
uint32_t Confirmation_resurrection : 1;
uint32_t now_resurrection : 1;
uint32_t money : 10;
uint32_t res : 1;
uint16_t state : 1;
uint16_t quantity : 11;
uint16_t res1 : 4;
} Referee_Sentry_Info_t; /* 0x020D */
typedef struct __packed
{
uint8_t qualification : 2;
uint8_t enemy_status : 1;
uint8_t res : 5;
} Referee_Radar_Info_t; /* 0x020E */
typedef struct __packed
{
uint16_t data_cmd_id; /* 子内容ID */
uint16_t sender_id;
uint16_t receiver_id;
uint8_t user_data[112];
} Referee_Interaction_Data_t; /* 0x0301 */
typedef struct __packed
{
uint8_t data[30];
} Referee_custom_robot_data_t; /* 0x0302 */
typedef struct __packed {
float position_x;
float position_y;
float position_z;
uint8_t commd_keyboard;
uint16_t robot_id;
} Referee_ClientMap_t;
uint8_t robot_id;
uint8_t cmd_source;
} Referee_ClientMap_t;/* 0x0303 */
typedef struct __packed {
int16_t mouse_x;
@ -274,10 +336,74 @@ typedef struct __packed {
int8_t button_r;
uint16_t keyboard_value;
uint16_t res;
} Referee_KeyboardMouse_t;
} Referee_KeyboardMouse_t;/* 0x0304 */
typedef struct __packed {
uint16_t hero_position_x;
uint16_t hero_position_y;
uint16_t engineer_position_x;
uint16_t engineer_position_y;
uint16_t infantry_3_position_x;
uint16_t infantry_3_position_y;
uint16_t infantry_4_position_x;
uint16_t infantry_4_position_y;
uint16_t infantry_5_position_x;
uint16_t infantry_5_position_y;
uint16_t sentry_position_x;
uint16_t sentry_position_y;
} Referee_map_robot_data_t;/* 0x0305 */
typedef struct __packed {
uint16_t key_value;
uint16_t x_position : 12;
uint16_t mouse_left : 4;
uint16_t y_position : 12;
uint16_t mouse_right : 4;
uint16_t res;
} Referee_custom_client_data_t; /* 0x0306 */
typedef struct __packed {
uint8_t intention;
uint16_t start_position_x;
uint16_t start_position_y;
int8_t delta_x[49];
int8_t delta_y[49];
uint16_t sender_id;
} Referee_map_data_t;/* 0x0307 */
typedef struct __packed
{
uint16_t sender_id;
uint16_t receiver_id;
uint8_t user_data[30];
}Referee_custom_info_t; /* 0x0308 */
typedef struct __packed
{
uint8_t data[30];
}Referee_robot_custom_data_t; /* 0x0309*/
typedef uint16_t Referee_Tail_t;
// typedef enum {
// REF_BOT_RED_HERO = 1,
// REF_BOT_RED_ENGINEER = 2,
// REF_BOT_RED_INFANTRY_1 = 3,
// REF_BOT_RED_INFANTRY_2 = 4,
// REF_BOT_RED_INFANTRY_3 = 5,
// REF_BOT_RED_DRONE = 6,
// REF_BOT_RED_SENTRY = 7,
// REF_BOT_RED_RADER = 9,
// REF_BOT_BLU_HERO = 101,
// REF_BOT_BLU_ENGINEER = 102,
// REF_BOT_BLU_INFANTRY_1 = 103,
// REF_BOT_BLU_INFANTRY_2 = 104,
// REF_BOT_BLU_INFANTRY_3 = 105,
// REF_BOT_BLU_DRONE = 106,
// REF_BOT_BLU_SENTRY = 107,
// REF_BOT_BLU_RADER = 109,
// } Referee_RobotID_t;//
typedef enum {
REF_BOT_RED_HERO = 1,
REF_BOT_RED_ENGINEER = 2,
@ -286,7 +412,10 @@ typedef enum {
REF_BOT_RED_INFANTRY_3 = 5,
REF_BOT_RED_DRONE = 6,
REF_BOT_RED_SENTRY = 7,
REF_BOT_RED_DART = 8,
REF_BOT_RED_RADER = 9,
REF_BOT_RED_OUTPOST = 10,
REF_BOT_RED_BASE = 11,
REF_BOT_BLU_HERO = 101,
REF_BOT_BLU_ENGINEER = 102,
REF_BOT_BLU_INFANTRY_1 = 103,
@ -294,9 +423,27 @@ typedef enum {
REF_BOT_BLU_INFANTRY_3 = 105,
REF_BOT_BLU_DRONE = 106,
REF_BOT_BLU_SENTRY = 107,
REF_BOT_BLU_DART = 108,
REF_BOT_BLU_RADER = 109,
} Referee_RobotID_t;
REF_BOT_BLU_OUTPOST = 110,
REF_BOT_BLU_BASE = 111,
} Referee_RobotID_t;//
// typedef enum {
// REF_CL_RED_HERO = 0x0101,
// REF_CL_RED_ENGINEER = 0x0102,
// REF_CL_RED_INFANTRY_1 = 0x0103,
// REF_CL_RED_INFANTRY_2 = 0x0104,
// REF_CL_RED_INFANTRY_3 = 0x0105,
// REF_CL_RED_DRONE = 0x0106,
// REF_CL_BLU_HERO = 0x0165,
// REF_CL_BLU_ENGINEER = 0x0166,
// REF_CL_BLU_INFANTRY_1 = 0x0167,
// REF_CL_BLU_INFANTRY_2 = 0x0168,
// REF_CL_BLU_INFANTRY_3 = 0x0169,
// REF_CL_BLU_DRONE = 0x016A,
// } Referee_ClientID_t;//选手端ID
typedef enum {
REF_CL_RED_HERO = 0x0101,
REF_CL_RED_ENGINEER = 0x0102,
@ -310,8 +457,20 @@ typedef enum {
REF_CL_BLU_INFANTRY_2 = 0x0168,
REF_CL_BLU_INFANTRY_3 = 0x0169,
REF_CL_BLU_DRONE = 0x016A,
} Referee_ClientID_t;
REF_CL_REFEREE_SERVER = 0x8080, /* 裁判系统服务器,用于哨兵和雷达自主决策 */
} Referee_ClientID_t;//选手端ID
// typedef enum {
// REF_STDNT_CMD_ID_UI_DEL = 0x0100,
// REF_STDNT_CMD_ID_UI_DRAW1 = 0x0101,
// REF_STDNT_CMD_ID_UI_DRAW2 = 0x0102,
// REF_STDNT_CMD_ID_UI_DRAW5 = 0x0103,
// REF_STDNT_CMD_ID_UI_DRAW7 = 0x0104,
// REF_STDNT_CMD_ID_UI_STR = 0x0110,
// REF_STDNT_CMD_ID_CUSTOM = 0x0200,
// } Referee_StudentCMDID_t;
typedef enum {
REF_STDNT_CMD_ID_UI_DEL = 0x0100,
REF_STDNT_CMD_ID_UI_DRAW1 = 0x0101,
@ -319,8 +478,9 @@ typedef enum {
REF_STDNT_CMD_ID_UI_DRAW5 = 0x0103,
REF_STDNT_CMD_ID_UI_DRAW7 = 0x0104,
REF_STDNT_CMD_ID_UI_STR = 0x0110,
REF_STDNT_CMD_ID_CUSTOM = 0x0200,
REF_STDNT_CMD_ID_SENTRY_CMD = 0X0120,
REF_STDNT_CMD_ID_RADAR_CMD = 0X0121,
} Referee_StudentCMDID_t;
typedef struct __packed {
@ -336,29 +496,40 @@ typedef struct __packed {
typedef struct {
Referee_Status_t ref_status;
Referee_GameStatus_t game_status;
Referee_GameResult_t game_result;
Referee_GameRobotHP_t game_robot_hp;
Referee_DartStatus_t dart_status;
Referee_ICRAZoneStatus_t icra_zone;
Referee_FieldEvents_t field_event;
Referee_SupplyAction_t supply_action;
Referee_RequestSupply_t request_supply;
Referee_Warning_t warning;
Referee_DartCountdown_t dart_countdown;
Referee_RobotStatus_t robot_status;
Referee_PowerHeat_t power_heat;
Referee_RobotPos_t robot_pos;
Referee_RobotBuff_t robot_buff;
Referee_DroneEnergy_t drone_energy;
Referee_RobotDamage_t robot_danage;
Referee_ShootData_t shoot_data;
Referee_BulletRemain_t bullet_remain;
Referee_RFID_t rfid;
Referee_DartClient_t dart_client;
Referee_InterStudent_Custom_t custom;
Referee_ClientMap_t client_map;
Referee_KeyboardMouse_t keyboard_mouse;
Referee_GameStatus_t game_status; /* 0x0001 */
Referee_GameResult_t game_result; /* 0x0002 */
Referee_GameRobotHP_t game_robot_hp; /* 0x0003 */
// Referee_DartStatus_t dart_status;
// Referee_ICRAZoneStatus_t icra_zone;
Referee_FieldEvents_t field_event; /* 0x0101 */
//Referee_SupplyAction_t supply_action; /* 0x0102 */
Referee_RequestSupply_t request_supply; /* 0x0103 */
Referee_Warning_t warning; /* 0x0104 */
Referee_DartCountdown_t dart_countdown; /* 0x0105 */
Referee_RobotStatus_t robot_status; /* 0x0201 */
Referee_PowerHeat_t power_heat; /* 0x0202 */
Referee_RobotPos_t robot_pos; /* 0x0203 */
Referee_RobotBuff_t robot_buff; /* 0x0204 */
//Referee_DroneEnergy_t drone_energy; /* 0x0205 */
Referee_RobotDamage_t robot_danage; /* 0x0206 */
Referee_ShootData_t shoot_data; /* 0x0207 */
Referee_BulletRemain_t bullet_remain; /* 0x0208 */
Referee_RFID_t rfid; /* 0x0209 */
Referee_DartClient_t dart_client; /* 0x020A */
Referee_Robot_Position_t pos_sentry; /* 0x020B */
Referee_Radar_mark_data_t radar_mark; /* 0x020C */
Referee_Sentry_Info_t sentry_decision; /* 0x020D */
Referee_Radar_Info_t radar_decision; /* 0x020E */
// Referee_InterStudent_Custom_t custom;
Referee_Interaction_Data_t interactive_data; /* 0x0301 */
Referee_custom_robot_data_t custom_robot_data; /* 0x0302 */
Referee_ClientMap_t client_map; /* 0x0303 */
Referee_KeyboardMouse_t keyboard_mouse; /* 0x0304 */
Referee_map_robot_data_t map_robot_data; /* 0x0305 */
Referee_custom_client_data_t custom_keyboard_mouse; /* 0x0306 */
Referee_map_data_t sentry_pos_data; /* 0x0307 */
Referee_custom_info_t custom_info; /* 0x0308 */
Referee_robot_custom_data_t custom_data; /* 0x0309*/
osTimerId_t ui_fast_timer_id;
osTimerId_t ui_slow_timer_id;