Skip to content

Commit c3d6924

Browse files
authored
Merge pull request #254 from 321Aurora/deploy-ui
Achieve deploy ui and add deploy mode in chassis cmd
2 parents c791681 + 0697d97 commit c3d6924

File tree

5 files changed

+41
-0
lines changed

5 files changed

+41
-0
lines changed

rm_msgs/msg/ChassisCmd.msg

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ uint8 FOLLOW = 1
33
uint8 TWIST = 2
44
uint8 UP_SLOPE = 3
55
uint8 FALLEN = 4
6+
uint8 DEPLOY = 5
67

78
uint8 mode
89
geometry_msgs/Accel accel

rm_referee/include/rm_referee/referee_base.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,7 @@ class RefereeBase
130130

131131
CoverFlashUi* cover_flash_ui_{};
132132
SpinFlashUi* spin_flash_ui_{};
133+
DeployFlashUi* deploy_flash_ui_{};
133134
HeroHitFlashUi* hero_hit_flash_ui_{};
134135
ExceedBulletSpeedFlashUi* exceed_bullet_speed_flash_ui_{};
135136
CustomizeDisplayFlashUi* customize_display_flash_ui_{};

rm_referee/include/rm_referee/ui/flash_ui.h

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,21 @@ class SpinFlashUi : public FlashUi
9191
uint8_t chassis_mode_;
9292
};
9393

94+
class DeployFlashUi : public FlashUi
95+
{
96+
public:
97+
explicit DeployFlashUi(XmlRpc::XmlRpcValue& rpc_value, Base& base, std::deque<Graph>* graph_queue,
98+
std::deque<Graph>* character_queue)
99+
: FlashUi(rpc_value, base, "deploy", graph_queue, character_queue){};
100+
void updateChassisCmdData(const rm_msgs::ChassisCmd::ConstPtr& data, const ros::Time& last_get_data_time);
101+
void updateChassisVelData(const geometry_msgs::Twist::ConstPtr& data);
102+
103+
private:
104+
void display(const ros::Time& time) override;
105+
uint8_t chassis_mode_;
106+
double angular_z_{ 0. };
107+
};
108+
94109
class HeroHitFlashUi : public FlashGroupUi
95110
{
96111
public:

rm_referee/src/referee_base.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,8 @@ RefereeBase::RefereeBase(ros::NodeHandle& nh, Base& base) : base_(base), nh_(nh)
150150
cover_flash_ui_ = new CoverFlashUi(rpc_value[i], base_, &graph_queue_, &character_queue_);
151151
if (rpc_value[i]["name"] == "spin")
152152
spin_flash_ui_ = new SpinFlashUi(rpc_value[i], base_, &graph_queue_, &character_queue_);
153+
if (rpc_value[i]["name"] == "deploy")
154+
deploy_flash_ui_ = new DeployFlashUi(rpc_value[i], base_, &graph_queue_, &character_queue_);
153155
if (rpc_value[i]["name"] == "hero_hit")
154156
hero_hit_flash_ui_ = new HeroHitFlashUi(rpc_value[i], base_, &graph_queue_, &character_queue_);
155157
if (rpc_value[i]["name"] == "exceed_bullet_speed")
@@ -432,11 +434,15 @@ void RefereeBase::chassisCmdDataCallback(const rm_msgs::ChassisCmd::ConstPtr& da
432434
chassis_trigger_change_ui_->updateChassisCmdData(data);
433435
if (spin_flash_ui_ && !is_adding_)
434436
spin_flash_ui_->updateChassisCmdData(data, ros::Time::now());
437+
if (deploy_flash_ui_ && !is_adding_)
438+
deploy_flash_ui_->updateChassisCmdData(data, ros::Time::now());
435439
if (rotation_time_change_ui_ && !is_adding_)
436440
rotation_time_change_ui_->updateChassisCmdData(data);
437441
}
438442
void RefereeBase::vel2DCmdDataCallback(const geometry_msgs::Twist::ConstPtr& data)
439443
{
444+
if (deploy_flash_ui_ && !is_adding_)
445+
deploy_flash_ui_->updateChassisVelData(data);
440446
}
441447
void RefereeBase::shootStateCallback(const rm_msgs::ShootState::ConstPtr& data)
442448
{

rm_referee/src/ui/flash_ui.cpp

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,24 @@ void SpinFlashUi::updateChassisCmdData(const rm_msgs::ChassisCmd::ConstPtr data,
166166
display(last_get_data_time);
167167
}
168168

169+
void DeployFlashUi::display(const ros::Time& time)
170+
{
171+
if (!(chassis_mode_ == rm_msgs::ChassisCmd::RAW && angular_z_ == 0.0))
172+
graph_->setOperation(rm_referee::GraphOperation::DELETE);
173+
FlashUi::updateFlashUiForQueue(time, (chassis_mode_ == rm_msgs::ChassisCmd::RAW && angular_z_ == 0.0), false);
174+
}
175+
176+
void DeployFlashUi::updateChassisCmdData(const rm_msgs::ChassisCmd::ConstPtr& data, const ros::Time& last_get_data_time)
177+
{
178+
chassis_mode_ = data->mode;
179+
display(last_get_data_time);
180+
}
181+
182+
void DeployFlashUi::updateChassisVelData(const geometry_msgs::Twist::ConstPtr& data)
183+
{
184+
angular_z_ = data->angular.z;
185+
}
186+
169187
void HeroHitFlashUi::updateHittingConfig(const rm_msgs::GameRobotHp& msg)
170188
{
171189
if (base_.robot_id_ > 100)

0 commit comments

Comments
 (0)