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 updateChassisCmdData(const rm_msgs::ChassisCmd::ConstPtr& data, const ros::Time& last_get_data_time);
101 void updateChassisVelData(const geometry_msgs::Twist::ConstPtr& data);
102
103private:
104 void display(const ros::Time& time) override;
105 uint8_t chassis_mode_;
106 double angular_z_{ 0. };
107};
108
110{
111public:
112 explicit HeroHitFlashUi(XmlRpc::XmlRpcValue& rpc_value, Base& base, std::deque<Graph>* graph_queue,
113 std::deque<Graph>* character_queue)
114 : FlashGroupUi(rpc_value, base, " hero_hit", graph_queue, character_queue)
115 {
116 graph_vector_.insert(std::pair<std::string, Graph*>("1", new Graph(rpc_value["config"], base_, id_++)));
117 graph_vector_.insert(std::pair<std::string, Graph*>("2", new Graph(rpc_value["config"], base_, id_++)));
118 for (auto it : graph_vector_)
119 {
120 if (it.first == "1")
121 {
122 it.second->setStartX(960 + 50);
123 it.second->setStartY(540 + 50);
124 it.second->setEndX(960 - 50);
125 it.second->setEndY(540 - 50);
126 }
127 else if (it.first == "2")
128 {
129 it.second->setStartX(960 - 50);
130 it.second->setStartY(540 + 50);
131 it.second->setEndX(960 + 50);
132 it.second->setEndY(540 - 50);
133 }
134 }
135 }
136 void updateHittingConfig(const rm_msgs::GameRobotHp& msg);
137
138private:
139 void display(const ros::Time& time) override;
140 bool hitted_;
141 rm_msgs::GameRobotHp last_hp_msg_;
142};
143
145{
146public:
147 explicit ExceedBulletSpeedFlashUi(XmlRpc::XmlRpcValue& rpc_value, Base& base, std::deque<Graph>* graph_queue,
148 std::deque<Graph>* character_queue)
149 : FlashUi(rpc_value, base, "exceed_bullet_speed", graph_queue, character_queue)
150 {
151 }
152 void updateShootData(const rm_msgs::ShootData& msg);
153
154private:
155 void display(const ros::Time& time) override;
156 rm_msgs::ShootData shoot_data_;
157};
158
159class BurstFlashUi : public FlashUi
160{
161public:
162 explicit BurstFlashUi(XmlRpc::XmlRpcValue& rpc_value, Base& base, std::deque<Graph>* graph_queue,
163 std::deque<Graph>* character_queue)
164 : FlashUi(rpc_value, base, "burst", graph_queue, character_queue)
165 {
166 }
167 void updateBurstTimeData(const rm_msgs::ManualToReferee::ConstPtr& data);
168
169private:
170 void display(const ros::Time& time) override;
171 ros::Time start_burst_time_;
172};
173} // namespace rm_referee
Definition data.h:112
Definition flash_ui.h:160
BurstFlashUi(XmlRpc::XmlRpcValue &rpc_value, Base &base, std::deque< Graph > *graph_queue, std::deque< Graph > *character_queue)
Definition flash_ui.h:162
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:145
ExceedBulletSpeedFlashUi(XmlRpc::XmlRpcValue &rpc_value, Base &base, std::deque< Graph > *graph_queue, std::deque< Graph > *character_queue)
Definition flash_ui.h:147
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:110
HeroHitFlashUi(XmlRpc::XmlRpcValue &rpc_value, Base &base, std::deque< Graph > *graph_queue, std::deque< Graph > *character_queue)
Definition flash_ui.h:112
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:101