3#ifndef __SUBSYSTEMS_TYPES_H
4#define __SUBSYSTEMS_TYPES_H
7#include "attitude_types.h"
8#include "motor_types.h"
9#include "subsystems_defines.h"
11#include "uarm_types.hpp"
34 CHASSIS_WHEEL1 = 0x201,
35 CHASSIS_WHEEL2 = 0x202,
36 CHASSIS_WHEEL3 = 0x203,
37 CHASSIS_WHEEL4 = 0x204,
40 SWERVE_STEER_MOTOR1 = 0x141,
41 SWERVE_STEER_MOTOR2 = 0x142,
42 SWERVE_STEER_MOTOR3 = 0x143,
43 SWERVE_STEER_MOTOR4 = 0x144,
46 SHOOT_LEFT_FRIC = 0x201,
47 SHOOT_RIGHT_FRIC = 0x202,
63typedef enum { DJI, LK, UNKNOWN_MOTOR } Motor_Brand_t;
74 Motor_Config_t config;
92typedef enum { NORMAL = 1, ABNORMAL } IMU_temp_status;
102 uint32_t sample_time;
104 IMU_temp_status temp_status;
112typedef enum Topic_Name_t {
142typedef uint8_t* QueueHandle_t;
148 uint8_t queue_length;
149 QueueHandle_t queue_handle;
175 int32_t motor_can_volts[MAX_MOTOR_COUNT];
176 Motor_CAN_ID_t can_ids[MAX_MOTOR_COUNT];
180 uint8_t feedback[MAX_MOTOR_COUNT][8];
181 Motor_CAN_ID_t can_ids[MAX_MOTOR_COUNT];
188 uint16_t command_bits;
194 uint32_t command_bits;
198 uint32_t command_bits;
205 uint16_t shoot_barrel_cooling_rate;
206 uint16_t shoot_barrel_heat_limit;
207 uint16_t chassis_power_limit;
213typedef enum { GIMBAL_BOARD = 1, CHASSIS_BOARD = 2 } BoardStatus_t;
231typedef enum Event_t { IMU_READY = 1 << 0 } Event_t;
233typedef uint32_t UARM_Events_t;
235typedef enum Task_Sync_t {
245 TS_WATCHDOG = 1 << 10,
248typedef enum Sync_Event_t {
255typedef enum { FIGURE_ID = 0, INFO_ID = 1, NUMBER_ID = 2 } referee_name_type_t;
257typedef enum { UNKOWN = 0, RED_TEAM, BLUE_TEAM } robot_color_t;
262 GAME_STAT_ID = 0x0001,
263 GAME_RESULT_ID = 0x0002,
265 ROBOT_STAT_ID = 0x0201,
266 POWER_HEAT_ID = 0x0202,
270 INTERA_UI_ID = 0x0301,
271 INTERA_USER_DATA_ID = 0x0302,
274typedef struct __attribute__((__packed__)) {
280typedef struct __attribute__((__packed__))
282 uint8_t game_type : 4;
283 uint8_t game_progress : 4;
284 uint16_t stage_remain_time;
285 uint64_t SyncTimeStamp;
288typedef struct __attribute__((__packed__))
290 uint16_t red_1_robot_HP;
291 uint16_t red_2_robot_HP;
292 uint16_t red_3_robot_HP;
293 uint16_t red_4_robot_HP;
294 uint16_t red_5_robot_HP;
295 uint16_t red_7_robot_HP;
296 uint16_t red_outpost_HP;
297 uint16_t red_base_HP;
298 uint16_t blue_1_robot_HP;
299 uint16_t blue_2_robot_HP;
300 uint16_t blue_3_robot_HP;
301 uint16_t blue_4_robot_HP;
302 uint16_t blue_5_robot_HP;
303 uint16_t blue_7_robot_HP;
304 uint16_t blue_outpost_HP;
305 uint16_t blue_base_HP;
308typedef struct __attribute__((__packed__))
314 uint16_t shooter_barrel_cooling_value;
315 uint16_t shooter_barrel_heat_limit;
316 uint16_t chassis_power_limit;
317 uint8_t power_management_gimbal_output : 1;
318 uint8_t power_management_chassis_output : 1;
319 uint8_t power_management_shooter_output : 1;
324 uint16_t chassis_voltage;
325 uint16_t chassis_current;
327 uint16_t buffer_energy;
328 uint16_t shooter_17mm_1_barrel_heat;
329 uint16_t shooter_17mm_2_barrel_heat;
330 uint16_t shooter_42mm_barrel_heat;
333typedef struct __attribute__((__packed__))
336 uint8_t shooter_number;
337 uint8_t launching_frequency;
342typedef struct __attribute__((__packed__))
344 uint16_t data_cmd_id;
346 uint16_t receiver_id;
347 uint8_t user_data[113];
348} robot_interaction_data_t;
351typedef struct __attribute__((__packed__))
355} interaction_layer_delete_t;
357typedef struct __attribute__((__packed__))
359 uint8_t figure_name[3];
360 uint32_t operate_tpye : 3;
361 uint32_t figure_tpye : 3;
364 uint32_t details_a : 9;
365 uint32_t details_b : 9;
367 uint32_t start_x : 11;
368 uint32_t start_y : 11;
369 uint32_t details_c : 10;
370 uint32_t details_d : 11;
371 uint32_t details_e : 11;
372} interaction_figure_t;
374typedef struct __attribute__((__packed__))
376 interaction_figure_t interaction_figure[2];
377} interaction_figure_2_t;
379typedef struct __attribute__((__packed__))
381 interaction_figure_t interaction_figure[5];
382} interaction_figure_5_t;
384typedef struct __attribute__((__packed__))
386 interaction_figure_t interaction_figure[7];
387} interaction_figure_7_t;
389typedef struct __attribute__((__packed__))
391 interaction_figure_t figure_data_struct;
393} ext_client_custom_character_t;
395typedef struct __attribute__((__packed__))
398} custom_robot_data_t;
401typedef struct __attribute__((__packed__)) {
403 uint16_t data_length;
427 SUB_UI_LAYER_DEL_ID = 0x0100,
428 SUB_UI_DRAW_1_ID = 0x0101,
429 SUB_UI_DRAW_2_ID = 0x0102,
430 SUB_UI_DRAW_5_ID = 0x0103,
431 SUB_UI_DRAW_7_ID = 0x0104,
432 SUB_UI_EXT_CUSTOM_ID = 0x0110
438 uint32_t super_cap_percent;
442 robot_interaction_data_t ui_intrect_data;
443 robot_interaction_data_t ui_intrect_data_info;
444 interaction_layer_delete_t ui_del_fig_data;
445 interaction_figure_t ui_figure_data;
446 interaction_figure_2_t ui_figure_draw_2_data;
447 interaction_figure_5_t ui_figure_draw_5_data;
448 interaction_figure_7_t ui_draw_marks_data;
449 interaction_figure_7_t ui_draw_info_data;
450 ext_client_custom_character_t ui_custom_data;
452 uint8_t first_drawing_flag;
453 uint8_t first_drawing_flag_info;
454 uint8_t cur_sending_count;
455 referee_ui_type_t cur_sending_id;
463constexpr uint32_t DBUS_BUFFER_LENGTH = 18;
464constexpr uint16_t CHANNEL_CENTER = 1024;
465constexpr uint16_t MOUSE_MAX_SPEED = 15000;
466constexpr uint16_t MAX_CHANNEL_VALUE = 660;
468using Buffer = std::array<uint8_t, DBUS_BUFFER_LENGTH>;
470enum class EKeyStatus {
477enum class ESwitchState {
484enum class EKeyBitIndex {
516 EKeyStatus pre_status;
517 uint8_t status_count;
557enum class EAmmoLidStatus {
569 uint8_t should_shoot;
575 uint8_t control_code;
576 uint32_t sequence_number;
577 uint32_t acknowledge;
596 uint8_t as_bytes[PACK_TRAILER_SIZE];
603 uint8_t trailer_size;
Definition attitude_types.h:9
Definition subsystems_types.h:152
Definition subsystems_types.h:184
Definition subsystems_types.h:503
Definition subsystems_types.h:65
Definition subsystems_types.h:191
Definition subsystems_types.h:99
Definition subsystems_types.h:514
Definition subsystems_types.h:520
Definition subsystems_types.h:179
Definition subsystems_types.h:174
Definition subsystems_types.h:539
Definition subsystems_types.h:549
Definition subsystems_types.h:157
Definition subsystems_types.h:441
Definition subsystems_types.h:202
Definition subsystems_types.h:197
Definition subsystems_types.h:72
Definition subsystems_types.h:145
Definition subsystems_types.h:567
Definition subsystems_types.h:581
Definition subsystems_types.h:574
Definition subsystems_types.h:323
Definition subsystems_types.h:435
Definition subsystems_types.h:594