rm_control
Loading...
Searching...
No Matches
flash_ui.h
Go to the documentation of this file.
1//
2// Created by llljjjqqq on 22-11-4.
3//
4
5#pragma once
6
8
9namespace rm_referee
10{
11class FlashUi : public UiBase
12{
13public:
14 explicit FlashUi(XmlRpc::XmlRpcValue& rpc_value, Base& base, const std::string& graph_name,
15 std::deque<Graph>* graph_queue, std::deque<Graph>* character_queue)
16 : UiBase(rpc_value, base, graph_queue, character_queue)
17 {
18 graph_ = new Graph(rpc_value["config"], base_, id_++);
19 }
20 virtual void display(const ros::Time& time){};
21 virtual void updateConfig(){};
22 void updateFlashUiForQueue(const ros::Time& time, bool state, bool once);
23};
24
26{
27public:
28 explicit FlashGroupUi(XmlRpc::XmlRpcValue& rpc_value, Base& base, const std::string& graph_name,
29 std::deque<Graph>* graph_queue, std::deque<Graph>* character_queue)
30 : GroupUiBase(rpc_value, base, graph_queue, character_queue)
31 {
32 graph_name_ = graph_name;
33 }
34 virtual void display(const ros::Time& time){};
35 virtual void updateConfig(){};
36 void updateFlashUiForQueue(const ros::Time& time, bool state, bool once);
37 void updateFlashUiForQueue(const ros::Time& time, bool state, bool once, Graph* graph);
38
39protected:
40 std::string graph_name_;
41};
42
44{
45public:
46 explicit CustomizeDisplayFlashUi(XmlRpc::XmlRpcValue& rpc_value, Base& base, std::deque<Graph>* graph_queue,
47 std::deque<Graph>* character_queue)
48 : FlashGroupUi(rpc_value, base, "customize_display", graph_queue, character_queue)
49 {
50 if (rpc_value.hasMember("data"))
51 {
52 XmlRpc::XmlRpcValue& data = rpc_value["data"];
53 for (int i = 0; i < static_cast<int>(rpc_value["data"].size()); i++)
54 {
55 graph_vector_.insert(std::pair<std::string, Graph*>(std::to_string(static_cast<int>(data[i]["flag"])),
56 new Graph(data[i]["config"], base_, id_++)));
57 }
58 }
59 }
60 void updateCmdData(const uint32_t& data);
61
62private:
63 void display(const ros::Time& time) override;
64 uint32_t symbol_;
65};
66
67class CoverFlashUi : public FlashUi
68{
69public:
70 explicit CoverFlashUi(XmlRpc::XmlRpcValue& rpc_value, Base& base, std::deque<Graph>* graph_queue,
71 std::deque<Graph>* character_queue)
72 : FlashUi(rpc_value, base, "cover", graph_queue, character_queue){};
73 void updateManualCmdData(const rm_msgs::ManualToReferee::ConstPtr data, const ros::Time& last_get_data_time) override;
74
75private:
76 void display(const ros::Time& time) override;
77
78 uint8_t cover_state_;
79};
80
81class SpinFlashUi : public FlashUi
82{
83public:
84 explicit SpinFlashUi(XmlRpc::XmlRpcValue& rpc_value, Base& base, std::deque<Graph>* graph_queue,
85 std::deque<Graph>* character_queue)
86 : FlashUi(rpc_value, base, "spin", graph_queue, character_queue){};
87 void updateChassisCmdData(const rm_msgs::ChassisCmd::ConstPtr data, const ros::Time& last_get_data_time);
88
89private:
90 void display(const ros::Time& time) override;
91 uint8_t chassis_mode_;
92};
93
94class DeployFlashUi : public FlashUi
95{
96public:
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 updateAllowDeployFire(bool flag);
101 void updateChassisCmdData(const rm_msgs::ChassisCmd::ConstPtr& data);
102 void updateChassisVelData(const geometry_msgs::Twist::ConstPtr& data);
103
104private:
105 void display(const ros::Time& time) override;
106 uint8_t chassis_mode_;
107 double angular_z_{ 0. };
108 bool allow_deploy_fire_{ false };
109};
110
112{
113public:
114 explicit HeroHitFlashUi(XmlRpc::XmlRpcValue& rpc_value, Base& base, std::deque<Graph>* graph_queue,
115 std::deque<Graph>* character_queue)
116 : FlashGroupUi(rpc_value, base, " hero_hit", graph_queue, character_queue)
117 {
118 graph_vector_.insert(std::pair<std::string, Graph*>("1", new Graph(rpc_value["config"], base_, id_++)));
119 graph_vector_.insert(std::pair<std::string, Graph*>("2", new Graph(rpc_value["config"], base_, id_++)));
120 for (auto it : graph_vector_)
121 {
122 if (it.first == "1")
123 {
124 it.second->setStartX(960 + 50);
125 it.second->setStartY(540 + 50);
126 it.second->setEndX(960 - 50);
127 it.second->setEndY(540 - 50);
128 }
129 else if (it.first == "2")
130 {
131 it.second->setStartX(960 - 50);
132 it.second->setStartY(540 + 50);
133 it.second->setEndX(960 + 50);
134 it.second->setEndY(540 - 50);
135 }
136 }
137 }
138 void updateHittingConfig(const rm_msgs::GameRobotHp& msg);
139
140private:
141 void display(const ros::Time& time) override;
142 bool hitted_;
143 rm_msgs::GameRobotHp last_hp_msg_;
144};
145
147{
148public:
149 explicit ExceedBulletSpeedFlashUi(XmlRpc::XmlRpcValue& rpc_value, Base& base, std::deque<Graph>* graph_queue,
150 std::deque<Graph>* character_queue)
151 : FlashUi(rpc_value, base, "exceed_bullet_speed", graph_queue, character_queue)
152 {
153 }
154 void updateShootData(const rm_msgs::ShootData& msg);
155
156private:
157 void display(const ros::Time& time) override;
158 rm_msgs::ShootData shoot_data_;
159};
160
161class BurstFlashUi : public FlashUi
162{
163public:
164 explicit BurstFlashUi(XmlRpc::XmlRpcValue& rpc_value, Base& base, std::deque<Graph>* graph_queue,
165 std::deque<Graph>* character_queue)
166 : FlashUi(rpc_value, base, "burst", graph_queue, character_queue)
167 {
168 }
169 void updateBurstTimeData(const rm_msgs::ManualToReferee::ConstPtr& data);
170
171private:
172 void display(const ros::Time& time) override;
173 ros::Time start_burst_time_;
174};
175} // namespace rm_referee
Definition data.h:120
Definition flash_ui.h:162
BurstFlashUi(XmlRpc::XmlRpcValue &rpc_value, Base &base, std::deque< Graph > *graph_queue, std::deque< Graph > *character_queue)
Definition flash_ui.h:164
Definition flash_ui.h:68
CoverFlashUi(XmlRpc::XmlRpcValue &rpc_value, Base &base, std::deque< Graph > *graph_queue, std::deque< Graph > *character_queue)
Definition flash_ui.h:70
Definition flash_ui.h:44
CustomizeDisplayFlashUi(XmlRpc::XmlRpcValue &rpc_value, Base &base, std::deque< Graph > *graph_queue, std::deque< Graph > *character_queue)
Definition flash_ui.h:46
Definition flash_ui.h:95
DeployFlashUi(XmlRpc::XmlRpcValue &rpc_value, Base &base, std::deque< Graph > *graph_queue, std::deque< Graph > *character_queue)
Definition flash_ui.h:97
Definition flash_ui.h:147
ExceedBulletSpeedFlashUi(XmlRpc::XmlRpcValue &rpc_value, Base &base, std::deque< Graph > *graph_queue, std::deque< Graph > *character_queue)
Definition flash_ui.h:149
Definition flash_ui.h:26
std::string graph_name_
Definition flash_ui.h:40
virtual void display(const ros::Time &time)
Definition flash_ui.h:34
virtual void updateConfig()
Definition flash_ui.h:35
void updateFlashUiForQueue(const ros::Time &time, bool state, bool once)
Definition flash_ui.cpp:38
FlashGroupUi(XmlRpc::XmlRpcValue &rpc_value, Base &base, const std::string &graph_name, std::deque< Graph > *graph_queue, std::deque< Graph > *character_queue)
Definition flash_ui.h:28
Definition flash_ui.h:12
virtual void updateConfig()
Definition flash_ui.h:21
virtual void display(const ros::Time &time)
Definition flash_ui.h:20
void updateFlashUiForQueue(const ros::Time &time, bool state, bool once)
Definition flash_ui.cpp:9
FlashUi(XmlRpc::XmlRpcValue &rpc_value, Base &base, const std::string &graph_name, std::deque< Graph > *graph_queue, std::deque< Graph > *character_queue)
Definition flash_ui.h:14
Definition graph.h:13
Definition ui_base.h:72
Definition flash_ui.h:112
HeroHitFlashUi(XmlRpc::XmlRpcValue &rpc_value, Base &base, std::deque< Graph > *graph_queue, std::deque< Graph > *character_queue)
Definition flash_ui.h:114
Definition flash_ui.h:82
SpinFlashUi(XmlRpc::XmlRpcValue &rpc_value, Base &base, std::deque< Graph > *graph_queue, std::deque< Graph > *character_queue)
Definition flash_ui.h:84
Definition ui_base.h:20
Graph * graph_
Definition ui_base.h:59
static int id_
Definition ui_base.h:60
Base & base_
Definition ui_base.h:58
Definition data.h:109