42#include <serial/serial.h>
43#include <nav_msgs/Odometry.h>
44#include <sensor_msgs/JointState.h>
45#include <std_msgs/Float64.h>
46#include <std_msgs/Int8MultiArray.h>
47#include <tf2_ros/buffer.h>
48#include <tf2_ros/transform_listener.h>
49#include <tf2_geometry_msgs/tf2_geometry_msgs.h>
50#include "std_msgs/UInt32.h"
51#include "rm_msgs/VisualizeStateData.h"
55#include <rm_msgs/ShootCmd.h>
56#include <rm_msgs/ShootState.h>
57#include <rm_msgs/DbusData.h>
58#include <rm_msgs/StateCmd.h>
59#include <rm_msgs/EventData.h>
60#include <rm_msgs/GimbalCmd.h>
61#include <rm_msgs/RobotHurt.h>
62#include <rm_msgs/ShootData.h>
63#include <rm_msgs/DartStatus.h>
64#include <rm_msgs/ChassisCmd.h>
65#include <rm_msgs/GameStatus.h>
66#include <rm_msgs/RfidStatus.h>
67#include <rm_msgs/EngineerUi.h>
68#include <rm_msgs/GameRobotHp.h>
69#include <rm_msgs/BalanceState.h>
70#include <rm_msgs/DartClientCmd.h>
71#include <rm_msgs/ActuatorState.h>
72#include <rm_msgs/MapSentryData.h>
73#include <rm_msgs/RadarMarkData.h>
74#include <rm_msgs/PowerHeatData.h>
75#include <rm_msgs/GimbalDesError.h>
76#include <rm_msgs/BulletAllowance.h>
77#include <rm_msgs/GameRobotStatus.h>
78#include <rm_msgs/ManualToReferee.h>
79#include <rm_msgs/ClientMapSendData.h>
80#include <rm_msgs/RobotsPositionData.h>
81#include <rm_msgs/DartInfo.h>
82#include <rm_msgs/StatusChangeRequest.h>
83#include <rm_msgs/ClientMapReceiveData.h>
84#include <rm_msgs/SupplyProjectileAction.h>
85#include <rm_msgs/IcraBuffDebuffZoneStatus.h>
86#include <rm_msgs/GameRobotPosData.h>
87#include "rm_msgs/SentryInfo.h"
88#include "rm_msgs/SentryCmd.h"
89#include "rm_msgs/RadarInfo.h"
90#include "rm_msgs/Buff.h"
91#include "rm_msgs/TrackData.h"
92#include "rm_msgs/SentryAttackingTarget.h"
93#include "rm_msgs/RadarToSentry.h"
94#include <rm_msgs/PowerManagementSampleAndStatusData.h>
95#include <rm_msgs/PowerManagementSystemExceptionData.h>
96#include <rm_msgs/PowerManagementInitializationExceptionData.h>
97#include <rm_msgs/PowerManagementProcessStackOverflowData.h>
98#include <rm_msgs/PowerManagementUnknownExceptionData.h>
124 serial::Timeout timeout = serial::Timeout::simpleTimeout(50);
125 serial_.setPort(
"/dev/usbReferee");
134 catch (serial::IOException& e)
136 ROS_ERROR(
"Cannot open referee port");
141 uint8_t
getCRC8CheckSum(
unsigned char* pch_message,
unsigned int dw_length,
unsigned char uc_crc_8)
143 unsigned char uc_index;
146 uc_index = uc_crc_8 ^ (*pch_message++);
141 uint8_t
getCRC8CheckSum(
unsigned char* pch_message,
unsigned int dw_length,
unsigned char uc_crc_8) {
…}
154 unsigned char uc_expected;
155 if ((pch_message ==
nullptr) || (dw_length <= 2))
158 return (uc_expected == pch_message[dw_length - 1]);
163 unsigned char uc_crc;
164 if ((pch_message ==
nullptr) || (dw_length <= 2))
167 pch_message[dw_length - 1] = uc_crc;
173 if (pch_message ==
nullptr)
177 chData = *pch_message++;
178 (w_crc) = (
static_cast<uint16_t
>(w_crc) >> 8) ^
187 if ((pch_message ==
nullptr) || (dw_length <= 2))
190 return ((w_expected & 0xff) == pch_message[dw_length - 2] &&
191 ((w_expected >> 8) & 0xff) == pch_message[dw_length - 1]);
197 if ((pch_message ==
nullptr) || (dw_length <= 2))
200 pch_message[dw_length - 2] =
static_cast<uint8_t
>((wCRC & 0x00ff));
201 pch_message[dw_length - 1] =
static_cast<uint8_t
>(((wCRC >> 8) & 0x00ff));
serial::Serial serial_
Definition data.h:114
int capacity_recent_mode_
Definition data.h:118
int client_id_
Definition data.h:116
uint8_t getCRC8CheckSum(unsigned char *pch_message, unsigned int dw_length, unsigned char uc_crc_8)
Definition data.h:141
std::string robot_color_
Definition data.h:119
void appendCRC8CheckSum(unsigned char *pch_message, unsigned int dw_length)
Definition data.h:161
void appendCRC16CheckSum(uint8_t *pch_message, uint32_t dw_length)
Definition data.h:194
uint32_t verifyCRC8CheckSum(unsigned char *pch_message, unsigned int dw_length)
Definition data.h:152
void initSerial()
Definition data.h:122
bool referee_data_is_online_
Definition data.h:120
int robot_id_
Definition data.h:117
uint16_t getCRC16CheckSum(uint8_t *pch_message, uint32_t dw_length, uint16_t w_crc)
Definition data.h:170
int capacity_expect_mode_
Definition data.h:118
uint32_t verifyCRC16CheckSum(uint8_t *pch_message, uint32_t dw_length)
Definition data.h:184
const uint8_t kCrc8Init
Definition protocol.h:693
const uint8_t kCrc8Table[256]
Definition protocol.h:694
const uint16_t kCrc16Init
Definition protocol.h:710
const uint16_t wCRC_table[256]
Definition protocol.h:711
double chassis_power
Definition data.h:104
double limit_power
Definition data.h:105
double cap_power
Definition data.h:107
bool is_online
Definition data.h:108
double buffer_power
Definition data.h:106