9#include <rm_msgs/PowerManagementSampleAndStatusData.h>
16 explicit FlashUi(XmlRpc::XmlRpcValue& rpc_value,
Base& base,
const std::string& graph_name,
17 std::deque<Graph>* graph_queue, std::deque<Graph>* character_queue)
18 :
UiBase(rpc_value, base, graph_queue, character_queue)
22 virtual void display(
const ros::Time& time){};
30 explicit FlashGroupUi(XmlRpc::XmlRpcValue& rpc_value,
Base& base,
const std::string& graph_name,
31 std::deque<Graph>* graph_queue, std::deque<Graph>* character_queue)
32 :
GroupUiBase(rpc_value, base, graph_queue, character_queue)
36 virtual void display(
const ros::Time& time){};
49 std::deque<Graph>* character_queue)
50 :
FlashGroupUi(rpc_value, base,
"customize_display", graph_queue, character_queue)
52 if (rpc_value.hasMember(
"data"))
54 XmlRpc::XmlRpcValue& data = rpc_value[
"data"];
55 for (int i = 0; i < static_cast<int>(rpc_value[
"data"].size()); i++)
57 graph_vector_.insert(std::pair<std::string, Graph*>(std::to_string(static_cast<int>(data[i][
"flag"])),
58 new Graph(data[i][
"config"], base_, id_++)));
62 void updateCmdData(
const uint32_t& data);
65 void display(
const ros::Time& time)
override;
72 explicit CoverFlashUi(XmlRpc::XmlRpcValue& rpc_value,
Base& base, std::deque<Graph>* graph_queue,
73 std::deque<Graph>* character_queue)
74 :
FlashUi(rpc_value, base,
"cover", graph_queue, character_queue){};
75 void updateManualCmdData(
const rm_msgs::ManualToReferee::ConstPtr data,
const ros::Time& last_get_data_time)
override;
78 void display(
const ros::Time& time)
override;
86 explicit SpinFlashUi(XmlRpc::XmlRpcValue& rpc_value,
Base& base, std::deque<Graph>* graph_queue,
87 std::deque<Graph>* character_queue)
88 :
FlashUi(rpc_value, base,
"spin", graph_queue, character_queue){};
89 void updateChassisCmdData(
const rm_msgs::ChassisCmd::ConstPtr data,
const ros::Time& last_get_data_time);
92 void display(
const ros::Time& time)
override;
93 uint8_t chassis_mode_;
99 explicit DeployFlashUi(XmlRpc::XmlRpcValue& rpc_value,
Base& base, std::deque<Graph>* graph_queue,
100 std::deque<Graph>* character_queue)
101 :
FlashUi(rpc_value, base,
"deploy", graph_queue, character_queue){};
102 void updateAllowDeployFire(
bool flag);
103 void updateChassisCmdData(
const rm_msgs::ChassisCmd::ConstPtr& data);
104 void updateChassisVelData(
const geometry_msgs::Twist::ConstPtr& data);
107 void display(
const ros::Time& time)
override;
108 uint8_t chassis_mode_;
109 double angular_z_{ 0. };
110 bool allow_deploy_fire_{
false };
117 std::deque<Graph>* character_queue)
118 :
FlashGroupUi(rpc_value, base,
" hero_hit", graph_queue, character_queue)
120 graph_vector_.insert(std::pair<std::string, Graph*>(
"1",
new Graph(rpc_value[
"config"], base_, id_++)));
121 graph_vector_.insert(std::pair<std::string, Graph*>(
"2",
new Graph(rpc_value[
"config"], base_, id_++)));
122 for (
auto it : graph_vector_)
126 it.second->setStartX(960 + 50);
127 it.second->setStartY(540 + 50);
128 it.second->setEndX(960 - 50);
129 it.second->setEndY(540 - 50);
131 else if (it.first ==
"2")
133 it.second->setStartX(960 - 50);
134 it.second->setStartY(540 + 50);
135 it.second->setEndX(960 + 50);
136 it.second->setEndY(540 - 50);
140 void updateHittingConfig(
const rm_msgs::GameRobotHp& msg);
143 void display(
const ros::Time& time)
override;
145 rm_msgs::GameRobotHp last_hp_msg_;
152 std::deque<Graph>* character_queue)
153 :
FlashUi(rpc_value, base,
"exceed_bullet_speed", graph_queue, character_queue)
156 void updateShootData(
const rm_msgs::ShootData& msg);
159 void display(
const ros::Time& time)
override;
160 rm_msgs::ShootData shoot_data_;
166 explicit BurstFlashUi(XmlRpc::XmlRpcValue& rpc_value,
Base& base, std::deque<Graph>* graph_queue,
167 std::deque<Graph>* character_queue)
168 :
FlashUi(rpc_value, base,
"burst", graph_queue, character_queue)
171 void updateBurstTimeData(
const rm_msgs::ManualToReferee::ConstPtr& data);
174 void display(
const ros::Time& time)
override;
175 ros::Time start_burst_time_;
182 std::deque<Graph>* character_queue)
183 :
FlashUi(rpc_value, base,
"capacity_run_out", graph_queue, character_queue)
186 threshold_low_ = 0.2;
187 threshold_high_ = 0.4;
188 if (rpc_value.hasMember(
"data"))
190 XmlRpc::XmlRpcValue& data = rpc_value[
"data"];
193 if (data.hasMember(
"threshold_low"))
194 threshold_low_ = static_cast<double>(data[
"threshold_low"]);
195 if (data.hasMember(
"threshold_high"))
196 threshold_high_ = static_cast<double>(data[
"threshold_high"]);
197 if (data.hasMember(
"threshold"))
199 threshold_low_ = static_cast<double>(data[
"threshold"]);
200 threshold_high_ = threshold_low_;
203 catch (XmlRpc::XmlRpcException&)
208 if (threshold_high_ < threshold_low_)
209 threshold_high_ = threshold_low_;
212 if (!rpc_value.hasMember(
"config") || !rpc_value[
"config"].hasMember(
"start_position"))
215 graph_->setStartX(760);
216 graph_->setStartY(320);
220 void updateCapacityData(
const rm_msgs::PowerManagementSampleAndStatusData& data,
const ros::Time& last_get_data_time);
223 void display(
const ros::Time& time)
override;
225 double threshold_low_{ 0.20 };
226 double threshold_high_{ 0.30 };
227 bool low_state_{
false };
228 bool has_state_{
false };
Definition flash_ui.h:164
BurstFlashUi(XmlRpc::XmlRpcValue &rpc_value, Base &base, std::deque< Graph > *graph_queue, std::deque< Graph > *character_queue)
Definition flash_ui.h:166
Definition flash_ui.h:179
CapacityRunOutFlashUi(XmlRpc::XmlRpcValue &rpc_value, Base &base, std::deque< Graph > *graph_queue, std::deque< Graph > *character_queue)
Definition flash_ui.h:181
CoverFlashUi(XmlRpc::XmlRpcValue &rpc_value, Base &base, std::deque< Graph > *graph_queue, std::deque< Graph > *character_queue)
Definition flash_ui.h:72
CustomizeDisplayFlashUi(XmlRpc::XmlRpcValue &rpc_value, Base &base, std::deque< Graph > *graph_queue, std::deque< Graph > *character_queue)
Definition flash_ui.h:48
DeployFlashUi(XmlRpc::XmlRpcValue &rpc_value, Base &base, std::deque< Graph > *graph_queue, std::deque< Graph > *character_queue)
Definition flash_ui.h:99
Definition flash_ui.h:149
ExceedBulletSpeedFlashUi(XmlRpc::XmlRpcValue &rpc_value, Base &base, std::deque< Graph > *graph_queue, std::deque< Graph > *character_queue)
Definition flash_ui.h:151
std::string graph_name_
Definition flash_ui.h:42
virtual void display(const ros::Time &time)
Definition flash_ui.h:36
virtual void updateConfig()
Definition flash_ui.h:37
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:30
virtual void updateConfig()
Definition flash_ui.h:23
virtual void display(const ros::Time &time)
Definition flash_ui.h:22
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:16
Definition flash_ui.h:114
HeroHitFlashUi(XmlRpc::XmlRpcValue &rpc_value, Base &base, std::deque< Graph > *graph_queue, std::deque< Graph > *character_queue)
Definition flash_ui.h:116
SpinFlashUi(XmlRpc::XmlRpcValue &rpc_value, Base &base, std::deque< Graph > *graph_queue, std::deque< Graph > *character_queue)
Definition flash_ui.h:86
Graph * graph_
Definition ui_base.h:59
static int id_
Definition ui_base.h:60
Base & base_
Definition ui_base.h:58