rm_control
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
protocol.h
Go to the documentation of this file.
1/*******************************************************************************
2 * BSD 3-Clause License
3 *
4 * Copyright (c) 2021, Qiayuan Liao
5 * All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions are met:
9 *
10 * * Redistributions of source code must retain the above copyright notice, this
11 * list of conditions and the following disclaimer.
12 *
13 * * Redistributions in binary form must reproduce the above copyright notice,
14 * this list of conditions and the following disclaimer in the documentation
15 * and/or other materials provided with the distribution.
16 *
17 * * Neither the name of the copyright holder nor the names of its
18 * contributors may be used to endorse or promote products derived from
19 * this software without specific prior written permission.
20 *
21 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
22 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24 * ARE
25 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
26 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
27 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
28 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
29 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
30 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
31 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32 *******************************************************************************/
33
34//
35// Created by peter on 2021/5/17.
36//
37
38#pragma once
39#define __packed __attribute__((packed))
40
41#include <cstdint>
42
43namespace rm_referee
44{
85
86typedef enum
87{
96 SENTRY_CMD = 0x0120,
97 RADAR_CMD = 0x0121,
98 BULLET_NUM_SHARE_CMD = 0x0200, // send robot->aerial
99 SENTRY_TO_RADAR_CMD = 0x0201, // send sentry->radar
100 RADAR_TO_SENTRY_CMD = 0x0202 // send radar->sentry
102
126
143
144typedef enum
145{
146 ADD = 1,
148 DELETE = 3
150
151typedef enum
152{
155 GREEN = 2,
158 PINK = 5,
159 CYAN = 6,
160 BLACK = 7,
161 WHITE = 8
163
175
176typedef enum
177{
180 MOVE_TO = 3
182
183typedef enum
184{
186 BOOST = 1,
188 ALL_OFF = 3
190
198
209
216
217/*****************************/
218
219typedef struct
220{
221 uint8_t sof;
222 uint16_t data_length;
223 uint8_t seq;
224 uint8_t crc_8;
225} __packed FrameHeader;
226
227typedef struct
228{
229 uint8_t game_type : 4;
230 uint8_t game_progress : 4;
233} __packed GameStatus;
234
235typedef struct
236{
237 uint8_t winner;
238} __packed GameResult;
239
240typedef struct
241{
246 uint16_t reserved_1;
249 uint16_t red_base_hp;
254 uint16_t reserved_2;
257 uint16_t blue_base_hp;
258} __packed GameRobotHp;
259
260typedef struct
261{
262 uint8_t dart_belong;
264} __packed DartStatus;
265
266typedef struct
267{
268 uint8_t f_1_zone_status : 1;
270 uint8_t f_2_zone_status : 1;
272 uint8_t f_3_zone_status : 1;
274 uint8_t f_4_zone_status : 1;
276 uint8_t f_5_zone_status : 1;
278 uint8_t f_6_zone_status : 1;
284} __packed IcraBuffDebuffZoneStatus;
285
286typedef struct
287{
295 uint16_t be_hit_time : 9;
296 uint8_t be_hit_target : 3;
298 uint16_t reserved : 9;
299} __packed EventData;
300
301typedef struct
302{
303 uint8_t reserved;
307} __packed SupplyProjectileAction;
308
309typedef struct
310{
311 uint8_t level;
313 uint8_t count;
314} __packed RefereeWarning;
315
316typedef struct
317{
322 uint8_t reserved;
323} __packed DartInfo;
324
325typedef struct
326{
327 uint8_t robot_id;
328 uint8_t robot_level;
329 uint16_t remain_hp;
330 uint16_t max_hp;
337} __packed GameRobotStatus;
338
339typedef struct
340{
341 uint16_t reserved_1;
342 uint16_t reserved_2;
348} __packed PowerHeatData;
349
350typedef struct
351{
352 float x;
353 float y;
354 float yaw;
355} __packed GameRobotPos;
356
357typedef struct
358{
363 uint16_t attack_buff;
365} __packed Buff;
366
367typedef struct
368{
369 uint8_t attack_time;
370} __packed AerialRobotEnergy;
371
372typedef struct
373{
374 uint8_t armor_id : 4;
375 uint8_t hurt_type : 4;
376} __packed RobotHurt;
377
378typedef struct
379{
380 uint8_t bullet_type;
381 uint8_t shooter_id;
382 uint8_t bullet_freq;
384} __packed ShootData;
385
386typedef struct
387{
391} __packed BulletAllowance;
392
393typedef struct
394{
419 uint32_t reversed : 8;
420} __packed RfidStatus;
421
422typedef struct
423{
425 uint8_t reversed;
428} __packed DartClientCmd;
429
430/*********************** Interactive data between robots----0x0301 ********************/
431typedef struct
432{
433 uint16_t data_cmd_id;
434 uint16_t sender_id;
435 uint16_t receiver_id;
436} __packed InteractiveDataHeader;
437
439{
440 uint8_t graphic_id[3];
441 uint32_t operate_type : 3;
442 uint32_t graphic_type : 3;
443 uint32_t layer : 4;
444 uint32_t color : 4;
445 uint32_t start_angle : 9;
446 uint32_t end_angle : 9;
447 uint32_t width : 10;
448 uint32_t start_x : 11;
449 uint32_t start_y : 11;
450 uint32_t radius : 10;
451 uint32_t end_x : 11;
452 uint32_t end_y : 11;
453 bool operator==(const GraphConfig& config)
454 {
455 return (graphic_id[0] == (uint32_t)config.graphic_id[0] && graphic_id[1] == (uint32_t)config.graphic_id[1] &&
456 graphic_id[2] == (uint32_t)config.graphic_id[2] && operate_type == (uint32_t)config.operate_type &&
457 graphic_type == (uint32_t)config.graphic_type && layer == (uint32_t)config.layer &&
458 color == (uint32_t)config.color && start_angle == (uint32_t)config.start_angle &&
459 end_angle == (uint32_t)config.end_angle && width == (uint32_t)config.width &&
460 start_x == (uint32_t)config.start_x && start_y == (uint32_t)config.start_y &&
461 radius == (uint32_t)config.radius && end_x == (uint32_t)config.end_x && end_y == (uint32_t)config.end_y);
462 }
464 {
465 graphic_id[0] = (uint32_t)config.graphic_id[0];
466 graphic_id[1] = (uint32_t)config.graphic_id[1];
467 graphic_id[2] = (uint32_t)config.graphic_id[2];
468 operate_type = (uint32_t)config.operate_type;
469 graphic_type = (uint32_t)config.graphic_type;
470 layer = (uint32_t)config.layer;
471 color = (uint32_t)config.color;
472 start_angle = (uint32_t)config.start_angle;
473 end_angle = (uint32_t)config.end_angle;
474 width = (uint32_t)config.width;
475 start_x = (uint32_t)config.start_x;
476 start_y = (uint32_t)config.start_y;
477 radius = (uint32_t)config.radius;
478 end_x = (uint32_t)config.end_x;
479 end_y = (uint32_t)config.end_y;
480 return *this;
481 }
483
484typedef struct
485{
486 float hero_x;
487 float hero_y;
496} __packed RobotsPositionData;
497
498typedef struct
499{
505} __packed RadarMarkData;
506
507typedef struct
508{
509 InteractiveDataHeader header;
511 uint8_t content[30];
512} __packed CharacterData;
513
514typedef struct
515{
516 InteractiveDataHeader header;
517 GraphConfig config;
518} __packed SingleGraphData;
519
520typedef struct
521{
522 InteractiveDataHeader header;
523 GraphConfig config[2];
524} __packed DoubleGraphData;
525
526typedef struct
527{
528 InteractiveDataHeader header;
529 GraphConfig config[5];
530} __packed FiveGraphData;
531
532typedef struct
533{
534 InteractiveDataHeader header;
535 GraphConfig config[7];
536} __packed SevenGraphData;
537
538typedef struct
539{
540 InteractiveDataHeader header_data;
541 uint8_t data;
542} __packed InteractiveData;
543
544typedef struct
545{
546 InteractiveDataHeader header;
547 uint32_t sentry_info;
548} __packed SentryCmd;
549
550typedef struct
551{
552 InteractiveDataHeader header;
553 uint8_t radar_info;
554} __packed RadarInfo;
555
556typedef struct
557{
558 uint8_t data[30];
559} __packed CustomControllerData;
560
561typedef struct
562{
563 uint32_t sentry_info;
564 uint16_t is_out_of_war : 1;
566 uint16_t reverse : 4;
567} __packed SentryInfo;
568
569typedef struct
570{
575 uint8_t cmd_source;
576} __packed ClientMapSendData;
577
578typedef struct
579{
592} __packed ClientMapReceiveData;
593
594typedef struct
595{
596 InteractiveDataHeader header_data;
597 uint8_t target_robot_ID;
598 float target_position_x;
599 float target_position_y;
600} __packed SentryAttackingTargetData;
601
602typedef struct
603{
604 InteractiveDataHeader header_data;
605 uint8_t robot_ID;
609} __packed RadarToSentryData;
610
611typedef struct
612{
613 int16_t mouse_x;
614 int16_t mouse_y;
615 int16_t mouse_z;
619 uint16_t reserved;
620} __packed RobotCommandData;
621
622typedef struct
623{
624 uint8_t intention;
627 int8_t delta_x[49];
628 int8_t delta_y[49];
629 uint16_t sender_id;
630} __packed MapSentryData;
631
632typedef struct
633{
634 InteractiveDataHeader header_data;
637} __packed BulletNumData;
638
639typedef struct
640{
641 uint16_t sender_id;
642 uint16_t receiver_id;
643 uint8_t user_data[30];
644} __packed CustomInfo;
645
646typedef struct
647{
660} __packed PowerManagementSampleAndStatusData;
661
662typedef struct
663{
665 char string[31];
666} __packed PowerManagementInitializationExceptionData;
667
668typedef struct
669{
670 uint32_t r_0;
671 uint32_t r_1;
672 uint32_t r_2;
673 uint32_t r_3;
674 uint32_t r_12;
675 uint32_t LR;
676 uint32_t PC;
677 uint32_t PSR;
678} __packed PowerManagementSystemExceptionData;
679
680typedef struct
681{
682 char process_name[32];
683} __packed PowerManagementProcessStackOverflowData;
684
685typedef struct
686{
690} __packed PowerManagementUnknownExceptionData;
691
692/***********************Frame tail(CRC8_CRC16)********************************************/
693const uint8_t kCrc8Init = 0xff;
694const uint8_t kCrc8Table[256] = {
695 0x00, 0x5e, 0xbc, 0xe2, 0x61, 0x3f, 0xdd, 0x83, 0xc2, 0x9c, 0x7e, 0x20, 0xa3, 0xfd, 0x1f, 0x41, 0x9d, 0xc3, 0x21,
696 0x7f, 0xfc, 0xa2, 0x40, 0x1e, 0x5f, 0x01, 0xe3, 0xbd, 0x3e, 0x60, 0x82, 0xdc, 0x23, 0x7d, 0x9f, 0xc1, 0x42, 0x1c,
697 0xfe, 0xa0, 0xe1, 0xbf, 0x5d, 0x03, 0x80, 0xde, 0x3c, 0x62, 0xbe, 0xe0, 0x02, 0x5c, 0xdf, 0x81, 0x63, 0x3d, 0x7c,
698 0x22, 0xc0, 0x9e, 0x1d, 0x43, 0xa1, 0xff, 0x46, 0x18, 0xfa, 0xa4, 0x27, 0x79, 0x9b, 0xc5, 0x84, 0xda, 0x38, 0x66,
699 0xe5, 0xbb, 0x59, 0x07, 0xdb, 0x85, 0x67, 0x39, 0xba, 0xe4, 0x06, 0x58, 0x19, 0x47, 0xa5, 0xfb, 0x78, 0x26, 0xc4,
700 0x9a, 0x65, 0x3b, 0xd9, 0x87, 0x04, 0x5a, 0xb8, 0xe6, 0xa7, 0xf9, 0x1b, 0x45, 0xc6, 0x98, 0x7a, 0x24, 0xf8, 0xa6,
701 0x44, 0x1a, 0x99, 0xc7, 0x25, 0x7b, 0x3a, 0x64, 0x86, 0xd8, 0x5b, 0x05, 0xe7, 0xb9, 0x8c, 0xd2, 0x30, 0x6e, 0xed,
702 0xb3, 0x51, 0x0f, 0x4e, 0x10, 0xf2, 0xac, 0x2f, 0x71, 0x93, 0xcd, 0x11, 0x4f, 0xad, 0xf3, 0x70, 0x2e, 0xcc, 0x92,
703 0xd3, 0x8d, 0x6f, 0x31, 0xb2, 0xec, 0x0e, 0x50, 0xaf, 0xf1, 0x13, 0x4d, 0xce, 0x90, 0x72, 0x2c, 0x6d, 0x33, 0xd1,
704 0x8f, 0x0c, 0x52, 0xb0, 0xee, 0x32, 0x6c, 0x8e, 0xd0, 0x53, 0x0d, 0xef, 0xb1, 0xf0, 0xae, 0x4c, 0x12, 0x91, 0xcf,
705 0x2d, 0x73, 0xca, 0x94, 0x76, 0x28, 0xab, 0xf5, 0x17, 0x49, 0x08, 0x56, 0xb4, 0xea, 0x69, 0x37, 0xd5, 0x8b, 0x57,
706 0x09, 0xeb, 0xb5, 0x36, 0x68, 0x8a, 0xd4, 0x95, 0xcb, 0x29, 0x77, 0xf4, 0xaa, 0x48, 0x16, 0xe9, 0xb7, 0x55, 0x0b,
707 0x88, 0xd6, 0x34, 0x6a, 0x2b, 0x75, 0x97, 0xc9, 0x4a, 0x14, 0xf6, 0xa8, 0x74, 0x2a, 0xc8, 0x96, 0x15, 0x4b, 0xa9,
708 0xf7, 0xb6, 0xe8, 0x0a, 0x54, 0xd7, 0x89, 0x6b, 0x35,
709};
710const uint16_t kCrc16Init = 0xffff;
711const uint16_t wCRC_table[256] = {
712 0x0000, 0x1189, 0x2312, 0x329b, 0x4624, 0x57ad, 0x6536, 0x74bf, 0x8c48, 0x9dc1, 0xaf5a, 0xbed3, 0xca6c, 0xdbe5,
713 0xe97e, 0xf8f7, 0x1081, 0x0108, 0x3393, 0x221a, 0x56a5, 0x472c, 0x75b7, 0x643e, 0x9cc9, 0x8d40, 0xbfdb, 0xae52,
714 0xdaed, 0xcb64, 0xf9ff, 0xe876, 0x2102, 0x308b, 0x0210, 0x1399, 0x6726, 0x76af, 0x4434, 0x55bd, 0xad4a, 0xbcc3,
715 0x8e58, 0x9fd1, 0xeb6e, 0xfae7, 0xc87c, 0xd9f5, 0x3183, 0x200a, 0x1291, 0x0318, 0x77a7, 0x662e, 0x54b5, 0x453c,
716 0xbdcb, 0xac42, 0x9ed9, 0x8f50, 0xfbef, 0xea66, 0xd8fd, 0xc974, 0x4204, 0x538d, 0x6116, 0x709f, 0x0420, 0x15a9,
717 0x2732, 0x36bb, 0xce4c, 0xdfc5, 0xed5e, 0xfcd7, 0x8868, 0x99e1, 0xab7a, 0xbaf3, 0x5285, 0x430c, 0x7197, 0x601e,
718 0x14a1, 0x0528, 0x37b3, 0x263a, 0xdecd, 0xcf44, 0xfddf, 0xec56, 0x98e9, 0x8960, 0xbbfb, 0xaa72, 0x6306, 0x728f,
719 0x4014, 0x519d, 0x2522, 0x34ab, 0x0630, 0x17b9, 0xef4e, 0xfec7, 0xcc5c, 0xddd5, 0xa96a, 0xb8e3, 0x8a78, 0x9bf1,
720 0x7387, 0x620e, 0x5095, 0x411c, 0x35a3, 0x242a, 0x16b1, 0x0738, 0xffcf, 0xee46, 0xdcdd, 0xcd54, 0xb9eb, 0xa862,
721 0x9af9, 0x8b70, 0x8408, 0x9581, 0xa71a, 0xb693, 0xc22c, 0xd3a5, 0xe13e, 0xf0b7, 0x0840, 0x19c9, 0x2b52, 0x3adb,
722 0x4e64, 0x5fed, 0x6d76, 0x7cff, 0x9489, 0x8500, 0xb79b, 0xa612, 0xd2ad, 0xc324, 0xf1bf, 0xe036, 0x18c1, 0x0948,
723 0x3bd3, 0x2a5a, 0x5ee5, 0x4f6c, 0x7df7, 0x6c7e, 0xa50a, 0xb483, 0x8618, 0x9791, 0xe32e, 0xf2a7, 0xc03c, 0xd1b5,
724 0x2942, 0x38cb, 0x0a50, 0x1bd9, 0x6f66, 0x7eef, 0x4c74, 0x5dfd, 0xb58b, 0xa402, 0x9699, 0x8710, 0xf3af, 0xe226,
725 0xd0bd, 0xc134, 0x39c3, 0x284a, 0x1ad1, 0x0b58, 0x7fe7, 0x6e6e, 0x5cf5, 0x4d7c, 0xc60c, 0xd785, 0xe51e, 0xf497,
726 0x8028, 0x91a1, 0xa33a, 0xb2b3, 0x4a44, 0x5bcd, 0x6956, 0x78df, 0x0c60, 0x1de9, 0x2f72, 0x3efb, 0xd68d, 0xc704,
727 0xf59f, 0xe416, 0x90a9, 0x8120, 0xb3bb, 0xa232, 0x5ac5, 0x4b4c, 0x79d7, 0x685e, 0x1ce1, 0x0d68, 0x3ff3, 0x2e7a,
728 0xe70e, 0xf687, 0xc41c, 0xd595, 0xa12a, 0xb0a3, 0x8238, 0x93b1, 0x6b46, 0x7acf, 0x4854, 0x59dd, 0x2d62, 0x3ceb,
729 0x0e70, 0x1ff9, 0xf78f, 0xe606, 0xd49d, 0xc514, 0xb1ab, 0xa022, 0x92b9, 0x8330, 0x7bc7, 0x6a4e, 0x58d5, 0x495c,
730 0x3de3, 0x2c6a, 0x1ef1, 0x0f78
731};
732} // namespace rm_referee
Definition data.h:101
PowerManagementStateMachine
Definition protocol.h:184
@ CHARGE
Definition protocol.h:185
@ BOOST
Definition protocol.h:186
@ ALL_OFF
Definition protocol.h:188
@ NORMAL
Definition protocol.h:187
const uint8_t kCrc8Init
Definition protocol.h:693
GraphType
Definition protocol.h:165
@ STRING
Definition protocol.h:173
@ RECTANGLE
Definition protocol.h:167
@ CIRCLE
Definition protocol.h:168
@ ARC
Definition protocol.h:170
@ LINE
Definition protocol.h:166
@ ELLIPSE
Definition protocol.h:169
@ INT_NUM
Definition protocol.h:172
@ FLOAT_NUM
Definition protocol.h:171
RefereeCmdId
Definition protocol.h:46
@ BULLET_REMAINING_CMD
Definition protocol.h:63
@ INTERACTIVE_DATA_CMD
Definition protocol.h:70
@ ROBOT_HURT_CMD
Definition protocol.h:61
@ SHOOT_DATA_CMD
Definition protocol.h:62
@ SENTRY_INFO_CMD
Definition protocol.h:68
@ ROBOT_POS_CMD
Definition protocol.h:58
@ MAP_SENTRY_CMD
Definition protocol.h:76
@ CUSTOM_CLIENT_CMD
Definition protocol.h:75
@ CLIENT_MAP_CMD
Definition protocol.h:74
@ POWER_MANAGEMENT_UNKNOWN_EXCEPTION_CMD
Definition protocol.h:83
@ BUFF_CMD
Definition protocol.h:59
@ ROBOTS_POS_CMD
Definition protocol.h:66
@ POWER_MANAGEMENT_INITIALIZATION_EXCEPTION_CMD
Definition protocol.h:80
@ DART_INFO_CMD
Definition protocol.h:55
@ ROBOT_RFID_STATUS_CMD
Definition protocol.h:64
@ AERIAL_ROBOT_ENERGY_CMD
Definition protocol.h:60
@ ROBOT_TO_CUSTOM_CMD
Definition protocol.h:78
@ RADAR_MARK_CMD
Definition protocol.h:67
@ FIELD_EVENTS_CMD
Definition protocol.h:52
@ DART_STATUS_CMD
Definition protocol.h:50
@ SUPPLY_PROJECTILE_ACTION_CMD
Definition protocol.h:53
@ REFEREE_WARNING_CMD
Definition protocol.h:54
@ GAME_RESULT_CMD
Definition protocol.h:48
@ POWER_MANAGEMENT_SYSTEM_EXCEPTION_CMD
Definition protocol.h:81
@ TARGET_POS_CMD
Definition protocol.h:72
@ POWER_MANAGEMENT_PROCESS_STACK_OVERFLOW_CMD
Definition protocol.h:82
@ CUSTOM_CONTROLLER_CMD
Definition protocol.h:71
@ CUSTOM_TO_ROBOT_CMD
Definition protocol.h:77
@ GAME_ROBOT_HP_CMD
Definition protocol.h:49
@ RADAR_INFO_CMD
Definition protocol.h:69
@ POWER_HEAT_DATA_CMD
Definition protocol.h:57
@ GAME_STATUS_CMD
Definition protocol.h:47
@ DART_CLIENT_CMD
Definition protocol.h:65
@ ROBOT_COMMAND_CMD
Definition protocol.h:73
@ ICRA_ZONE_STATUS_CMD
Definition protocol.h:51
@ POWER_MANAGEMENT_SAMPLE_AND_STATUS_DATA_CMD
Definition protocol.h:79
@ ROBOT_STATUS_CMD
Definition protocol.h:56
DataCmdId
Definition protocol.h:87
@ SENTRY_TO_RADAR_CMD
Definition protocol.h:99
@ CLIENT_GRAPH_DELETE_CMD
Definition protocol.h:90
@ CLIENT_GRAPH_SEVEN_CMD
Definition protocol.h:94
@ CLIENT_GRAPH_SINGLE_CMD
Definition protocol.h:91
@ SENTRY_CMD
Definition protocol.h:96
@ RADAR_CMD
Definition protocol.h:97
@ RADAR_TO_SENTRY_CMD
Definition protocol.h:100
@ ROBOT_INTERACTIVE_CMD_MAX
Definition protocol.h:89
@ BULLET_NUM_SHARE_CMD
Definition protocol.h:98
@ ROBOT_INTERACTIVE_CMD_MIN
Definition protocol.h:88
@ CLIENT_CHARACTER_CMD
Definition protocol.h:95
@ CLIENT_GRAPH_FIVE_CMD
Definition protocol.h:93
@ CLIENT_GRAPH_DOUBLE_CMD
Definition protocol.h:92
const uint8_t kCrc8Table[256]
Definition protocol.h:694
struct rm_referee::GraphConfig __packed
SentryIntention
Definition protocol.h:177
@ MOVE_TO
Definition protocol.h:180
@ ATTACK_IN
Definition protocol.h:178
@ DEFEND_IN
Definition protocol.h:179
GraphColor
Definition protocol.h:152
@ PINK
Definition protocol.h:158
@ WHITE
Definition protocol.h:161
@ YELLOW
Definition protocol.h:154
@ BLACK
Definition protocol.h:160
@ ORANGE
Definition protocol.h:156
@ PURPLE
Definition protocol.h:157
@ MAIN_COLOR
Definition protocol.h:153
@ CYAN
Definition protocol.h:159
@ GREEN
Definition protocol.h:155
const uint16_t kCrc16Init
Definition protocol.h:710
PowerManagementProtectionInfo
Definition protocol.h:192
@ NO_PROBLEM
Definition protocol.h:193
@ REFEREE_DISCONNECT
Definition protocol.h:196
@ REFEREE_POWER_DOWN
Definition protocol.h:195
@ HIGH_CURRENT
Definition protocol.h:194
RobotId
Definition protocol.h:104
@ BLUE_RADAR
Definition protocol.h:122
@ BLUE_STANDARD_4
Definition protocol.h:118
@ BLUE_ENGINEER
Definition protocol.h:116
@ RED_BASE
Definition protocol.h:114
@ RED_STANDARD_4
Definition protocol.h:108
@ BLUE_SENTRY
Definition protocol.h:121
@ RED_SENTRY
Definition protocol.h:111
@ RED_STANDARD_5
Definition protocol.h:109
@ BLUE_STANDARD_3
Definition protocol.h:117
@ BLUE_BASE
Definition protocol.h:124
@ BLUE_OUTPOST
Definition protocol.h:123
@ RED_STANDARD_3
Definition protocol.h:107
@ RED_AERIAL
Definition protocol.h:110
@ RED_ENGINEER
Definition protocol.h:106
@ RED_OUTPOST
Definition protocol.h:113
@ BLUE_HERO
Definition protocol.h:115
@ BLUE_AERIAL
Definition protocol.h:120
@ BLUE_STANDARD_5
Definition protocol.h:119
@ RED_RADAR
Definition protocol.h:112
@ RED_HERO
Definition protocol.h:105
const uint16_t wCRC_table[256]
Definition protocol.h:711
PowerManagementTopology
Definition protocol.h:211
@ CHARGE_AND_BOOST
Definition protocol.h:213
@ PASS_THROUGH
Definition protocol.h:212
@ SWITCHES_ALL_OFF
Definition protocol.h:214
ClientId
Definition protocol.h:128
@ RED_ENGINEER_CLIENT
Definition protocol.h:130
@ REFEREE_SERVER
Definition protocol.h:141
@ BLUE_STANDARD_5_CLIENT
Definition protocol.h:139
@ RED_HERO_CLIENT
Definition protocol.h:129
@ BLUE_STANDARD_4_CLIENT
Definition protocol.h:138
@ RED_AERIAL_CLIENT
Definition protocol.h:134
@ RED_STANDARD_4_CLIENT
Definition protocol.h:132
@ BLUE_AERIAL_CLIENT
Definition protocol.h:140
@ BLUE_STANDARD_3_CLIENT
Definition protocol.h:137
@ RED_STANDARD_3_CLIENT
Definition protocol.h:131
@ BLUE_HERO_CLIENT
Definition protocol.h:135
@ RED_STANDARD_5_CLIENT
Definition protocol.h:133
@ BLUE_ENGINEER_CLIENT
Definition protocol.h:136
PowerManagementResetReason
Definition protocol.h:200
@ UNKNOWN
Definition protocol.h:207
@ LOW_VOLTAGE
Definition protocol.h:206
@ INDEPENDENT_WATCHDOG
Definition protocol.h:204
@ EXTERNAL_BUTTON
Definition protocol.h:202
@ POWER_ON
Definition protocol.h:201
@ WINDOW_WATCHDOG
Definition protocol.h:205
@ SOFT
Definition protocol.h:203
GraphOperation
Definition protocol.h:145
@ DELETE
Definition protocol.h:148
@ UPDATE
Definition protocol.h:147
@ ADD
Definition protocol.h:146
Definition protocol.h:686
uint8_t enemy_trapezoidal_elevated_ground_state
Definition protocol.h:399
int8_t error_code
Definition protocol.h:664
uint8_t forward_own_terrain_span_buff_point_state
Definition protocol.h:400
uint16_t chassis_power_buffer
Definition protocol.h:344
uint32_t r_0
Definition protocol.h:670
float engineer_x
Definition protocol.h:488
uint8_t remaining_energy
Definition protocol.h:364
float x
Definition protocol.h:352
uint16_t bullet_allowance_num_17_mm
Definition protocol.h:388
uint8_t capacity_recent_charge_power_low_8_bit
Definition protocol.h:653
uint16_t coin_remaining_num
Definition protocol.h:390
uint8_t intention
Definition protocol.h:624
uint16_t data_cmd_id
Definition protocol.h:433
uint16_t sentry_position_y
Definition protocol.h:591
uint32_t reversed
Definition protocol.h:419
uint16_t blue_1_robot_hp
Definition protocol.h:250
uint16_t max_hp
Definition protocol.h:330
uint8_t below_road_enemy_terrain_span_buff_point_state
Definition protocol.h:410
uint8_t capacity_recent_charge_power_high_8_bit
Definition protocol.h:652
GraphConfig config
Definition protocol.h:510
uint32_t LR
Definition protocol.h:675
uint32_t r_2
Definition protocol.h:672
uint8_t state_machine_running_state
Definition protocol.h:659
float yaw
Definition protocol.h:354
uint8_t mark_sentry_progress
Definition protocol.h:504
uint8_t robot_id
Definition protocol.h:327
uint8_t capacity_remain_charge_low_8_bit
Definition protocol.h:655
uint8_t data
Definition protocol.h:541
uint8_t state_machine_before_reset_mode
Definition protocol.h:689
uint8_t supply_projectile_num
Definition protocol.h:306
uint8_t central_point_state
Definition protocol.h:297
uint8_t winner
Definition protocol.h:237
uint8_t f_3_zone_status
Definition protocol.h:272
uint16_t blue_2_bullet_left
Definition protocol.h:283
uint16_t red_2_robot_hp
Definition protocol.h:243
uint16_t is_out_of_war
Definition protocol.h:564
uint8_t count
Definition protocol.h:313
uint8_t robot_ID
Definition protocol.h:605
uint16_t infantry_4_position_x
Definition protocol.h:586
uint8_t bullet_42_mm_num
Definition protocol.h:635
uint16_t red_1_robot_hp
Definition protocol.h:242
uint8_t dart_current_target
Definition protocol.h:321
bool engineer_marked
Definition protocol.h:608
uint8_t game_type
Definition protocol.h:229
uint8_t own_fort_buff_point
Definition protocol.h:412
uint8_t mains_power_gimbal_output
Definition protocol.h:334
uint8_t f_1_zone_status
Definition protocol.h:268
uint8_t own_outpost_buff_point
Definition protocol.h:413
uint8_t f_6_zone_buff_debuff_status
Definition protocol.h:279
uint16_t red_1_bullet_left
Definition protocol.h:280
uint32_t sentry_info
Definition protocol.h:547
uint8_t game_progress
Definition protocol.h:230
uint16_t shooter_id_1_17_mm_cooling_heat
Definition protocol.h:345
uint8_t chassis_power_low_8_bit
Definition protocol.h:649
uint8_t central_elevated_ground_state
Definition protocol.h:293
uint16_t shooter_id_2_17_mm_cooling_heat
Definition protocol.h:346
uint16_t blue_7_robot_hp
Definition protocol.h:255
float target_position_x
Definition protocol.h:571
uint8_t small_power_rune_state
Definition protocol.h:291
uint8_t own_large_resource_island_point
Definition protocol.h:416
uint16_t red_4_robot_hp
Definition protocol.h:245
uint32_t PSR
Definition protocol.h:677
uint16_t latest_launch_cmd_time
Definition protocol.h:427
uint8_t capacity_expect_charge_power
Definition protocol.h:656
uint8_t nan_overlapping_supply_station_state
Definition protocol.h:288
uint8_t cmd_source
Definition protocol.h:575
uint16_t remain_hp
Definition protocol.h:329
uint32_t r_3
Definition protocol.h:673
uint8_t power_management_topology
Definition protocol.h:657
uint8_t f_4_zone_buff_debuff_status
Definition protocol.h:275
uint8_t hurt_type
Definition protocol.h:375
uint8_t chassis_power_high_8_bit
Definition protocol.h:648
uint8_t enemy_central_elevated_ground_state
Definition protocol.h:397
uint8_t recovery_buff
Definition protocol.h:359
float hero_x
Definition protocol.h:486
uint16_t red_outpost_hp
Definition protocol.h:248
int16_t mouse_x
Definition protocol.h:613
uint16_t red_2_bullet_left
Definition protocol.h:281
float reserved_1
Definition protocol.h:494
uint8_t abnormal_reset_reason
Definition protocol.h:687
uint8_t supply_projectile_step
Definition protocol.h:305
uint16_t infantry_4_position_y
Definition protocol.h:587
uint8_t dart_launch_opening_status
Definition protocol.h:424
uint16_t red_7_robot_hp
Definition protocol.h:247
uint8_t f_3_zone_buff_debuff_status
Definition protocol.h:273
uint8_t below_central_enemy_terrain_span_buff_point_state
Definition protocol.h:406
uint16_t hero_position_x
Definition protocol.h:580
float reserved_2
Definition protocol.h:495
uint8_t command_keyboard
Definition protocol.h:573
float engineer_y
Definition protocol.h:489
uint8_t behind_enemy_terrain_span_buff_point_state
Definition protocol.h:403
uint8_t mark_hero_progress
Definition protocol.h:500
uint16_t chassis_power_limit
Definition protocol.h:333
uint16_t red_3_robot_hp
Definition protocol.h:244
int16_t mouse_z
Definition protocol.h:615
uint8_t crc_8
Definition protocol.h:224
uint8_t f_6_zone_status
Definition protocol.h:278
uint8_t defence_buff
Definition protocol.h:361
uint8_t bullet_17_mm_num
Definition protocol.h:636
uint8_t below_central_own_terrain_span_buff_point_state
Definition protocol.h:404
uint64_t sync_time_stamp
Definition protocol.h:232
uint16_t bullet_allowance_num_42_mm
Definition protocol.h:389
uint16_t shooter_cooling_limit
Definition protocol.h:332
uint8_t shooter_id
Definition protocol.h:381
uint8_t mains_power_shooter_output
Definition protocol.h:336
uint8_t f_2_zone_status
Definition protocol.h:270
uint8_t power_management_protection_info
Definition protocol.h:658
uint8_t f_4_zone_status
Definition protocol.h:274
uint16_t keyboard_value
Definition protocol.h:618
uint8_t enemy_total_hit_received
Definition protocol.h:320
uint16_t hero_position_y
Definition protocol.h:581
uint8_t f_2_zone_buff_debuff_status
Definition protocol.h:271
uint8_t bullet_freq
Definition protocol.h:382
uint8_t sof
Definition protocol.h:221
uint8_t behind_own_terrain_span_buff_point_state
Definition protocol.h:401
uint8_t mark_engineer_progress
Definition protocol.h:501
float standard_4_x
Definition protocol.h:492
uint8_t base_buff_point_state
Definition protocol.h:395
uint8_t reversed
Definition protocol.h:425
uint16_t attack_buff
Definition protocol.h:363
uint16_t blue_2_robot_hp
Definition protocol.h:251
uint8_t forward_enemy_terrain_span_buff_point_state
Definition protocol.h:402
uint8_t seq
Definition protocol.h:223
uint32_t PC
Definition protocol.h:676
uint8_t chassis_expect_power_high_8_bit
Definition protocol.h:650
uint8_t nan_overlapping_supplier_zone
Definition protocol.h:414
float hero_y
Definition protocol.h:487
uint8_t dart_last_aim_state
Definition protocol.h:319
uint16_t stage_remaining_time
Definition protocol.h:263
uint8_t level
Definition protocol.h:311
uint16_t infantry_5_position_x
Definition protocol.h:588
uint8_t capacity_remain_charge_high_8_bit
Definition protocol.h:654
float standard_3_x
Definition protocol.h:490
uint8_t central_buff_point
Definition protocol.h:418
uint16_t remaining_bullets_can_supply
Definition protocol.h:565
uint16_t blue_4_robot_hp
Definition protocol.h:253
uint16_t data_length
Definition protocol.h:222
float standard_3_y
Definition protocol.h:491
uint8_t upper_road_own_terrain_span_buff_point_state
Definition protocol.h:409
uint16_t shooter_id_1_42_mm_cooling_heat
Definition protocol.h:347
uint8_t own_central_elevated_ground_state
Definition protocol.h:396
uint16_t start_position_x
Definition protocol.h:625
uint16_t reserved
Definition protocol.h:298
uint16_t infantry_3_position_y
Definition protocol.h:585
uint16_t receiver_id
Definition protocol.h:435
int8_t right_button_down
Definition protocol.h:617
uint8_t enemy_large_resource_island_point
Definition protocol.h:417
uint8_t f_5_zone_buff_debuff_status
Definition protocol.h:277
uint8_t supplier_zone_state
Definition protocol.h:290
uint8_t robot_level
Definition protocol.h:328
uint16_t sentry_position_x
Definition protocol.h:590
uint8_t chassis_expect_power_low_8_bit
Definition protocol.h:651
uint16_t infantry_5_position_y
Definition protocol.h:589
int16_t mouse_y
Definition protocol.h:614
uint8_t armor_id
Definition protocol.h:374
uint8_t trapezoidal_elevated_ground_state
Definition protocol.h:294
uint8_t own_trapezoidal_elevated_ground_state
Definition protocol.h:398
int8_t left_button_down
Definition protocol.h:616
uint16_t shooter_cooling_rate
Definition protocol.h:331
float reserved_3
Definition protocol.h:343
uint8_t below_road_own_terrain_span_buff_point_state
Definition protocol.h:408
InteractiveDataHeader header
Definition protocol.h:509
uint8_t upper_central_enemy_terrain_span_buff_point_state
Definition protocol.h:407
uint8_t radar_info
Definition protocol.h:553
uint8_t supply_robot_id
Definition protocol.h:304
uint16_t infantry_3_position_x
Definition protocol.h:584
uint16_t engineer_position_y
Definition protocol.h:583
uint8_t f_1_zone_buff_debuff_status
Definition protocol.h:269
uint8_t power_management_before_reset_topology
Definition protocol.h:688
uint16_t engineer_position_x
Definition protocol.h:582
uint32_t r_1
Definition protocol.h:671
float y
Definition protocol.h:353
float target_position_y
Definition protocol.h:572
uint16_t blue_base_hp
Definition protocol.h:257
uint8_t attack_time
Definition protocol.h:369
uint16_t red_base_hp
Definition protocol.h:249
uint8_t mark_standard_4_progress
Definition protocol.h:503
uint16_t start_position_y
Definition protocol.h:626
float position_x
Definition protocol.h:606
uint16_t blue_1_bullet_left
Definition protocol.h:282
uint8_t overlapping_supplier_zone
Definition protocol.h:415
uint8_t large_power_rune_state
Definition protocol.h:292
uint32_t r_12
Definition protocol.h:674
float bullet_speed
Definition protocol.h:383
uint8_t dart_remaining_time
Definition protocol.h:318
uint8_t target_robot_ID
Definition protocol.h:574
uint8_t bullet_type
Definition protocol.h:380
uint16_t be_hit_time
Definition protocol.h:295
uint8_t mark_standard_3_progress
Definition protocol.h:502
uint8_t dart_belong
Definition protocol.h:262
uint8_t overlapping_supply_station_state
Definition protocol.h:289
uint8_t upper_central_own_terrain_span_buff_point_state
Definition protocol.h:405
uint16_t blue_3_robot_hp
Definition protocol.h:252
uint8_t mains_power_chassis_output
Definition protocol.h:335
uint8_t vulnerability_buff
Definition protocol.h:362
uint16_t sender_id
Definition protocol.h:434
uint16_t target_change_time
Definition protocol.h:426
uint8_t foul_robot_id
Definition protocol.h:312
uint8_t be_hit_target
Definition protocol.h:296
float position_y
Definition protocol.h:607
uint16_t reserved_2
Definition protocol.h:254
uint8_t f_5_zone_status
Definition protocol.h:276
InteractiveDataHeader header_data
Definition protocol.h:540
uint8_t cooling_buff
Definition protocol.h:360
uint8_t reserved
Definition protocol.h:303
uint16_t reserved_1
Definition protocol.h:246
uint16_t stage_remain_time
Definition protocol.h:231
float standard_4_y
Definition protocol.h:493
uint8_t upper_road_enemy_terrain_span_buff_point_state
Definition protocol.h:411
uint16_t blue_outpost_hp
Definition protocol.h:256
uint16_t reverse
Definition protocol.h:566
Definition protocol.h:439
uint32_t start_x
Definition protocol.h:448
uint32_t start_angle
Definition protocol.h:445
uint32_t radius
Definition protocol.h:450
uint32_t color
Definition protocol.h:444
uint8_t graphic_id[3]
Definition protocol.h:440
bool operator==(const GraphConfig &config)
Definition protocol.h:453
uint32_t end_x
Definition protocol.h:451
uint32_t width
Definition protocol.h:447
uint32_t end_y
Definition protocol.h:452
uint32_t graphic_type
Definition protocol.h:442
uint32_t start_y
Definition protocol.h:449
uint32_t end_angle
Definition protocol.h:446
uint32_t operate_type
Definition protocol.h:441
GraphConfig & operator=(const GraphConfig &config)
Definition protocol.h:463
uint32_t layer
Definition protocol.h:443